

The NRF24 is a low-power, 2.4 GHz wireless transceiver module designed for short-range communication. Manufactured by NRF24, this module is widely used in applications such as remote controls, wireless sensors, and IoT devices. It supports multiple communication channels and can operate in both point-to-point and point-to-multipoint configurations, making it a versatile choice for wireless data transmission.








The NRF24 module is designed to provide reliable wireless communication with minimal power consumption. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Operating Frequency | 2.4 GHz ISM band |
| Operating Voltage | 1.9V to 3.6V |
| Communication Range | Up to 100 meters (line of sight) |
| Data Rate | 250 kbps, 1 Mbps, 2 Mbps |
| Power Consumption | 11.3 mA (transmit mode at 0 dBm) |
| Sleep Mode Current | 900 nA |
| Modulation Technique | GFSK (Gaussian Frequency Shift Keying) |
| Number of Channels | 125 |
| Maximum Payload Size | 32 bytes |
| SPI Clock Speed | Up to 10 MHz |
The NRF24 module typically has 8 pins. Below is the pinout and description:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground connection |
| 2 | VCC | Power supply (1.9V to 3.6V) |
| 3 | CE | Chip Enable: Activates the module for transmission or reception |
| 4 | CSN | Chip Select Not: Used to enable SPI communication |
| 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: Indicates data received or transmission complete (optional) |
Below is an example of how to connect the NRF24 module to an Arduino UNO and send data wirelessly.
| NRF24 Pin | Arduino UNO Pin |
|---|---|
| GND | GND |
| VCC | 3.3V |
| CE | Pin 9 |
| CSN | Pin 10 |
| SCK | Pin 13 |
| MOSI | Pin 11 |
| MISO | Pin 12 |
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
// Define CE and CSN pins
#define CE_PIN 9
#define CSN_PIN 10
// Create an RF24 object
RF24 radio(CE_PIN, CSN_PIN);
// Define the address of the receiver
const byte address[6] = "00001";
void setup() {
Serial.begin(9600); // Initialize serial communication
radio.begin(); // Initialize the NRF24 module
radio.openWritingPipe(address); // Set the receiver address
radio.setPALevel(RF24_PA_LOW); // Set power level to low
radio.stopListening(); // Set module to transmit 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
}
RF24 for easier implementation and configuration.No Communication Between Modules
Short Communication Range
Module Not Responding
Q: Can the NRF24 module communicate with multiple devices?
A: Yes, the NRF24 supports point-to-multipoint communication using unique addresses for each device.
Q: What is the maximum data rate of the NRF24?
A: The NRF24 supports data rates of 250 kbps, 1 Mbps, and 2 Mbps.
Q: Can I use the NRF24 with a 5V microcontroller?
A: Yes, but you must use a level shifter or voltage divider to ensure the SPI pins operate at 3.3V logic levels.
Q: How can I increase the communication range?
A: Use a lower data rate, ensure a clear line of sight, and consider using an external antenna if supported.
This concludes the documentation for the NRF24 module.