Microcontrollers

Documentation for each microcontroller board supported by TinyGo.

TinyGo lets you run Go directly on microcontrollers.

TinyGo has support for 85 different boards and devices such as the Arduino Nano33 IoT, Adafruit Circuit Playground Express, BBC micro:bit and more. Click on a board name below to see the what features are supported for the given hardware.

Support for some boards and processor types are more complete than others. As of early 2023, 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 (although TinyGo uses only a single core)
    • The Raspberry Pi Pico is a famous example using this, but there are many other boards using this microcontroller now.

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.

Boards using the Espressif microcontrollers have become popular in IoT applications because of their support for WiFi. Unfortunately TinyGo does not support WiFi nor Bluetooth on these boards:

  • ESP8266 based on the Xtensa LX106 processor
  • ESP32 based on the Xtensa LX6 processor
  • ESP32-C3 based on the RISC-V processor

We also give you the ability to add new boards. If your target isn’t listed here, please raise an issue in the issue tracker.

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.


Adafruit Circuit Playground Bluefruit

Adafruit Circuit Playground Express

Adafruit CLUE

Adafruit Feather M0

Adafruit Feather M4

Adafruit Feather M4 CAN

Adafruit Feather nRF52840 Express

Adafruit Feather nRF52840 Sense

Adafruit Feather RP2040

Adafruit Feather STM32F405 Express

Adafruit Grand Central M4

Adafruit ItsyBitsy M0

Adafruit ItsyBitsy M4

Adafruit ItsyBitsy nRF52840

Adafruit MacroPad RP2040

Adafruit Matrix Portal M4

Adafruit Metro M4 Express AirLift

Adafruit PyBadge

Adafruit PyGamer

Adafruit PyPortal

Adafruit Qt Py

Adafruit QT Py RP2040

Adafruit Trinket M0

Adafruit Trinkey QT2040

Arduino Mega 1280

Arduino Mega 2560

Arduino MKR WiFi 1010

Arduino MKR1000

Arduino Nano

Arduino Nano 33 BLE

Arduino Nano 33 BLE Sense

Arduino Nano 33 IoT

Arduino Nano RP2040 Connect

Arduino Uno

Arduino Zero

BBC micro:bit

Blues Wireless Swan

Digispark

Dragino LoRaWAN GPS Tracker LGT-92

ESP32 - Core board

ESP32 - mini32

ESP8266 - d1mini

ESP8266 - NodeMCU

Game Boy Advance

iLabs Challenger RP2040 LoRa

M5Stack

M5Stack Core2

M5Stamp C3

Makerdiary nRF52840-MDK

Makerdiary nRF52840-MDK USB Dongle

Microchip SAM E54 Xplained Pro

nice!nano

Nintendo Switch

Nordic Semiconductor PCA10031

Nordic Semiconductor PCA10040

Nordic Semiconductor PCA10056

Nordic Semiconductor PCA10059

Particle Argon

Particle Boron

Particle Xenon

Phytec reel board

Pimoroni Badger2040

Pimoroni Tufty2040

PineTime DevKit

PJRC Teensy 3.6

PJRC Teensy 4.0

ProductivityOpen P1AM-100

Raspberry Pi Pico

Seeed Seeeduino XIAO

Seeed Sipeed MAix Bit

Seeed Studio LoRa-E5 Development Kit

Seeed Wio Terminal

Seeed XIAO BLE

Seeed XIAO RP2040

SiFive HiFive1 Rev B

Sparkfun Thing Plus RP2040

ST Micro "Nucleo" F103RB

ST Micro "Nucleo" F722ZE

ST Micro "Nucleo" L031K6

ST Micro "Nucleo" L432KC

ST Micro "Nucleo" L552ZE

ST Micro STM32F103XX "Bluepill"

ST Micro STM32F407 "Discovery"

STM32 Nucleo WL55JC

Waveshare RP2040-Zero

X9 Pro Smartwatch

Machine package