Skip to main content

Release Notes

TinyCLR Logo

3.0.2.1000 (2026-09-08) RTW

Firmware fixes for analog inputs and the CLR, plus mass storage identification. Update the firmware, the extension, and the libraries together.

Firmware

  • Analog in: the internal temperature sensor, internal reference voltage, and VBAT channels now map and read correctly.
  • Analog in: fixed a spurious exception when reading a channel while USB is enumerating.
  • CLR: fixed an overloaded virtual method binding to the wrong overload.
  • CLR: fixed ToString(), Equals(), and GetHashCode() on an unconstrained generic holding a reference type.
  • USB mass storage: the SCSI product revision level is now settable.

Libraries

  • GHIElectronics.TinyCLR.Devices.UsbClient: MassStorage.AttachLogicalUnit accepts SCSI vendor, product, and revision strings.
  • GHIElectronics.TinyCLR.Pins: corrected the InternalReferenceVoltage and VBAT ADC channel numbers.
  • All other libraries: version updated to match this release. No API or behavior changes.

Visual Studio Extension

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

Visual Studio Code extension

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

TinyCLR Config

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

3.0.1.6000 (2026-08-27) RTW

3.0.1.6000 is an RTW release: it improves QSPI handling for large applications that run from external deployment, and adds GroupBox background and header colors. All other libraries and tools were rebuilt only to keep versions in sync.

Firmware

  • Improved QSPI handling that may help avoid a potential issue when performing an in-field update (IFU) of a large application that uses external deployment.

Libraries

  • GHIElectronics.TinyCLR.UI: GroupBox now supports a background color and a header color.
  • All other libraries: version updated to match this release. No API or behavior changes.

Visual Studio Extension

  • UI Designer: GroupBox now supports a background color and a header color.

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.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