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

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

Image of Adafruit Feather M0 Bluefruit LE
Cirkit Designer LogoDesign with Adafruit Feather M0 Bluefruit LE in Cirkit Designer

Introduction

The Adafruit Feather M0 Bluefruit LE is a compact, powerful microcontroller equipped with Bluetooth Low Energy (LE) for wireless communication. It is designed around the ATSAMD21G18 ARM Cortex M0+ processor, which operates at 48MHz. This board is ideal for a variety of projects, including IoT devices, wearable technology, and smart home applications. Its compatibility with the Arduino IDE allows for a familiar programming environment, making it accessible for both beginners and experienced developers.

Explore Projects Built with Adafruit Feather M0 Bluefruit LE

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 Bluefruit LE 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
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
Image of MPR121: A project utilizing Adafruit Feather M0 Bluefruit LE 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
Adafruit Feather 32u4 Bluefruit with MPR121 Capacitive Touch Sensor Interface
Image of ALi WTSE: A project utilizing Adafruit Feather M0 Bluefruit LE 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 3.3V supply from the Feather and communicates with the microcontroller via I2C, with SCL connected to pin 3 and SDA connected to pin 2 of the Feather. This setup allows the Feather to detect touch inputs from the MPR121 for further processing or wireless communication.
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 Bluefruit LE 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

Explore Projects Built with Adafruit Feather M0 Bluefruit LE

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 Bluefruit LE 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 MPR121: A project utilizing Adafruit Feather M0 Bluefruit LE 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 ALi WTSE: A project utilizing Adafruit Feather M0 Bluefruit LE in a practical application
Adafruit Feather 32u4 Bluefruit with MPR121 Capacitive Touch Sensor Interface
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the 3.3V supply from the Feather and communicates with the microcontroller via I2C, with SCL connected to pin 3 and SDA connected to pin 2 of the Feather. This setup allows the Feather to detect touch inputs from the MPR121 for further processing or wireless communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of health tracker: A project utilizing Adafruit Feather M0 Bluefruit LE 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

Technical Specifications

Key Technical Details

  • Microcontroller: ATSAMD21G18, 32-bit ARM Cortex M0+
  • Clock Speed: 48 MHz
  • Operating Voltage: 3.3V
  • Input Voltage: 3.7-6V via battery and USB
  • Digital I/O Pins: 20
  • PWM Channels: 10
  • Analog Input Channels: 6 (12-bit ADC)
  • Analog Output Channels: 1 (10-bit DAC)
  • Flash Memory: 256 KB
  • SRAM: 32 KB
  • EEPROM: None (can emulate up to 16 KB with the onboard flash)
  • Bluetooth: Bluetooth Low Energy (LE) 4.0 module

Pin Configuration and Descriptions

Pin Number Function Description
1 GND Ground
2 BAT Battery positive voltage (3.7-6V)
3 EN Enable pin for the regulator
4 USB USB positive voltage (5V from USB port)
5-14 D0-D9 Digital pins, PWM capable (D5, D6, D9)
15-20 A0-A5 Analog input pins
21 AREF Analog reference voltage
22 SCK SPI clock
23 MO SPI master out, slave in
24 MI SPI master in, slave out
25 RX UART receive pin
26 TX UART transmit pin
27 SDA I2C data line
28 SCL I2C clock line
29 RST Reset pin
30 3V3 3.3V output from the regulator

Usage Instructions

Integrating with a Circuit

  1. Powering the Board: Connect a 3.7V LiPo battery to the JST connector for portable applications or power the board via the USB connection.
  2. Programming: Use a micro USB cable to connect the board to your computer. Select "Adafruit Feather M0" from the Boards menu in the Arduino IDE.
  3. Connecting Bluetooth: Pair the Feather M0 Bluefruit LE with other Bluetooth LE devices for wireless data transfer.
  4. Digital & Analog I/O: Utilize the digital and analog pins for interfacing with sensors, actuators, and other components.

Best Practices

  • Always disconnect the battery or USB power before making or altering connections.
  • Use a current limiting resistor with LEDs and other sensitive components.
  • Avoid exposing the board to static electricity or physical stress.
  • Ensure the correct orientation and alignment of the board when connecting shields or components.

Troubleshooting and FAQs

Common Issues

  • Board not recognized by computer: Check the USB cable and port, try a different cable or port, or press the reset button twice quickly to enter bootloader mode.
  • Bluetooth not connecting: Ensure the device is in range, the battery is charged, and the board is not paired with another device.
  • Sketch not uploading: Verify the correct board and port are selected in the Arduino IDE, and the bootloader is not corrupted.

Solutions and Tips

  • If the board is not responding, perform a hard reset by briefly connecting the RST pin to GND.
  • For Bluetooth issues, check the antenna area for obstructions and ensure the module's firmware is up to date.
  • Use the serial monitor to debug and monitor data sent to and from the board.

FAQs

Q: Can I use the Feather M0 Bluefruit LE with Arduino shields? A: Yes, it is compatible with FeatherWing shields designed for the Feather form factor.

Q: How do I update the Bluetooth module's firmware? A: Follow Adafruit's guide on updating the Bluefruit module using the Bluefruit LE Connect app.

Q: What is the maximum Bluetooth range? A: The typical range is up to 10 meters (33 feet), but it can vary based on environmental factors.

Example Code for Arduino UNO

#include <Adafruit_BLE.h>
#include <Adafruit_BluefruitLE_SPI.h>

// Define the pins for the SPI connection
#define BLUEFRUIT_SPI_CS               8
#define BLUEFRUIT_SPI_IRQ              7
#define BLUEFRUIT_SPI_RST              4    // Optional but recommended, set to -1 if unused

// Create the bluefruit object
Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_CS, BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST);

void setup() {
  Serial.begin(115200);
  Serial.println(F("Adafruit Bluefruit Feather M0 Example"));
  Serial.println(F("Initializing..."));

  // Initialise the module
  ble.begin();

  // Perform a factory reset to make sure everything is in a known state
  ble.factoryReset();

  // Set the device name
  ble.sendCommandCheckOK(F("AT+GAPDEVNAME=Feather M0"));
}

void loop() {
  // Placeholder for code to run repeatedly
}

Note: This example assumes you are using the Adafruit BluefruitLE SPI library. Ensure you have installed the necessary libraries through the Arduino Library Manager before compiling.