Metro M0 Express

by Adafruit

Image of Board

This Metro M0 Express board looks a whole lot like the original Metro 328, but with a huge upgrade. Instead of the ATmega328, this Metro features a ATSAMD21G18 chip, an ARM Cortex M0+. It’s the first Adafruit Metro that is designed for use with CircuitPython!

At the Metro M0’s heart is an ATSAMD21G18 ARM Cortex M0 processor, clocked at 48 MHz and at 3.3V logic, the same one used in the new Arduino Zero. This chip has a whopping 256K of FLASH (8x more than the Atmega328) and 32K of RAM (16x as much)! This chip comes with built in USB so it has USB-to-Serial program & debug capability built in with no need for an FTDI-like chip.

  • Power the METRO with 7-9V polarity protected DC or the micro USB connector to any 5V USB source. The 2.1mm DC jack has an on/off switch next to it so you can turn off your setup easily. The METRO will automagically switch between USB and DC.
  • METRO has 25 GPIO pins, 12 of which are analog in, and one of which is a true analog out. There’s a hardware SPI port, hardware I2C port and hardware UART. Logic level is 3.3V
  • Native USB, there’s no need for a hardware USB to Serial converter as the Metro M0 has built in USB support. When used to act like a serial device, the USB interface can be used by any computer to listen/send data to the METRO, and can also be used to launch and update code via the bootloader. It can also act like a keyboard, mouse or MIDI device as well.
  • Four indicator LEDs and one NeoPixel, on the front edge of the PCB, for easy debugging. One green power LED, two RX/TX LEDs for data being sent over USB, and a red LED connected. Next to the reset button there is an RGB NeoPixel that can be used for any purpose.
  • 2 MB SPI Flash storage chip is included on board. You can use the SPI Flash storage like a very tiny hard drive. When used in Circuit Python, the 2 MB flash acts as storage for all your scripts, libraries and files.
  • Easy reprogramming, comes pre-loaded with the UF2 bootloader, which looks like a USB storage key. Simply drag firmware on to program, no special tools or drivers needed! It can be used to load up CircuitPython, PXT/MakeCode or Arduino IDE (it is bossa-compatible)

Comes fully assembled with headers, tested, and with the UF2 bootloader loaded on. Includes 4 rubber bumpers to keep it from slipping off your desk. No soldering required to use, plug and play!



Have some info to add for this board? Edit the source for this page here.

CircuitPython 3.1.2

This is the latest stable release of CircuitPython that will work with the Metro M0 Express.

Start here if you are new to CircuitPython.

Release Notes for 3.1.2

CircuitPython 4.0.0-beta.7

This is the latest unstable release of CircuitPython that will work with the Metro M0 Express.

Unstable builds have the latest features but are more likely to have critical bugs.

Release Notes for 4.0.0-beta.7

Absolute Newest

Every time we commit new code to CircuitPython we automatically build binaries for it. They are stored on Amazon S3 by language (some which may be unreleased.) Try them if you want the absolute latest and are feeling risky.

Past Releases

All previous releases are available on GitHub. They are handy for testing but we recommend the latest stable otherwise.