Edit

Share via


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.

Libraries

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

System.Device.Gpio

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

Iot.Device.Bindings

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.

The complete list of available device bindings is maintained on GitHub.

Some commonly used device bindings include:

Supported operating systems

System.Device.Gpio is supported on any operating system that supports .NET, including most versions of Linux that support ARM/ARM64 and Windows 10 IoT Core.

Tip

For Raspberry Pi, Raspberry Pi OS (64-bit) is recommended. No desktop is required, so Raspberry Pi OS Lite can be used to reduce the size of the operating system.

Animated GIF showing the Raspberry Pi Imager tool. The user selects 'RASPBERRY PI OS LITE (64-BIT) from the list of available operating systems.

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.

Windows, macOS, and Linux computers and PCs are supported via the use of a USB to SPI/I2C bridge.

Important

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

Resources