nRF24L01+ 2.4 GHz transceiver
nRF24L01+ 2.4 GHz transceiver: GND, VCC, CE, CSN, SCK, MOSI, MISO, IRQ pins, why it needs clean 3.3 V and a 10 µF capacitor, and the RF24 library.
Community draft — report a mistake
3.3 V or 5 V? VCC must be 3.3 V: 5 V destroys it. The signal inputs are 5 V tolerant, so an Uno can drive SCK, MOSI, CSN and CE directly; MISO is a 3.3 V output that every board reads fine.
The nRF24L01+ is a cheap 2.4 GHz radio for sending small packets between two or more boards — remote controls, sensor nodes and wireless car controllers. Range is tens of metres with the PCB antenna version and a few hundred with the PA+LNA version and external antenna.
Almost every “it doesn’t work” problem is power. The radio needs a clean 3.3 V supply that can handle short current bursts. A 10 µF capacitor soldered right at the module’s VCC and GND pins fixes most issues.
It shares the 2.4 GHz band with Wi-Fi. If you get dropouts, pick a channel above your Wi-Fi channels (for example channel 100–120).
Pinout
| Pin | What it does |
|---|---|
GND | Ground |
VCC | 3.3 V supply (about 12 mA; PA+LNA versions up to about 115 mA) |
CE | Chip enable (any digital pin) |
CSN | SPI chip select (any digital pin) |
SCK | SPI clock |
MOSI | SPI data in |
MISO | SPI data out |
IRQ | Interrupt output — optional |
Library
RF24 by TMRh20
Arduino IDE → Library Manager → search the name above. Each guide lists the exact version we compile against.
Use it with
- nRF24L01+ 2.4 GHz transceiver with Arduino Mega 2560 Arduino C++
- nRF24L01+ 2.4 GHz transceiver with Arduino Nano Arduino C++
- nRF24L01+ 2.4 GHz transceiver with Arduino Pro Mini (5 V) Arduino C++
- nRF24L01+ 2.4 GHz transceiver with Arduino Uno R3 Arduino C++
- nRF24L01+ 2.4 GHz transceiver with ESP32 DevKit V1 Arduino C++
Common errors
Works only when you touch it, or only at short range
The 3.3 V supply is noisy or weak. Solder a 10 µF (or larger) capacitor directly across VCC and GND on the module, or use a socket adapter board with its own regulator.
radio.begin() fails / isChipConnected() is false
Check CE and CSN match your sketch, and that the 8-pin header is wired by function, not by position — the pin order is easy to mirror.
PA+LNA version barely transmits
An Uno’s 3.3 V pin can’t supply it. Power it from a separate 3.3 V regulator, and set the PA level to LOW while testing on a desk.
Two radios never talk
Addresses, channel and data rate must match on both sides. Start with RF24’s GettingStarted example on both boards.