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
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.
Commonly used device bindings include:
- CharacterLcd - LCD character display
- SN74HC595 - 8-bit shift register
- BrickPi3
- Max7219 - LED Matrix driver
- RGBLedMatrix - RGB LED Matrix
Supported operating systems
System.Device.Gpio is supported on most versions of Linux that support ARM/ARM64 and Windows 10 IoT Core.
Tip
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.
Important
.NET is not supported on ARMv6 architecture devices, including Raspberry Pi Zero and Raspberry Pi devices prior to Raspberry Pi 2.