Some suppoorted hardware is considered first class. The distinction is mostly about available flash and RAM. Go is flash hungry, mainly because any executable binary contains a lot of information about itself. It’s required by the garbage collector, automatically growing stacks, stack traces, reflection and other runtime things. The runtime itself is also a serious piece of code providing goroutines, channels, maps, automatic memory management and more.

These big binaries aren’t a problem in case of the OS capable systems with gigabytes of RAM and terabytes of disc storage. In the microcontroller word, flash memory has always accounted for a significant portion of the unit cost, so it was available in homeopathic quantities (from Go’s point of view). Fortunately, this situation has changed with the introduction of eXcution In Place technology and relatively large/cheap external SPI flash memories. Now you can afford to waste some of your flash on “unnecessary things” as you do in case of disk-based storage.

To be specific, for now the first class hardware is primarily one that has at least 2 MiB of flash and is at the same time easily available and relatively inexpensive for DIY use cases.

First class

Raspberry Pi RP2350 (aka Pico 2)

Raspberry Pi Pico 2

Raspberry Pi Pico 2

WeAct RP2350A-V10

WeAct RP2350A-V10

WeAct RP2350B core board

WeAct RP2350B core board

i.MX RT

Teensy 4.x

Teensy 4.x

FET1061-S

FET1061-S

STM32 microcontrollers

DevEBox STM32H743

DevEBox STM32H743

Other

STM32 microcontrollers

STM32F4-Discovery

STM32F4-Discovery

STM32_MiNi_Pro

STM32_MiNi_Pro

NUCLEO-L496ZG

NUCLEO-L496ZG

Azure IoT DevKit

Azure IoT DevKit

MXCHIP EMW3162

MXCHIP EMW3162

Kendryte K210 SOC

Maix Bit

Maix Bit

nRF52 microcontrollers

nRF52840-Dongle (PCA10059)

nRF52840-Dongle