Skip to main content

Release Notes

TinyCLR Logo

3.0.1.5000 (2026-08-06) Prerelease

Visual Studio extension and GHIElectronics.TinyCLR.UI update. Firmware and the other tools are unchanged.

Visual Studio Extension

  • Added support for an image in a tab header.

Libraries

  • GHIElectronics.TinyCLR.UI updated to support the extension changes in this release.

Firmware

  • No change. 3.0.1.2000 remains the current release.

TinyCLR Config

  • No change. 3.0.1.2000 remains the current release.

Visual Studio Code extension

  • No change. 3.0.6 remains the current release.

3.0.1.4000 (2026-07-29) Prerelease

A Visual Studio extension and GHIElectronics.TinyCLR.UI update with fixes and refinements. Firmware and the other tools are unchanged.

Visual Studio Extension

  • Refinements to the UI Designer — a Gauge's start position can now be set to top, bottom, left, or right.

Libraries

  • GHIElectronics.TinyCLR.UI updated to support the extension changes in this release.

Firmware

  • No change. 3.0.1.2000 remains the current release.

TinyCLR Config

  • No change. 3.0.1.2000 remains the current release.

Visual Studio Code extension

  • No change. 3.0.6 remains the current release.

3.0.1.3000 (2026-07-24) Prerelease

A Visual Studio extension and GHIElectronics.TinyCLR.UI update. Firmware and the other tools are unchanged.

Visual Studio Extension

  • UI Designer: host one screen inside another with a nested control (<local:MyScreen/>), shown live in the preview.
  • Firmware update: an "Automatically check for firmware updates" option, with clearer, shorter prompts.
  • Deploying an application that doesn't fit the device now stops with an error instead of a warning.

Libraries

  • GHIElectronics.TinyCLR.UI updated to 3.0.1.3000.

Firmware

  • No change. Version 3.0.1.2000 remains the current release.

TinyCLR Config

  • No change. Version 3.0.1.2000 remains the current release.

Visual Studio Code extension

  • No change. Version 3.0.6 remains the current release.

3.0.1.2000 (2026-07-23) Prerelease

3.0.1.2000 is a prerelease that fixes a firmware update-over-USB/serial bug and resolves the UI Designer issues from 3.0.1.1000. Other libraries and tools are unchanged and were rebuilt only to keep versions in sync.

Firmware

Fixes

  • Fixed firmware update timing out on an idle device. The bootloader/reboot command is now handled promptly over both USB and serial (COM).

Libraries

  • GHIElectronics.TinyCLR.UI and all other libraries: version updated to match this release. No API or behavior changes; the UI improvements this cycle are in the UI Designer below.

Visual Studio Extension

Fixes

  • UI Designer: Grid.Row / Grid.Column beyond the defined rows/columns no longer overlaps other controls in the preview.
  • UI Designer: a control inside a ScrollViewer can now be selected by clicking it on the canvas.
  • UI Designer: an image with Stretch="None" now previews at the correct scale.
  • UI Designer: a resource whose name is not a valid C# identifier (for example ghi-logo) no longer causes build errors.
  • The version-conflict error now lists each conflicting version and the projects that reference it, so it is clear which project to change.
  • UI Designer: a Chart now previews using its selected Mode (LineMode, RectangleMode, AreaMode), matching the device.
  • UI Designer: a control's Width and Height can be set directly in the designer (resize handles or the property grid); no need to edit the generated C#.
  • Adding an image or bitmap resource now adds the GHIElectronics.TinyCLR.Drawing package automatically from your configured NuGet sources.

TinyCLR Config

  • Version updated to match this release. No functional changes.

Visual Studio Code extension

  • Version updated to match this release. No functional changes.

3.0.1.1000 (2026-07-22) Prerelease

3.0.1.1000 is a prerelease of TinyCLR OS 3.0. The headline additions are a visual TinyCLR UI Designer for Visual Studio and an expanded library of ready-to-use UI controls. The Visual Studio extension can now also detect out-of-date device firmware and update it from the IDE.

Libraries

New features

  • An expanded set of GHIElectronics.TinyCLR.UI controls: DataGrid, Chart, Gauge, Calendar, Menu, TabControl, TreeView, Expander, GroupBox, and the DockPanel layout container.
  • CornerRadius on Border/Panel, Gauge sweep angle, and Chart area mode.
  • Button.ClickMode (Press / Release) for instant touch-down response.
  • A built-in on-screen pointer (UI.Input.Pointer) and UIElement.IsHitTestVisible, plus support for driving the UI with a USB mouse and keyboard.
  • System.Xml now ships alongside the classic Data.Xml API, so existing 2.x XML code compiles unchanged and new code can use using System.Xml.

