TinyGo 0.41.0 Brings Wireless Support on Espressif's ESP32 Chips and Arduino UNO Q Compatibility
Fancy running your Go code on the Arduino UNO Q's STMicroelectronics STM32 coprocessor? Well, now you can.
The TinyGo team has announced a new version of its eponymous Go compiler targeting embedded and other resource-constrained environments, promising a wealth of new features — and support for the new Arduino UNO Q single-board computer.
"This release is the most feature packed yet with over 150 commits to our main repo alone," writes TinyGo team member Ron Evans of TinyGo 0.41.0. "We added Go 1.26 support to keep you up to date with the latest work from the mothership. We also have many improvements to our developer tooling and compatibility. And some big additions when it comes to hardware support, with [Espressif] ESP32 wireless, and the new Arduino UNO Q board too."
Announced late last year alongside the company's acquisition by Qualcomm, the Arduino UNO Q is a big departure for the UNO family: rather than a microcontroller development board, as with all previous versions, it's a fully-fledged single-board computer running a customized Linux distribution. While there's nothing stopping you from running Go compiled by a standard compiler on the microprocessor side of what Arduino describes as a "dual-brain" board, the new TinyGo release now makes it easy to flash your Go code onto the Arduino UNO Q's STMicroelectronics STM32U585 microcontroller coprocessor — complete with access to the general-purpose input/output (GPIO) pins, analog to digital converter (ADC), pulse-width modulation (PWM), SPI and I2C buses, plus the board's integrated LED matrix.
The new release also brings with it wireless support for the Espressif ESP32-C3 and ESP32-S3 microcontrollers. "That means you can run a web server or MQTT messaging client right on your ESP32 board using the same language that powers your cloud infrastructure," Evans explains. "The ESP32 radio communication uses our new 'espradio' package. Currently supports WiFi, with Bluetooth in progress along with more processors. We also added the ability for TinyGo to flash your ESP32 boards directly without any external tools, thanks to our new 'espflasher' package."
The latest release of TinyGo is available on the project's GitHub repository, along with the full source code under a mixture of the permissive BSD three-clause and Apache 2 licenses plus PJRC's license for code taken from Paul Stoffregen's Teensy libraries.