Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit Feather M0 Express: Examples, Pinouts, and Specs

Image of Adafruit Feather M0 Express
Cirkit Designer LogoDesign with Adafruit Feather M0 Express in Cirkit Designer

Introduction

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.

Explore Projects Built with Adafruit Feather M0 Express

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Solar-Powered Environmental Data Logger with Adafruit Feather M0 Express
Image of Lake Thoreau Monitoring Station: A project utilizing Adafruit Feather M0 Express in a practical application
This circuit is designed for environmental data collection and logging, utilizing an Adafruit Feather M0 Express microcontroller as the central processing unit. It interfaces with a BME280 sensor for atmospheric temperature, humidity, and pressure measurements, an SGP30 sensor for monitoring air quality (eCO2 and TVOC), and a STEMMA soil sensor for detecting soil moisture and temperature. The system is powered by a solar panel and a 3.7v LiPo battery, managed by an Adafruit BQ24074 Solar-DC-USB Lipo Charger, and provides easy access to the microcontroller's connections through an Adafruit Terminal Breakout FeatherWing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Multi-Sensor Health Monitoring System with Adafruit Feather M0 Adalogger
Image of health tracker: A project utilizing Adafruit Feather M0 Express in a practical application
This circuit is designed to interface multiple sensors with an Adafruit Feather M0 Adalogger microcontroller for data logging purposes. The sensors include a MAX30205 temperature sensor, a body dehydration sensor, a MAX30102 pulse oximeter, an Adafruit LSM6DSOX 6-axis accelerometer and gyroscope, and an Adafruit BME680 environmental sensor. All sensors are connected to the microcontroller via an I2C bus, sharing the SDA and SCL lines for communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
Image of MPR121: A project utilizing Adafruit Feather M0 Express in a practical application
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the Feather and communicates via I2C (SCL and SDA) to detect touch inputs, which can be processed or transmitted wirelessly by the Feather.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Vibration Feedback System with Quad Alphanumeric Display and ADXL343 Accelerometer
Image of EC444 - Quest 3: A project utilizing Adafruit Feather M0 Express in a practical application
This circuit features an Adafruit HUZZAH32 ESP32 Feather board as the central microcontroller, which is connected to an Adafruit Quad AlphaNumeric Featherwing display and an Adafruit ADXL343 accelerometer via I2C communication (SCL and SDA lines). The ESP32 controls a vibration motor connected to one of its GPIO pins (A5_IO4) and shares a common power supply (3.3V) and ground (GND) with the other components. The purpose of this circuit is likely to read acceleration data, display information on the alphanumeric display, and provide haptic feedback through the vibration motor.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit Feather M0 Express

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Lake Thoreau Monitoring Station: A project utilizing Adafruit Feather M0 Express in a practical application
Solar-Powered Environmental Data Logger with Adafruit Feather M0 Express
This circuit is designed for environmental data collection and logging, utilizing an Adafruit Feather M0 Express microcontroller as the central processing unit. It interfaces with a BME280 sensor for atmospheric temperature, humidity, and pressure measurements, an SGP30 sensor for monitoring air quality (eCO2 and TVOC), and a STEMMA soil sensor for detecting soil moisture and temperature. The system is powered by a solar panel and a 3.7v LiPo battery, managed by an Adafruit BQ24074 Solar-DC-USB Lipo Charger, and provides easy access to the microcontroller's connections through an Adafruit Terminal Breakout FeatherWing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of health tracker: A project utilizing Adafruit Feather M0 Express in a practical application
Multi-Sensor Health Monitoring System with Adafruit Feather M0 Adalogger
This circuit is designed to interface multiple sensors with an Adafruit Feather M0 Adalogger microcontroller for data logging purposes. The sensors include a MAX30205 temperature sensor, a body dehydration sensor, a MAX30102 pulse oximeter, an Adafruit LSM6DSOX 6-axis accelerometer and gyroscope, and an Adafruit BME680 environmental sensor. All sensors are connected to the microcontroller via an I2C bus, sharing the SDA and SCL lines for communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of MPR121: A project utilizing Adafruit Feather M0 Express in a practical application
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the Feather and communicates via I2C (SCL and SDA) to detect touch inputs, which can be processed or transmitted wirelessly by the Feather.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of EC444 - Quest 3: A project utilizing Adafruit Feather M0 Express in a practical application
ESP32-Based Vibration Feedback System with Quad Alphanumeric Display and ADXL343 Accelerometer
This circuit features an Adafruit HUZZAH32 ESP32 Feather board as the central microcontroller, which is connected to an Adafruit Quad AlphaNumeric Featherwing display and an Adafruit ADXL343 accelerometer via I2C communication (SCL and SDA lines). The ESP32 controls a vibration motor connected to one of its GPIO pins (A5_IO4) and shares a common power supply (3.3V) and ground (GND) with the other components. The purpose of this circuit is likely to read acceleration data, display information on the alphanumeric display, and provide haptic feedback through the vibration motor.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • IoT devices and smart home automation
  • Data logging and sensor interfacing
  • Wearable electronics
  • Robotics and motor control
  • Educational projects and prototyping

