TinyCLR v3 Is Here
The long stability run of TinyCLR v2 gave us room to focus on what mattered most for v3: a sharper development experience, modern .NET features, deeper networking, and tools that scale from a single board to a production line. Here’s what’s new
Easy Upgrade Path
TinyCLR v3 is largely backward-compatible with v2. Most existing projects upgrade with little to no modification — the library API surface is intact, NuGet package names didn’t change, and the original GHIElectronics.TinyCLR.Devices.* APIs all still work. The full migration walkthrough is at docs.ghielectronics.com/tinyclr/migration.
Standard .NET IoT APIs, alongside the originals
GPIO, PWM, SPI, I²C, and Serial Port now offer two interface options:
-
The original GHIElectronics.TinyCLR.Devices.* APIs — your v2 code keeps compiling.
-
Microsoft’s standard System.Device.* (.NET IoT) APIs for portability with desktop .NET IoT applications.
Both ship in the same NuGet package. Install one and you get both — mix freely in the same project. The feature pages now show both side-by-side in tabbed examples.
RLP Is Back
You asked for it: Runtime Loadable Procedures (RLP) return in v3. Compile C functions into a small ELF file, load them onto the device at runtime, and call them from C# by name. Think of it as the embedded equivalent of calling a native DLL from desktop .NET — the convenience and safety of C# for your application, plus the raw speed of compiled C for the parts that need it.
Ideal for tight compute loops, DSP, image processing, microsecond-precision GPIO, and native interrupt handling. Ships with a Visual Studio project template and seven ready-to-run examples (speed, math, GPIO toggle, lookup tables, background tasks, events, button-driven interrupts).
Desktop Mode
Run TinyCLR code on a PC, before it ever touches hardware.
v3 includes a desktop support of mscorlib plus the TinyCLR networking and file-system libraries — so your business logic, parsers, state machines, network protocols, and storage code can be unit-tested and iterated on directly in Visual Studio on your development PC.
You get the full Visual Studio debugger experience, no device deployment cycle, no flashing — and the same code runs unchanged on SITCore when you’re ready. Pair it with a CI pipeline and you have automated regression testing for everything that doesn’t touch physical pins.
Generics Support
One of the most-requested v2 limitations, gone. v3 brings generic collections — List, Dictionary<TKey, TValue>, Stack, Queue — and you can write your own generic classes and methods. Cleaner code, fewer casts, no boxing for value types.
C# 11 language support
Modern C# — including top-level statements, target-typed new, file-scoped namespaces, and the rest of the C# 11 syntax — works on TinyCLR. Embedded code can finally look like the rest of your codebase.
Async / await
Task-based asynchronous programming is now first-class. async and await work the way they do on desktop .NET, dramatically simplifying network I/O, file operations, and any long-running work that used to require a hand-rolled thread.
.NET-compatible cryptography
The standard System.Security.Cryptography namespace is now available alongside the existing GHIElectronics.TinyCLR.Cryptography library. Same algorithms you’d reach for on desktop .NET — RSACryptoServiceProvider, AesCryptoServiceProvider, SHA256, HMACSHA256 — with no special embedded syntax.
Networking and XML Compatibility
Networking and XML APIs have been updated to align more closely with full .NET implementations, improving portability and reducing code differences between desktop and embedded applications.
.NET-compatible networking and XML
The networking and XML APIs have been updated to align more closely with full .NET. Code that worked against System.Net.Sockets, System.Net.Http, or System.Xml on the desktop now ports across with minimal changes — important for shared libraries between cloud services and embedded clients.
This includes several improvements:
-
Standard MQTT support — built on the same socket stack, integrates cleanly with Azure IoT Hub, AWS IoT, and any standard broker.
-
FTP client and server — file transfer over the network without rolling your own.
-
Multi-network-interface support — run WiFi and Ethernet and cellular concurrently, with routing between them.
-
Non-blocking socket operations for cleaner async code paths.
-
Reliability and performance fixes throughout the stack from real-world deployments.
Ethernet/IP Improvements
Extensive reliability, performance, and interoperability work across the entire EtherNet/IP stack — Scanner and Adapter sides both — based on field testing against industrial PLCs.
Graphics and UI
Better performance, better stability, smoother UI rendering. The same System.Drawing-style API you know, with v3 polish across native parallel and SPI virtual displays.
USB Host expansion
USB Host support has grown to cover:
-
USB cameras — capture frames from standard UVC webcams.
-
USB hubs — finally supported, so multi-device USB topologies just work.
Broader device compatibility across keyboards, mice, joysticks, and mass storage
TinyCLR Config CLI
TinyCLR Config now ships with a command-line interface alongside the GUI — script firmware flashing, deployment, and provisioning into your manufacturing and CI pipelines. No more clicking through dialogs for batch operations.
New Website
We’ve launched a new website that integrates the documentation and API references into a single experience. All pages are now hosted at the new docs section, with cross-links between features, API references, and the extended-features driver library. The same content, easier to navigate, with proper search.
Try it now
TinyCLR v3 is feature-complete and bench-tested — ready to use today. Some documentation pages are still being polished as we finish migrating content from the old site, but the firmware, libraries, and tools are all available.
Get started:
-
Read the docs — www.ghielectronics.com/docs/tinyclr -
Download firmware, Visual Studio extension, and TinyCLR Config — www.ghielectronics.com/docs/tinyclr/downloads -
Migrating from v2? — www.ghielectronics.com/docs/tinyclr/migration
If you run into anything — documentation gaps, edge cases, or unexpected behavior — reach out through our forums or support. We’re actively monitoring as v3 hits real-world projects.
We can’t wait to see what you’ll build with TinyCLR v3.
