Develop apps for IoT devices with the .NET IoT Libraries

.NET runs on a variety of 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 a variety of 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.