TinyCLR v3 Is Here

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 collectionsList, 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:

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.

Can we add a few more features? :nerd_face: What is your favorite new feature? I love seeing RLP is back!

1 Like

I like the fact you can run TinyCLR on the Desktop before even touching the hardware. This opens up more options for team development and code testing.

Oh yeah, that is pretty sweet. But of course this is for non-hardware things, like file system and networking, and the core features as well.

1 Like

Non-blocking sockets, Async/await, multi-network, RLP…. so many new toys to play with!

USB Hub support, one step closer to USB Cellular modems. :wink:

1 Like