Adafruit
Adafruit METRO M0 Express - designed for CircuitPython [ATSAMD21G18]
The Adafruit Metro M0 Express brings 32-bit ARM power to the familiar Metro/UNO shield-compatible form factor. Powered by the ATSAMD21G18 ARM Cortex M0+ proc...
The Adafruit Metro M0 Express brings 32-bit ARM power to the familiar Metro/UNO shield-compatible form factor. Powered by the ATSAMD21G18 ARM Cortex M0+ processor at 48 MHz, it offers 256 KB flash and 32 KB RAM — a massive upgrade over the ATmega328-based Metro. Designed from the ground up for CircuitPython, it also works seamlessly with the Arduino IDE.
With built-in native USB, the Metro M0 Express can act as a serial device, keyboard, mouse, or MIDI controller — no FTDI chip needed. The 2 MB SPI flash storage serves as a tiny drive for CircuitPython scripts, libraries, and data files. CircuitPython comes pre-loaded and ready to go.
Key Features
- ATSAMD21G18 ARM Cortex M0+ – 48 MHz, 256 KB flash, 32 KB RAM, 3.3V logic
- Native USB – Serial, keyboard, mouse, and MIDI support with no additional hardware
- 2 MB SPI Flash – On-board storage for CircuitPython scripts or Arduino data logging
- 25 GPIO Pins – 12 analogue inputs, 1 true analogue output, hardware SPI, I2C, and UART
- UNO Shield Compatible – Standard Metro/UNO form factor for plug-in shields
- Flexible Power – 7–9V DC (polarity protected) or Micro USB, with auto-switching and on/off switch
- UF2 Bootloader – Drag-and-drop firmware updates via USB storage mode
- CircuitPython Pre-Loaded – Ready to code out of the box
- Status LEDs + NeoPixel – Power (green), RX/TX, red LED, and an RGB NeoPixel
Ideal For
- CircuitPython beginners looking for a shield-compatible board
- Projects needing more power than an ATmega328 platform
- USB HID projects (keyboard, mouse, MIDI)
- Data logging with on-board flash storage
Package Contents
- 1× Adafruit Metro M0 Express (fully assembled with headers)
- 4× Rubber bumper feet
Resources
Jargon buster
Plain-language definitions for the technical terms used above.
- Bootloader
- Small starter software on a microcontroller that lets new code be uploaded before the main program runs. Knowing how to enter bootloader mode matters when you need to program the board or recover it after a faulty sketch.
- CircuitPython
- A beginner-friendly version of Python designed to run directly on microcontroller boards. If a product supports CircuitPython, you can often program it by copying code files onto the board rather than setting up a more complex toolchain.
- GPIO
- General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
- Headers
- Rows of metal pins used to plug a module into a breadboard or connect it with jumper wires. Pre-soldered headers make the module easier to use straight away without needing to solder the pins yourself.
- HID
- Human Interface Device is a USB device class used for keyboards, mice, gamepads and similar controls. If a board supports HID over USB, it can act like an input device to a computer without needing a custom driver.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- IDE
- Short for Integrated Development Environment, a program used to write, run and manage code. It matters because some learners prefer a traditional coding workspace instead of a guided notebook-style lesson.
- LED
- A light-emitting diode is a small electronic component that lights up when current flows through it in the correct direction. In this kit, LEDs create the flashing effect, so polarity and correct soldering matter for the project to work.
- MIDI
- MIDI is a standard way for electronic instruments, controllers, and software to send musical control messages such as notes, velocity, and timing. If a board supports MIDI, it can be triggered from keyboards, drum pads, sequencers, or other music gear rather than only from buttons or code.
- native USB
- Native USB means the microcontroller itself handles USB communication, rather than using a separate USB-to-serial chip. This matters for programming, debugging, and projects that need the board to act directly as a USB device.
- NeoPixel
- A type of addressable LED system where colour data is sent along a single digital data line from one LED or controller to the next. Compatibility matters because the timing and signal format must match for the lights or driver board to respond correctly.
- RAM
- RAM is temporary memory used while a device is running, and its contents are lost when power is removed. A “Run in RAM” mode is useful for testing settings without permanently programming the module, but it may not support every feature.
- RGB
- Short for red, green and blue, usually referring to an LED that can mix those three colours. It matters because controlling an RGB LED teaches how separate outputs combine to create different colours.
- Shield
- An add-on board that plugs into a main controller board to give it extra features such as sensing, motor control or communication. Knowing a product supports shields helps you judge whether it can connect neatly into an existing maker-board setup.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- UART
- UART is a simple serial connection that sends data over separate transmit and receive wires, often labelled TX and RX. It matters because this module is designed to replace a wired UART cable with a wireless link while keeping the same serial data format.
Find this product in
Brands
Microcontrollers
Related Tutorials
Free guides on learn.littlebird.com.au