Develop apps for IoT devices with the .NET IoT Libraries

.NET runs on various platforms and architectures. Common Internet of things (IoT) boards, such as Raspberry Pi and Hummingboard, are supported. IoT apps typically interact with specialized hardware, such as sensors, analog-to-digital converters, and LCD devices. The .NET IoT Libraries enable these scenarios.

Video overview


The .NET IoT Libraries are composed of two NuGet packages:


System.Device.Gpio supports various protocols for interacting with low-level hardware pins to control devices. These include:

  • General-purpose I/O (GPIO)
  • Inter-Integrated Circuit (I2C)
  • Serial Peripheral Interface (SPI)
  • Pulse Width Modulation (PWM)
  • Serial port


The Iot.Device.Bindings package:

  • Contains device bindings to streamline app development by wrapping System.Device.Gpio.
  • Is community-supported, and additional bindings are added continually.

Commonly used device bindings include:

Supported operating systems

System.Device.Gpio is supported on most versions of Linux that support ARM/ARM64 and Windows 10 IoT Core.


For Raspberry Pi, Raspberry Pi OS (formerly Raspbian) is recommended.

Supported hardware platforms

System.Device.Gpio is compatible with most single-board platforms. Recommended platforms are Raspberry Pi (2 and greater) and Hummingboard. Other platforms known to be compatible are BeagleBoard and ODROID.

PC platforms are supported via the use of a USB to SPI/I2C bridge.


.NET is not supported on ARMv6 architecture devices, including Raspberry Pi Zero and Raspberry Pi devices prior to Raspberry Pi 2.