Release Notes
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.UIupdated 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.UIupdated 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.UIupdated 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.UIand 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.Columnbeyond the defined rows/columns no longer overlaps other controls in the preview. - UI Designer: a control inside a
ScrollViewercan 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
Chartnow previews using its selectedMode(LineMode,RectangleMode,AreaMode), matching the device. - UI Designer: a control's
WidthandHeightcan 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.Drawingpackage 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.UIcontrols:DataGrid,Chart,Gauge,Calendar,Menu,TabControl,TreeView,Expander,GroupBox, and theDockPanellayout container. CornerRadiusonBorder/Panel,Gaugesweep angle, andChartarea mode.Button.ClickMode(Press/Release) for instant touch-down response.- A built-in on-screen pointer (
UI.Input.Pointer) andUIElement.IsHitTestVisible, plus support for driving the UI with a USB mouse and keyboard. System.Xmlnow ships alongside the classicData.XmlAPI, so existing 2.x XML code compiles unchanged and new code can useusing System.Xml.
Fixes
- Fixed blocking socket calls stalling the rest of the application: while one thread was blocked in
Accept,Receive, orSend, every other thread'sThread.Sleepcould 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.Generaterepeat / continuous (infinite) output mode.
Fixes & improvements
- Fixed low-power
Sleepnot 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 whoseGrid.Row/Grid.Columnwas greater than the number of defined rows/columns overlapped other controls in the preview. - UI Designer: a control inside a
ScrollViewercannot 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>, …), andComparer<T>/EqualityComparer<T>.System.Threading.Tasks:Task,Task<T>,Task.Run,Task.Delay,Task.WhenAll,Task.WhenAny, andasync/awaitsupport.- cooperative cancellation:
CancellationToken,CancellationTokenSource, andOperationCanceledException. System.TupleandSystem.ValueTuple, including tuple literals and deconstruction.System.Linq(LINQ-to-Objects).System.IndexandSystem.Range, enabling from-end indexing and slicing (for examplearray[^1]andarray[1..3]).- the generic delegates
Func<>,Predicate<T>,Comparison<T>, andConverter<T>, plus the generic interfacesIEquatable<T>andIComparable<T>. - the support types behind modern C#: init-only setters and
recordtypes (IsExternalInit),requiredmembers,[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.WaitForEventandStringBuilder.AppendFormat.- XML documentation for the TinyCLR APIs — IntelliSense tooltips and summaries now appear in the editor.
Fixes
- Fixed
TimeSpan.FromXxx/TimeSpan.TotalMillisecondsreturning negative values. - Fixed
DateTimesubtraction 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.
IsDriveModeSupportedno 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, andTask/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, socketShutdown, 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; useConsole.WriteLineinstead.
TinyCLR Config
New features
- a command-line (CLI) mode for scripted/headless device operations.
- export/generation of
.tcaconfiguration 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:
rebootneed 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