

The nRF24L01 is a low-power 2.4 GHz wireless transceiver module manufactured by TECNOIOT (Part ID: nRF24L01). It is designed for short-range communication and supports multiple data rates (250 kbps, 1 Mbps, and 2 Mbps). The module features a built-in packet handling system, making it highly efficient for wireless data transmission. Its compact size and low power consumption make it ideal for battery-powered devices.








The following table outlines the key technical details of the nRF24L01 module:
| Parameter | Value |
|---|---|
| Operating Frequency | 2.4 GHz ISM Band |
| Data Rates | 250 kbps, 1 Mbps, 2 Mbps |
| Operating Voltage | 1.9V to 3.6V |
| Maximum Output Power | 0 dBm |
| Current Consumption | 11.3 mA (TX at 0 dBm), 13.5 mA (RX) |
| Sleep Mode Current | 900 nA |
| Communication Interface | SPI |
| Range | Up to 100 meters (line of sight) |
| Dimensions | 15 mm x 29 mm |
The nRF24L01 module has 8 pins. The table below describes each pin:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground connection |
| 2 | VCC | Power supply (1.9V to 3.6V, typically 3.3V) |
| 3 | CE | Chip Enable: Activates RX or TX mode |
| 4 | CSN | Chip Select Not: SPI chip select (active low) |
| 5 | SCK | Serial Clock: SPI clock input |
| 6 | MOSI | Master Out Slave In: SPI data input |
| 7 | MISO | Master In Slave Out: SPI data output |
| 8 | IRQ | Interrupt Request: Active low, indicates data received or transmission complete |
Below is an example of how to use the nRF24L01 with an Arduino UNO to send and receive data. This example uses the popular RF24 library.
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
// Define the CE and CSN pins for the nRF24L01 module
#define CE_PIN 9
#define CSN_PIN 10
// Create an RF24 object
RF24 radio(CE_PIN, CSN_PIN);
// Define the address for communication
const byte address[6] = "00001";
void setup() {
Serial.begin(9600); // Initialize serial communication
radio.begin(); // Initialize the nRF24L01 module
radio.openWritingPipe(address); // Set the address for transmission
radio.setPALevel(RF24_PA_LOW); // Set power level to low
radio.stopListening(); // Set the module to TX mode
}
void loop() {
const char text[] = "Hello, World!"; // Data to send
bool success = radio.write(&text, sizeof(text)); // Send data
if (success) {
Serial.println("Data sent successfully!");
} else {
Serial.println("Data transmission failed.");
}
delay(1000); // Wait 1 second before sending again
}
No Communication Between Modules
Unstable Operation
Short Range
Q: Can I use the nRF24L01 with a 5V microcontroller?
A: Yes, but you must use a 3.3V regulator or level shifters to avoid damaging the module.
Q: What is the maximum range of the nRF24L01?
A: The range is up to 100 meters in line-of-sight conditions. Obstacles and interference can reduce the range.
Q: How do I know if data was successfully transmitted?
A: Use the radio.write() function, which returns true if the transmission was successful.
Q: Can I use multiple nRF24L01 modules in the same network?
A: Yes, the module supports up to 6 data pipes for simultaneous communication with multiple devices.