Processors
Different processors supported by TinyGo.
As of early 2026, boards using the following microcontrollers are well-supported:
- SAMD21 based on the
ARM Cortex-M0+ processor
- Some companies (Adafruit) call these boards the “M0”.
- SAMD51 based on the
ARM Cortex-M4 processor
- Some companies call these boards the “M4”.
- nRF52840 based on the Arm Cortex-M4F processor
- RP2040 with dual ARM Cortex-M0+
processors
- The Raspberry Pi Pico is a famous example using this, but there are many other boards using this microcontroller now.
- RP2350 with dual ARM Cortex-M33
processors
- The Raspberry Pi Pico2 is another well-known board, but there are many others.
Boards using the Espressif microcontrollers have become popular in IoT applications because of their support for WiFi. TinyGo now supports WiFi on some of these processors with Bluetooth coming soon:
- ESP32-C3 based on the RISC-V processor. WiFi supported.
- ESP32-S3 based on the dual-core XTensa LX7 processor. WiFi supported.
- ESP8266 based on the Xtensa LX106 processor. WiFi not yet supported.
- ESP32 based on the Xtensa LX6 processor. WiFi not yet supported.
The introductory Arduino boards based on the 8-bit AVR processors work
relatively well under TinyGo. But they have limited amounts of flash and static
memory so they support only small applications (e.g. the fmt package may
consume too much flash memory, and goroutines may consume too much static
memory):
- ATmega328P, used by Arduino Nano, Arduino UNO, etc.
- ATtiny85, used by Digispark.
Want to know the details about how it is possible to compile Go for microcontrollers? Check out the microcontrollers page in our “Compiler Internals” section.