

The Adafruit Feather 32u4 Bluefruit (Manufacturer Part ID: 2829) is a compact and versatile microcontroller board designed for IoT (Internet of Things) applications. It features the ATmega32U4 microcontroller and integrates Bluetooth Low Energy (BLE) capabilities, making it ideal for wireless communication projects. With its small form factor, built-in USB support, and a variety of I/O pins, this board is perfect for prototyping and deploying connected devices.








| Specification | Value |
|---|---|
| Microcontroller | ATmega32U4 |
| Operating Voltage | 3.3V |
| Input Voltage (USB or LiPo) | 3.7V to 5.5V |
| Clock Speed | 8 MHz |
| Flash Memory | 32 KB (2.75 KB used by bootloader) |
| SRAM | 2.5 KB |
| EEPROM | 1 KB |
| Bluetooth Module | nRF51822 (BLE 4.0) |
| GPIO Pins | 20 (7 PWM-capable, 10 analog inputs) |
| Communication Interfaces | UART, I2C, SPI |
| Power Options | USB or 3.7V LiPo battery |
| Dimensions | 51mm x 23mm x 8mm |
| Weight | 5.7g |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1-20 | GPIO | General-purpose I/O pins |
| A0-A5 | Analog Inputs | Analog input pins (10-bit resolution) |
| D5-D6 | PWM Outputs | Pulse-width modulation capable pins |
| SDA | I2C Data | I2C data line |
| SCL | I2C Clock | I2C clock line |
| RX | UART RX | UART receive pin |
| TX | UART TX | UART transmit pin |
| VIN | Power Input | External power input (3.7V to 5.5V) |
| 3V3 | Power Output | 3.3V regulated output |
| GND | Ground | Ground connection |
| EN | Enable | Enable pin for power control |
| BAT | Battery Input | LiPo battery input |
| RST | Reset | Resets the microcontroller |
Powering the Board:
Connecting Sensors and Actuators:
Programming the Board:
Using Bluetooth:
Below is an example of how to use the Adafruit Feather 32u4 Bluefruit to send data over BLE:
#include <Adafruit_BluefruitLE_UART.h>
// Create an instance of the Bluefruit LE module
Adafruit_BluefruitLE_UART ble(Serial1, -1); // Use Serial1 for communication
void setup() {
Serial.begin(9600); // Initialize USB serial communication
while (!Serial); // Wait for the serial monitor to open
Serial.println("Initializing Bluefruit LE module...");
// Initialize the BLE module
if (!ble.begin()) {
Serial.println("Failed to initialize BLE module. Check connections.");
while (1);
}
Serial.println("BLE module initialized successfully!");
// Set the device name
ble.sendCommandCheckOK(F("AT+GAPDEVNAME=Feather32u4"));
Serial.println("Device name set to 'Feather32u4'.");
// Start advertising
ble.sendCommandCheckOK(F("AT+GAPSTARTADV"));
Serial.println("BLE advertising started.");
}
void loop() {
// Check for incoming data from BLE
if (ble.available()) {
char c = ble.read(); // Read a character from BLE
Serial.print(c); // Print the received character to the serial monitor
}
// Send data to BLE
ble.print("Hello from Feather 32u4!");
delay(1000); // Wait for 1 second
}
The board is not recognized by the computer:
BLE module is not responding:
Power issues:
Code upload fails: