Features
TinyCLR is a real .NET runtime on embedded hardware. The pages below cover every capability the runtime provides — pin-level I/O, communication buses, networking, cloud integration, storage, displays, security, and the modern .NET features you'd expect (multithreading, reflection, collections, and more).
Click any feature to jump to its reference page.
Hardware I/O
The basics every embedded project starts with — direct pin control, analog input and output, PWM, and timing-critical signal generation.
- GPIO — digital input and output on any pin
- PWM — pulse-width modulation for motors, LEDs, and audio
- Analog In — read voltages from sensors and analog sources
- Analog Out — produce analog voltages via DAC
- Signal Control — generate precise digital pulse trains
Communication Buses
Talk to peripheral chips, sensors, displays, and external systems.
- SPI — high-speed serial peripheral interface
- I²C — two-wire interface for sensors and small peripherals
- UART — serial communication with external hardware
- USB Host — host USB devices like keyboards, mice, and storage
- USB Client — act as a USB device
- USB PC Comm — serial-style communication with a connected PC
- CAN — controller area network for automotive and industrial use
- Modbus — industrial RS-485 / Modbus RTU and TCP
- 1-Wire — Dallas/Maxim 1-Wire bus for sensors
Networking
Build connected products — wired, wireless, and cellular — with first-class TCP/IP, HTTP, and MQTT support.
- Networking Core — sockets and TCP/IP fundamentals
- WiFi — WiFi connectivity on supported boards
- Ethernet — wired Ethernet
- Cellular — cellular modem integration
- PPP — point-to-point protocol over serial links
- HTTP/HTTPS — client requests with TLS
- MQTT — pub/sub messaging for IoT
- EtherNet/IP — industrial EtherNet/IP protocol
Cloud
Native support for the major cloud platforms — no bridging code or external SDKs required.
Storage
Persist data — small or large — on internal flash, SD cards, or in a real SQL database.
- File System — read and write files
- SD/MMC Cards — external SD card support
- SQLite — embedded SQL database
- Resources — embed binary assets into your application
Display & Multimedia
Drive screens, capture images, play audio, and build rich user interfaces.
- Displays — supported display drivers and configurations
- Touch Screen — resistive and capacitive touch input
- User Interface — TinyCLR's UI framework
- Graphics — drawing primitives and bitmap operations
- Font Support — bitmap and TrueType fonts
- Image Decoders — JPEG, GIF, and BMP decoding
- Camera — capture from supported camera modules
- MJPEG Video — record and play MJPEG video
- Audio Playback — play WAV audio
- VNC — remote framebuffer access
Security
Production-grade security stack — secure boot, encrypted updates, TLS, and IP protection — built in, not bolted on.
- TLS — TLS 1.2 overview
- TLS Client — outbound TLS connections
- TLS Server — accept inbound TLS connections
- Cryptography — AES, RSA, and hardware-accelerated crypto
- Hashing — SHA family and MD5
- Password — secure password handling
- Secure Boot — hardware-enforced trusted boot
- Secure Storage — encrypted local storage
- IP Protection — protect your firmware from extraction
- In-Field Update — encrypted OTA firmware updates
System Services
SITCore hardware features exposed through TinyCLR APIs — power, time, and board-level memory.
- Power Management — sleep modes and wake sources
- Watchdog Timer — hardware watchdog for reliability
- Real-Time Clock — battery-backed RTC and time keeping
- External Memory — external SDRAM and QSPI flash
- Device Info — hardware ID, firmware version, debug interface control
Runtime Essentials
TinyCLR-specific runtime behavior — what's different from desktop .NET and how to work with it. TinyCLR libraries ship as standard NuGet packages on nuget.org — search tinyclr in Visual Studio's NuGet package manager.
- Debugging — Visual Studio breakpoint debugging over USB or serial
- Memory Management — garbage collection, hardware-resource lifetime, pinned memory
- Unmanaged Heap — allocate outside the GC heap for large buffers and graphics
- Marshal — direct register access and interrupt control (advanced)
- Application Domain — load PE assemblies at runtime from storage
Modern .NET
Standard .NET APIs available on TinyCLR — running on embedded hardware just like they'd run on desktop.
- Multithreading — threads, locks, synchronization, async/await
- Collections — ArrayList, Hashtable, Stack, Queue (plus generics in v3)
- Reflection — runtime type inspection and dynamic invocation
- Serialization — binary, JSON, and XML serializers
- Encoding & Decoding — Encoding, Base64, BitConverter, StringBuilder
- Regex — pattern matching, replacement, and splitting
- Stream — Stream abstraction with file, memory, and network backends
- Timers — System.Threading.Timer for scheduled callbacks