Adafruit will not be shipping orders Thursday November 23, 2017 for Thanksgiving. Any orders placed after 11am ET Wednesday November 22 will go out Friday November 24.

Adafruit METRO M0 Express - designed for CircuitPython - ATSAMD21G18

  • Description


    Metro is our series of microcontroller boards for use with the Arduino IDE. This new Metro M0 Express board looks a whole lot like our original Metro 328, but with a huge upgrade. Instead of the ATmega328, this Metro features a ATSAMD21G18 chip, an ARM Cortex M0+. It's our first Metro that is designed for use with CircuitPython! CircuitPython is our beginner-oriented flavor of MicroPython - and as the name hints at, its a small but full-featured version of the popular Python programming language specifically for use with circuitry and electronics.

    Not only can you use CircuitPython, but the Metro M0 is also usable in the Arduino IDE.

    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. When used in Arduino, you can read/write files to it, like a little datalogger or SD card, and then with our helper program, access the files over USB.
    • 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. We also include 4 rubber bumpers to keep it from slipping off your desk. No soldering required to use, plug and play!

    Please note, CircuitPython does not come preloaded. See the full guide linked below for instructions on installing it.

    Check out our full guide for pinouts, schematics, drivers, instructions, Fritzing object, and more!


  • Technical Details

    Technical Details+

    Detailed specifications:

    • ATSAMD21G18 @ 48MHz with 3.3V logic/power
    • 256KB of FLASH + 32KB of RAM
    • 2 MB SPI Flash chip
    • No EEPROM
    • 32.768 KHz crystal for clock generation & RTC
    • 3.3V regulator with 500mA peak current output
    • USB native support, comes with USB bootloader and serial port debugging
    • You also get tons of pins - 25 GPIO pins, 5 more than the Metro 328
    • Hardware Serial, hardware I2C, hardware SPI support
    • PWM outputs on almost all pins
    • 6 x 12-bit analog inputs
    • 1 x 10-bit analog output (DAC)
    • Built in NeoPixel on pin #40
    • Pin #13 red LED for general purpose blinking
    • Power on/off switch
    • 4 mounting holes
    • We also include 4 rubber bumpers to keep it from slipping off your desk
    • Reset button
    • Adafruit Black PCB with gold plate on pads
    • Dimensions: 71mm x 53mm / 2.8" x 2.1"
    • Height (w/ barrel jack): 13mm / 0.5"
    • Weight: 20g
  • Learn


    Learn how to use a microSD card to store code & data with CircuitPython and MicroPython!
    Using GDB to better understand program state and history.
    How to use a SSD1306 OLED display with CircuitPython boards.
    How to use the PCA9685 PWM & servo driver with CircuitPython!
    How to use the PCA9685 DC Motor & Stepper driver with CircuitPython!
    How to use LED Backpacks & FeatherWings with CircuitPython!
    How to use Charlieplex LED matrices with CircuitPython!
    How to draw on a ILI9341 TFT display with CircuitPython!
    CircuitPython, Arduino IDE or even MakeCode with this Metro M0
    Revisiting the Olde Days of television and radio
    NeoPixels and interrupts living in peace and harmony!
    computers are overrated anyhow
    Learn how to control digital inputs and outputs with CircuitPython!
    Learn how to control analog, or continuous voltage, values with CircuitPython!
    Learn how to talk to I2C and SPI devices with CircuitPython!
    Explore some new features in CircuitPython 2.0.0 with nothing but your board and one wire!
    Learn about porting an Arduino library to CircuitPython with the VL6180X distance sensor.
    Add WiFi to your Arduino with a snap of this shield