Fixes

  • Fixed blocking socket calls stalling the rest of the application: while one thread was blocked in Accept, Receive, or Send, every other thread's Thread.Sleep could be delayed by up to ~250 ms. Blocking socket operations now wait cooperatively, so other threads keep running on schedule.
  • 2.x XML code that stopped compiling in 3.0 (the XML types had become internal) compiles again.

Firmware

New features

  • DigitalSignal.Generate repeat / continuous (infinite) output mode.

Fixes & improvements

  • Fixed low-power Sleep not waking on devices that execute from external QSPI flash.
  • Fixed a DNS resolution issue.
  • Improved on-device UI rendering performance.
  • Raised the internal string/signature table limit from 32K to 64K, allowing larger programs and resource sets.

Known issues

  • SC20xxx: Webcam reconnect fails after disconnect when connected through a hub.
  • USB host hubs do not support low-speed (LS) devices. To use a mouse or keyboard, connect it directly to the USB port or use a full-speed device instead.

Visual Studio Extension

New features

  • TinyCLR UI Designer: design device UI visually — drag controls from a toolbox onto the canvas, move and resize them, edit properties, and wire event handlers — with a live, device-accurate preview.
  • Firmware update check: the extension detects when a connected device's firmware is out of date and lets you update it from the IDE.
  • New UI Application and SPI-display project templates.

Fixes

  • Fixed the duplicate-NuGet exclamation mark (⚠) shown with PackageReference.
  • Resource accessors (GetBytes() / GetBitmap()) are now generated automatically — you no longer need to run Run Custom Tool.

Known issues

  • UI Designer: in a Grid, a control whose Grid.Row / Grid.Column was greater than the number of defined rows/columns overlapped other controls in the preview.
  • UI Designer: a control inside a ScrollViewer cannot be selected by clicking it on the canvas.
  • UI Designer: an image with Stretch="None" wrong scale.
  • UI Designer: a resource whose name is not a valid C# identifier (for example ghi-logo) causes build errors.

TinyCLR Config

  • Rebuilt for internal consistency with this release; the version was updated to stay in sync with TinyCLR 3.0.1.1000. No functional changes.

Visual Studio Code extension

  • Migrated to SDK-style projects (dotnet add package + dotnet build), with support for adding image, font, binary, string, and text resources.

3.0.0.3000 (2026-06-29) Prerelease

Libraries

  • Support HTTPS with no CA certificate option

Firmware

  • No changes. Firmware version 3.0.0.2000 remains the recommended version.

Known issues

  • SC20xxx: Webcam reconnect fails after disconnect when connected through a hub.
  • USB host hubs do not support low-speed (LS) devices. To use a mouse or keyboard, connect it directly to the USB port or use a full-speed device instead.

Visual Studio Extension

  • Fixed Visual Studio freezing/closing when deploying to a low-memory device
  • Support packages.config and PackageReference
  • Ctrl+F5 now deploys the application and reboots the device immediately. There is no longer a 60-second wait.
  • The same NuGet package can be used on both desktop and device projects, as long as it is compatible with the target device.

Known issues

  • An exclamation mark may still appear due to duplicate NuGet packages when using the PackageReference configuration, but it is harmless and can be safely ignored.
  • Users need to add the GHIElectronics.TinyCLR.Drawing NuGet package when adding a bitmap or image resource (if it has not already been added to the project).
  • Users need to run Run Custom Tool on the resource to (re)generate the GetBytes() / GetBitmap() accessors.
  • Desktop mode does not support Debug.WriteLine; use Console.WriteLine instead.

TinyCLR Config

  • Build-tca now supports PackageReference

Visual Studio Code extension

  • Update the fixes from Visual Studio extension.

3.0.0.2000 (2026-06-12) Prerelease

TinyCLR OS 3.0 is a major release. The headline change is broad runtime and library support for modern C#: generics and generic collections, Task/async, Tuple/ValueTuple, LINQ, ranges and indices, record types, and required members. It also adds native RLP support, USB hub and webcam support, multi-interface non-blocking networking, an updated Visual Studio extension for VS2022/VS2026, and a new Visual Studio Code extension.

Libraries

New features

  • System.Collections.Generic: List<T>, Dictionary<TKey, TValue>, the generic interfaces (IList<T>, IDictionary<,>, IEnumerable<T>, ICollection<T>, …), and Comparer<T>/EqualityComparer<T>.
  • System.Threading.Tasks: Task, Task<T>, Task.Run, Task.Delay, Task.WhenAll, Task.WhenAny, and async/await support.
  • cooperative cancellation: CancellationToken, CancellationTokenSource, and OperationCanceledException.
  • System.Tuple and System.ValueTuple, including tuple literals and deconstruction.
  • System.Linq (LINQ-to-Objects).
  • System.Index and System.Range, enabling from-end indexing and slicing (for example array[^1] and array[1..3]).
  • the generic delegates Func<>, Predicate<T>, Comparison<T>, and Converter<T>, plus the generic interfaces IEquatable<T> and IComparable<T>.
  • the support types behind modern C#: init-only setters and record types (IsExternalInit), required members, [ModuleInitializer], and [CallerArgumentExpression].
  • Activator.CreateInstance<T>().
  • HashSet<T>.
  • System.Console.
  • System.Device.Gpio, System.Device.I2c, System.Device.Pwm, System.Device.Spi, System.IO.Ports, System.Security.Cryptography, System.Xml
  • desktop/dual-mode companion assemblies (GPIO, SPI, I2C, PWM, UART, ADC, SerialPort, Network, Cryptography, …) for PC-side build and test.
  • USB host webcam support.
  • GpioController.WaitForEvent and StringBuilder.AppendFormat.
  • XML documentation for the TinyCLR APIs — IntelliSense tooltips and summaries now appear in the editor.

