The NRF24L01 is a 2.4GHz transceiver module that allows your Arduino boards (or robots!) to communicate wirelessly โ both sending and receiving data!
Itโs ideal for robot-to-robot comms, wireless sensors, remote controllers, and DIY IoT projects. ๐๐ถ
โ๏ธ Key Features
| Feature | Description |
|---|---|
| Frequency | 2.4 GHz (ISM band) |
| Range | ~100m (with PA+LNA version) |
| Data rate | Up to 2 Mbps |
| Communication | SPI |
| Voltage | 3.3V ONLY (โ ๏ธ not 5V-tolerant!) |
| Multi-device mode | Supports 6 data pipes |
| Power consumption | Very low (great for batteries) ๐ |
โ ๏ธ Needs 3.3V โ connecting VCC to 5V will fry it!
๐งฉ Pinout (8 pins)
| Pin | Function |
|---|---|
| GND | Ground |
| VCC | 3.3V power only โ ๏ธ |
| CE | Chip Enable |
| CSN | SPI Chip Select |
| SCK | SPI Clock |
| MOSI | SPI Data to module |
| MISO | SPI Data from module |
| IRQ | Interrupt (optional) |
๐ Wiring with Arduino UNO
| NRF24L01 | Arduino UNO |
|---|---|
| GND | GND |
| VCC | 3.3V |
| CE | D9 |
| CSN | D10 |
| SCK | D13 |
| MOSI | D11 |
| MISO | D12 |
| IRQ | Not used |
๐ Pro tip: Add a 10ยตF capacitor between VCC and GND to stabilize power (especially if using the PA+LNA long-range version).
๐ฆ Libraries to Use
Install via Arduino IDE Library Manager:
RF24by TMRh20 (most popular & well-documented)- Comes with examples like
GettingStarted,pingpair, etc.
๐ฌ Arduino Code Example (Transmitter)
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_LOW);
radio.stopListening(); // Set as transmitter
}
void loop() {
const char text[] = "Hello Robot!";
radio.write(&text, sizeof(text));
Serial.println("Sent: Hello Robot!");
delay(1000);
}
๐ฏ Use a second Arduino with the same code, but with radio.startListening() instead โ and boom, wireless comms!
๐งช Use Cases
- ๐ง Wireless remote control (joysticks, sliders)
- ๐ค Robot-to-robot communication
- ๐ Sensor networks (e.g., temperature nodes)
- ๐ง Swarm robotics
- ๐ก Home automation systems
โ ๏ธ Tips & Gotchas
โ ๏ธ 3.3V only โ use AMS1117 regulator if needed
โ ๏ธ Power-hungry on transmit โ use capacitor
โ ๏ธ Avoid long jumper wires (can cause instability)
โ ๏ธ Use separate 3.3V LDO if your Arduino’s regulator is weak
๐ Variants
| Version | Features |
|---|---|
| NRF24L01 | Standard ~100m |
| NRF24L01+PA+LNA | Long-range, with antenna booster ๐ก |
| SMD versions | Compact & SMD-friendly |