Technical Specifications

The Adafruit Feather M0 Express offers a range of features and capabilities to suit various applications. Below are its key technical details:

Key Features

  • Microcontroller: Atmel SAMD21G18 ARM Cortex-M0+ (32-bit, 48 MHz)
  • Flash Memory: 256 KB
  • SRAM: 32 KB
  • Built-in Storage: 2 MB SPI Flash for data logging or CircuitPython
  • Operating Voltage: 3.3V logic
  • Input Voltage: 3.7V LiPo battery or 5V via USB
  • Connectivity: Native USB support
  • I/O Pins: 20 GPIO pins (8 analog inputs, 1 true analog output)
  • PWM Outputs: 8 pins
  • Communication Protocols: UART, I2C, SPI
  • Power Options: USB or LiPo battery
  • Dimensions: 51mm x 23mm x 8mm
  • Weight: 4.8g

Pin Configuration and Descriptions

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

Usage Instructions

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.

Getting Started

  1. Powering the Board:

    • Connect the Feather M0 Express to your computer via a micro-USB cable.
    • Alternatively, connect a 3.7V LiPo battery to the JST connector for portable use.
  2. Installing the Arduino IDE:

    • Download and install the Arduino IDE from the official Arduino website.
    • Install the Adafruit SAMD Boards package via the Arduino Board Manager.
  3. Programming the Board:

    • Select "Adafruit Feather M0" as the board in the Arduino IDE.
    • Choose the correct COM port for the connected Feather M0 Express.
    • Write or upload your Arduino sketch to the board.

Example Code: Blinking the Onboard LED

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
}

Important Considerations

  • Voltage Levels: The Feather M0 Express operates at 3.3V logic. Ensure that any connected peripherals are compatible with 3.3V signals.
  • Battery Charging: The board includes a built-in LiPo battery charger. When connected via USB, it will automatically charge the connected battery.
  • CircuitPython: If using CircuitPython, ensure the board is loaded with the appropriate firmware. The onboard SPI Flash can be used to store Python scripts and libraries.

Troubleshooting and FAQs

Common Issues

  1. Board Not Recognized by Computer:

    • Ensure the USB cable is data-capable (not charge-only).
    • Check that the correct COM port is selected in the Arduino IDE.
  2. Sketch Fails to Upload:

    • Double-tap the reset button to enter bootloader mode. The board's LED will pulse to indicate bootloader mode.
    • Re-select the board and port in the Arduino IDE and try uploading again.
  3. CircuitPython Drive Not Visible:

    • Verify that the CircuitPython firmware is installed on the board.
    • If the drive is corrupted, reformat it as FAT32 and reload the firmware.

FAQs

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.