Fixes

  • Fixed TimeSpan.FromXxx / TimeSpan.TotalMilliseconds returning negative values.
  • Fixed DateTime subtraction returning a negative elapsed time.
  • Fixed a crash involving double.PositiveInfinity / double.NegativeInfinity.
  • Fixed FTP and HTTP server exceptions, and reworked MQTT.
  • Fixed UI touch-event routing and improved scroll/redraw performance.
  • IsDriveModeSupported no longer requires a pin.
  • Tweak UI.
  • Reworked the cryptography library.
  • Separated the socket send and receive timeouts so that setting one no longer blocks the other.

Firmware

New features

  • RLP (native runtime-loadable procedures) support.
  • the CLR runtime support behind the new library features: generics and generic collections (List, Dictionary), Tuple/ValueTuple, LINQ, and Task/async, with improved boxing, unboxing, and generic type handling.
  • a native Task controller for background and driver work.
  • C# 11 language support.
  • USB host hub support (cascaded hubs and multiple USB mass-storage sticks) and USB webcam capture (DCMI + DMA).
  • multiple simultaneous network interfaces, non-blocking network bring-up (EnableAsync), non-blocking DNS, socket Shutdown, and TCP listener support.
  • a hardware RNG source for the network security stack.
  • firmware support for reading and setting the RTC (exposed through the TinyCLR-Config CLI).

Fixes & improvements

  • Fixed several floating-point / number-to-string formatting issues (G-format rounding, exponent, precision, and trailing zeros).
  • Fixed CAN: classic (non-FD) operation failed when no data bit-rate is set.
  • Fixed mass-storage (MSC) read/write and mount-after-format.
  • Fixed DigitalSignal capture crashed with at 2.5MHz .
  • Fixed inconsistent comparison of simple value types.
  • Fixed SD card read/write disabling global interrupts (IRQs).
  • Fixed SD card mounting.
  • Reworked networking.
  • Reworked low-power / sleep handling.
  • Reworked EtherNet/IP (board-to-board Class-1 I/O).
  • Improved I2C (Master and Client modes).
  • The deploy error now reports which assembly exceeds the maximum size.

Known issues

  • SC13xxx: System crash when use Dictionary if memory is low.
  • SC20xxx: Webcam reconnect fails after disconnect when connected through a hub.
  • USB host hubs do not support low-speed (LS) devices. To use a mouse or keyboard, connect it directly to the USB port or use a full-speed device instead.

Visual Studio Extension

New features

  • Dual mode: A TinyCLR project can run in both device and Desktop mode (.NET Framework 4.8).
  • support for connecting to multiple devices / ports.

Fixes

  • Visual Studio no longer deadlocks or blocks when a device flash fails.
  • A "PNG is not supported" error message is displayed when a PNG resource is detected.

Known issues

  • Users need to add the GHIElectronics.TinyCLR.Drawing NuGet package when adding a bitmap or image resource (if it has not already been added to the project).
  • Users need to run Run Custom Tool on the resource to (re)generate the GetBytes() / GetBitmap() accessors.
  • Desktop mode does not support Debug.WriteLine; use Console.WriteLine instead.

TinyCLR Config

New features

  • a command-line (CLI) mode for scripted/headless device operations.
  • export/generation of .tca configuration archive files.
  • support for connecting to and managing multiple devices.
  • get/set of the real-time clock (RTC) through the CLI.

Fixes & improvements

  • Auto-scales the UI by font and fixed the layout across different screen resolutions.
  • No longer crashes when the selected COM port is already held by another application.

Known issues

  • CLI: reboot need to called twice to reset the device

Visual Studio Code extension

  • Feature parity with the Visual Studio extension.

2.4.1.1000 (2026-03-25) RTW

Firmware

  • Fixed multiple issues in floating-point string formatting (rounding, exponent, precision)

2.4.0.1000 (2026-03-16) RTW

Firmware

  • SC20xxx only change
  • Add SDRAM overclock support
  • Fix CPU usage statistics
  • Add WPA/WPA2 support for WiFi in both AP and Client modes

Libraries

  • HTTPS server now supports TLS 1.2