

The Adafruit Feather RP2040 RFM69 Packet Radio is a compact microcontroller board that combines the powerful RP2040 chip with an integrated RFM69 radio module. This board is designed for wireless communication at 868 or 915 MHz frequencies, making it an excellent choice for IoT projects, remote sensor networks, and low-power wireless applications. Its small form factor and versatile features make it ideal for both hobbyists and professionals.








| Feature | Specification |
|---|---|
| Microcontroller | RP2040 (Dual-core ARM Cortex-M0+ @ 133 MHz) |
| Flash Memory | 8 MB QSPI Flash |
| Operating Voltage | 3.3V |
| Input Voltage Range | 3.3V to 6V (via USB or LiPo battery) |
| Wireless Module | RFM69HCW (868/915 MHz) |
| Communication Range | Up to 500 meters (line of sight) |
| Power Consumption | Low power, suitable for battery-powered devices |
| GPIO Pins | 21 (including analog inputs) |
| Interfaces | I2C, SPI, UART |
| USB Interface | USB-C for programming and power |
| Battery Support | LiPo battery connector with charging circuit |
| Dimensions | 51mm x 23mm x 8mm |
| Pin Name | Description |
|---|---|
| USB | USB-C connector for power and programming |
| BAT | LiPo battery input (3.7V nominal) |
| 3V3 | 3.3V regulated output |
| GND | Ground |
| GPIO Pins | General-purpose input/output pins (21 total) |
| A0-A3 | Analog input pins |
| SCL/SDA | I2C clock and data lines |
| MOSI/MISO/SCK | SPI communication pins |
| RFM69 Pins | Connected internally to the RP2040 for radio communication |
| EN | Enable pin to turn the board on/off |
| RST | Reset pin to restart the microcontroller |
Powering the Board:
Connecting Peripherals:
Wireless Communication:
Programming the Board:
Below is an example of how to use the Adafruit Feather RP2040 RFM69 with the Arduino IDE to send a simple message:
#include <RFM69.h> // Include the RFM69 library
#define RFM69_CS 8 // Chip select pin for RFM69
#define RFM69_INT 3 // Interrupt pin for RFM69
#define RFM69_RST 4 // Reset pin for RFM69
#define NETWORK_ID 100 // Network ID for communication
#define NODE_ID 1 // Node ID for this device
#define RECEIVER_ID 2 // Node ID of the receiver
RFM69 radio;
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for Serial to initialize
// Initialize the RFM69 module
Serial.println("Initializing RFM69...");
if (!radio.initialize(RFM69_915MHZ, NODE_ID, NETWORK_ID)) {
Serial.println("RFM69 initialization failed!");
while (1);
}
Serial.println("RFM69 initialized successfully!");
// Set encryption key (optional)
radio.encrypt("sampleEncryptKey");
}
void loop() {
// Send a message to the receiver
const char message[] = "Hello, RFM69!";
Serial.println("Sending message...");
if (radio.sendWithRetry(RECEIVER_ID, message, sizeof(message))) {
Serial.println("Message sent successfully!");
} else {
Serial.println("Message failed to send.");
}
delay(1000); // Wait 1 second before sending the next message
}
RFM69_915MHZ with RFM69_868MHZ if using the 868 MHz frequency.RFM69 library is installed in your Arduino IDE.Board Not Detected by Computer:
Wireless Communication Fails:
Power Issues:
Code Upload Fails:
Q: Can I use this board with CircuitPython?
A: Yes, the Adafruit Feather RP2040 is fully compatible with CircuitPython. You can download the CircuitPython firmware from the Adafruit website.
Q: What is the maximum range of the RFM69 module?
A: The RFM69 module can achieve a range of up to 500 meters in line-of-sight conditions. Obstacles and interference may reduce the range.
Q: Can I power the board with a solar panel?
A: Yes, you can use a solar panel with a LiPo battery and a suitable charging circuit to power the board.
Q: Is the RFM69 module compatible with LoRa?
A: No, the RFM69 module uses FSK modulation and is not compatible with LoRa, which uses a different modulation scheme.