The Adafruit Feather 32u4 RFM69 is a powerful and versatile microcontroller board that integrates a high-performance ATmega32u4 MCU with a RFM69HCW radio module for wireless communication. This board is part of the Feather ecosystem, designed for portability, ease of use, and expandability. It is ideal for hobbyists, educators, and professionals who require a compact, reliable, and energy-efficient solution for IoT projects, wireless sensors, and remote-controlled devices.
Pin Number | Function | Description |
---|---|---|
1 | GND | Ground |
2 | BAT | Battery positive voltage (3.7-6V) |
3 | EN | Enable pin for the 3.3V regulator |
4 | USB | USB positive voltage (up to 12V) |
5 | RST | Reset pin |
6-11 | D0-D5 | Digital I/O pins, PWM capable (D3, D5) |
12-17 | D6-D11 | Digital I/O pins, PWM capable (D9, D10, D11) |
18-19 | D12-D13 | Digital I/O pins, D13 is also the LED_BUILTIN |
20-25 | A0-A5 | Analog input channels |
26-27 | SDA/SCL | I2C Data/Clock |
28-29 | RX/TX | UART Receive/Transmit |
30 | MISO | SPI Master In Slave Out |
31 | SCK | SPI Serial Clock |
32 | MOSI | SPI Master Out Slave In |
33 | RST | Radio module reset |
34 | CS | Radio module chip select |
35 | G0 | Radio module interrupt/GPIO0 |
Powering the Board:
Programming:
Using the RFM69 Radio:
RadioHead
library in the Arduino IDE to use the RFM69 module.Board not recognized by computer:
Radio communication not working:
RadioHead
library is correctly installed and configured.Can I use the Feather 32u4 RFM69 with a 5V system?
How do I charge the battery?
What is the range of the RFM69 radio?
#include <SPI.h>
#include <RH_RF69.h>
// Singleton instance of the radio driver
RH_RF69 rf69;
void setup() {
// Initialize RFM69 radio
if (!rf69.init()) {
// Initialization failed, handle the error
}
// Set the frequency to match your module (e.g., 915.0 for North America)
if (!rf69.setFrequency(915.0)) {
// Frequency set failed, handle the error
}
// Optionally, increase the transmit power
rf69.setTxPower(14, true);
}
void loop() {
// Send a message to a receiver
const char *msg = "Hello World!";
rf69.send((uint8_t *)msg, strlen(msg));
rf69.waitPacketSent();
// Now wait for a reply
uint8_t buf[RH_RF69_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf69.waitAvailableTimeout(500)) {
// Should be a reply message for us now
if (rf69.recv(buf, &len)) {
// Message received, handle it
} else {
// Receive failed, handle the error
}
}
}
Note: This example assumes that you have the RadioHead
library installed and that you are familiar with uploading sketches to the Adafruit Feather 32u4 RFM69. The comments in the code are wrapped to ensure they do not exceed 80 characters in line length.