

The Adafruit Feather M0 Express is a compact and versatile microcontroller board based on the Atmel SAMD21 ARM Cortex-M0+ processor. It features built-in USB support, a variety of I/O pins, and compatibility with the Arduino IDE and CircuitPython. Designed for portability and ease of use, the Feather M0 Express is ideal for Internet of Things (IoT) projects, data logging, and other embedded applications. Its small form factor and lightweight design make it perfect for wearable and portable devices.








The Adafruit Feather M0 Express offers a range of features and capabilities to suit various applications. Below are its key technical details:
The Feather M0 Express has a total of 20 GPIO pins, each with specific functions. Below is a detailed pinout:
| Pin | Label | Function |
|---|---|---|
| 0 | RX | UART Receive (Serial Communication) |
| 1 | TX | UART Transmit (Serial Communication) |
| 2 | D2 | Digital I/O, PWM capable |
| 3 | D3 | Digital I/O, PWM capable |
| 4 | D4 | Digital I/O, PWM capable |
| 5 | D5 | Digital I/O, PWM capable |
| 6 | D6 | Digital I/O, PWM capable |
| 9 | D9 | Digital I/O, PWM capable |
| 10 | D10 | Digital I/O, PWM capable |
| 11 | D11 | Digital I/O, SPI MOSI |
| 12 | D12 | Digital I/O, SPI MISO |
| 13 | D13 | Digital I/O, SPI SCK, onboard LED |
| A0 | A0 | Analog Input (ADC) |
| A1 | A1 | Analog Input (ADC) |
| A2 | A2 | Analog Input (ADC) |
| A3 | A3 | Analog Input (ADC) |
| A4 | SDA | Analog Input, I2C Data Line |
| A5 | SCL | Analog Input, I2C Clock Line |
| EN | Enable | Enable pin for power management |
| BAT | Battery Voltage | Voltage from the connected LiPo battery |
The Adafruit Feather M0 Express is designed to be user-friendly and compatible with multiple programming environments, including the Arduino IDE and CircuitPython. Below are the steps to get started and important considerations for using the board.
Powering the Board:
Installing the Arduino IDE:
Programming the Board:
The following example demonstrates how to blink the onboard LED connected to pin 13.
// Blink example for Adafruit Feather M0 Express
// This code blinks the onboard LED at 1-second intervals.
void setup() {
pinMode(13, OUTPUT); // Set pin 13 as an output for the onboard LED
}
void loop() {
digitalWrite(13, HIGH); // Turn the LED on
delay(1000); // Wait for 1 second
digitalWrite(13, LOW); // Turn the LED off
delay(1000); // Wait for 1 second
}
Board Not Recognized by Computer:
Sketch Fails to Upload:
CircuitPython Drive Not Visible:
Q: Can I power the Feather M0 Express with both USB and a battery simultaneously?
A: Yes, the board automatically switches between USB and battery power, prioritizing USB when available.
Q: How do I reset the board to factory settings?
A: Double-tap the reset button to enter bootloader mode, then upload a new sketch or reinstall CircuitPython firmware.
Q: What is the maximum current output for the GPIO pins?
A: Each GPIO pin can source or sink up to 7mA. For higher current requirements, use external drivers or transistors.
Q: Can I use the Feather M0 Express with other FeatherWing add-ons?
A: Yes, the Feather M0 Express is compatible with the FeatherWing ecosystem, allowing easy expansion with additional modules.
By following this documentation, users can effectively utilize the Adafruit Feather M0 Express for a wide range of projects and applications.