TinyGo 0.42 Adds Recoverable Runtime Panics and a UEFI Target, Then Ships a Seeed Studio Starter Kit
TinyGo 0.42 makes previously fatal runtime panics recoverable via defer and recover, adds a minimal UEFI compile target, and the project followed with its first official hardware starter kit built with Seeed Studio.
Editor's Note ·
- Correction:
- The article states that "the ESP32-C3 and ESP32-S3 gained Bluetooth support alongside WiFi support 'thanks to the espradio package'" in TinyGo 0.42. TinyGo's own 0.42 release notes attribute the espradio-based WiFi addition to the original ESP32, not ESP32-C3/S3, and InfoQ's independent coverage states that WiFi and Bluetooth networking for ESP32-C3 and ESP32-S3 via the espradio library shipped in the TinyGo 0.41 release. Only Bluetooth support for ESP32-C3/S3 is new in 0.42.
Overview
TinyGo, the Go compiler for microcontrollers, WebAssembly, and other resource-constrained targets, shipped version 0.42 on September 1, 2026, according to TinyGo’s release announcement. The release’s headline change makes runtime panics that previously crashed a program outright — nil pointer dereferences, divide-by-zero errors, and out-of-range slice or map accesses — catchable through Go’s standard defer and recover mechanism. Eight days later, the project followed up by announcing its first official hardware starter kit, built in partnership with Seeed Studio.
What We Know
According to TinyGo’s release post, “TinyGo 0.42 now makes runtime panics recoverable.” The team wrote that “Nil pointer dereferences, divide by zero, out of range slice and map operations, and channel panics all are handled through defer and recover the way you expect them to.” On Windows, the project added “a vectored exception handler to do the same job, and recover now works on riscv64 as well,” per the announcement. Not every failure becomes recoverable: TinyGo said “Out of memory and other fatal errors stay unrecoverable, because there is nothing you can really do about it.”
The recovery work had a secondary effect on TinyGo’s test suite. According to the release notes, “the testing package now supports Goexit, SkipNow, and FailNow, so t.Skip and t.Fatal behave correctly,” a change TinyGo said “unblocked a large number of standard library test suites.”
Version 0.42 also adds Go 1.27 support, including generic methods “through an upgrade of golang.org/x/tools,” and moves TinyGo’s own builds to LLVM 22 while continuing to support LLVM 19 and LLVM 20 for distribution packages, the release notes state.
The release introduces “a minimal UEFI target,” letting developers “write a Go program, compile it with TinyGo, and run it as a UEFI application before any operating system starts,” TinyGo said, describing the feature as “early work” with “a lot still to do.” The UEFI target supports UEFI time and events and uses TinyGo’s task scheduler by default so goroutines continue to work, according to the announcement.
TinyGo also expanded hardware support in 0.42, continuing ESP32 work that began in the 0.41 release: the original ESP32 gained interrupt support with a vector table, timer alarms, an ADC driver, and flash execute-in-place, while the ESP32-C3 and ESP32-S3 gained Bluetooth support alongside WiFi support “thanks to the espradio package,” per TinyGo. STM32 users got a new USB driver for the F4 and F7 families plus new support for the STM32H7 and NUCLEO-H753ZI board, and the release adds support for Puya PY32F microcontrollers, Pimoroni’s Blinky 2350 and Badger 2350 boards, and mGBA debugging support for the Game Boy Advance, TinyGo said.
On September 9, TinyGo announced the “first official TinyGo starter kit,” built around the Seeed Studio XIAO ESP32-C3. The kit bundles the XIAO ESP32-C3 — which TinyGo describes as “a RISC-V board roughly the size of a postage stamp” that comes with “2.4GHz WiFi and BLE radios already on board” — with a Grove Base adapter and eleven Grove modules covering sensing (button, touch, rotary angle, light, sound, temperature, vibration, and acceleration), action (buzzer and RGB LED stick), and display (an OLED display), according to the announcement. TinyGo said the kit was designed with Seeed Studio, thanking “the team at Seeed Studio for working alongside us to figure out what belongs in it.” TinyGo core team member Patricio Whittingslow wrote an accompanying tutorial series covering the kit, the project said.
TinyGo noted that the kit’s ESP32-C3 board can be swapped for other members of the XIAO family — the ESP32-S3, nRF52840, RP2040, RP2350, and SAMD21 — “without you changing anything else in the kit,” according to the blog post. InfoQ also covered the release, reporting on the same recoverable-panics and UEFI-target changes.
What We Don’t Know
TinyGo’s starter kit announcement does not disclose a retail price for the bundle, directing buyers instead to Seeed Studio’s own product listing. The project has also not said whether further hardware kits are planned, or whether the UEFI target will see production use before it matures beyond its current “early work” stage.