NRF24L01+ 2.4GHz RF Transceiver Module
NRF24L01+ 2.4GHz RF Transceiver Module
Overview:
The NRF24L01+ is a low-power, high-speed 2.4GHz RF transceiver module based on Nordic Semiconductor's NRF24L01+ chip. It is widely used in wireless communication applications such as remote sensing, automation, IoT devices, and robotics. With SPI communication, this module is easy to interface with Arduino, ESP32, STM32, and other microcontrollers.
It supports data rates of up to 2 Mbps, multi-device communication through 6 data pipes, and has excellent power efficiency for battery-powered systems.
Key Features:
Operates in the 2.4GHz ISM band
Selectable data rates: 250 kbps, 1 Mbps, 2 Mbps
Ultra-low power with sleep modes
128-bit AES encryption for secure data transfer
Supports up to 6 devices on separate data pipes
Long range (up to 100m in open space with basic antenna)
Compact module with SPI interface, ideal for microcontroller integration
Technical Specifications:
Parameter | Value |
---|---|
Operating Voltage | 1.9V β 3.6V (Typical 3.3V) |
Interface | SPI |
Operating Frequency | 2.400 β 2.525 GHz |
Data Rate Options | 250 kbps / 1 Mbps / 2 Mbps |
Output Power | Up to 0 dBm |
TX Current | ~11mA |
RX Current | ~13.5mA |
Standby Mode | ~26Β΅A |
Logic Levels | 3.3V only (use level shifter for 5V) |
Dimensions | ~29mm Γ 15mm |
Pinout:
Pin | Label | Description |
---|---|---|
1 | GND | Ground |
2 | VCC | 3.3V Power Supply ONLY |
3 | CE | Chip Enable (control mode) |
4 | CSN | SPI Chip Select (active low) |
5 | SCK | SPI Clock |
6 | MOSI | SPI Data Input |
7 | MISO | SPI Data Output |
8 | IRQ | Interrupt (optional) |
π‘ β οΈ Do not connect VCC to 5V β only use 3.3V!
Wiring with Arduino Uno:
NRF24L01+ | Arduino Uno |
---|---|
VCC | 3.3V |
GND | GND |
CE | D9 |
CSN | D10 |
SCK | D13 |
MOSI | D11 |
MISO | D12 |
IRQ | Not connected (optional) |
Sample Code (Arduino β Transmitter Example):
CopyEdit#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(); } void loop() { const char text[] = "Hello NRF!"; radio.write(&text, sizeof(text)); delay(1000); }
Applications:
Wireless sensor networks
Remote control systems for robots, cars, drones
IoT and home automation projects
Wireless data logging
Peer-to-peer or mesh communication
Resources:
π Datasheet PDF:
https://www.nordicsemi.com/-/media/DocLib/Other/Product_Spec/nRF24L01P_PS_v1_0.pdfπ§° Arduino Library (RF24 by TMRh20):
https://github.com/nRF24/RF24π Written Tutorial (How To Mechatronics):
https://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/π₯ YouTube Video Tutorial:
https://www.youtube.com/watch?v=6-7F7lAqNCk
β How to Install the Library in Arduino IDE:
πΉ Option 1: Install via Library Manager
Open Arduino IDE
Go to Sketch > Include Library > Manage Libraries...
Search for: RF24
Click Install for βRF24 by TMRh20β
πΉ Option 2: Manual Installation from GitHub
Download ZIP from GitHub: https://github.com/nRF24/RF24
In Arduino IDE, go to Sketch > Include Library > Add .ZIP Library...
Select the downloaded ZIP file and install