Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use NRF24L01 Base Module 1: Examples, Pinouts, and Specs

Image of NRF24L01 Base Module 1
Cirkit Designer LogoDesign with NRF24L01 Base Module 1 in Cirkit Designer

Introduction

The NRF24L01 Base Module 1, manufactured by SRS - Sprout Robotic Solutions (Part ID: NRF24L01-ND), is a compact wireless transceiver module designed for short-range communication. Operating in the 2.4 GHz ISM band, this module is widely used in applications such as remote controls, wireless sensors, and IoT devices. Its low power consumption, high data rate, and robust communication capabilities make it an ideal choice for wireless data transmission in embedded systems.

Explore Projects Built with NRF24L01 Base Module 1

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano and NRF24L01 Based Wireless Remote Control
Image of P.T.S CAR , REMOTE , ADVANCE , FINAL V1: A project utilizing NRF24L01 Base Module 1 in a practical application
This circuit features an Arduino Nano microcontroller interfaced with an NRF24L01 wireless transceiver module, powered by a 4 x AAA battery mount. Four pushbuttons are connected to the Arduino's digital inputs with pull-up resistors, and they are used to send different wireless commands via the NRF24L01 module when pressed. The Arduino's SPI interface (D11/MOSI, D12/MISO, D13/SCK) is used for communication with the NRF24L01, and digital pins D9 and D10 are used for the module's CE and CSN pins, respectively.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino 101 with NRF24L01 Wireless Communication Module
Image of RC Transmitter: A project utilizing NRF24L01 Base Module 1 in a practical application
This circuit connects an Arduino 101 microcontroller to an NRF24L01 wireless transceiver module. The Arduino provides power, ground, and SPI communication lines to the NRF24L01, enabling wireless data transmission capabilities. The connections suggest that the Arduino can control the NRF24L01 to send and receive data wirelessly, likely for remote sensing or control applications.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO with NRF24L01 Wireless Communication Module
Image of Gesture Control Drone: A project utilizing NRF24L01 Base Module 1 in a practical application
This circuit connects an Arduino UNO with an NRF24L01 wireless transceiver module. The Arduino provides power and SPI communication lines to the NRF24L01, enabling it to send and receive wireless data. The code for the Arduino is set up with empty setup and loop functions, ready for the user to implement the wireless communication logic.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano and NRF24L01 Wireless Communication Module
Image of Reciever: A project utilizing NRF24L01 Base Module 1 in a practical application
This circuit features an Arduino Nano microcontroller interfaced with an NRF24L01 wireless transceiver module via an adapter. The setup is designed for wireless communication, with the Arduino controlling the transceiver through SPI and digital I/O pins, and the code provided is a basic template for further development.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with NRF24L01 Base Module 1

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of P.T.S CAR , REMOTE , ADVANCE , FINAL V1: A project utilizing NRF24L01 Base Module 1 in a practical application
Arduino Nano and NRF24L01 Based Wireless Remote Control
This circuit features an Arduino Nano microcontroller interfaced with an NRF24L01 wireless transceiver module, powered by a 4 x AAA battery mount. Four pushbuttons are connected to the Arduino's digital inputs with pull-up resistors, and they are used to send different wireless commands via the NRF24L01 module when pressed. The Arduino's SPI interface (D11/MOSI, D12/MISO, D13/SCK) is used for communication with the NRF24L01, and digital pins D9 and D10 are used for the module's CE and CSN pins, respectively.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of RC Transmitter: A project utilizing NRF24L01 Base Module 1 in a practical application
Arduino 101 with NRF24L01 Wireless Communication Module
This circuit connects an Arduino 101 microcontroller to an NRF24L01 wireless transceiver module. The Arduino provides power, ground, and SPI communication lines to the NRF24L01, enabling wireless data transmission capabilities. The connections suggest that the Arduino can control the NRF24L01 to send and receive data wirelessly, likely for remote sensing or control applications.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Gesture Control Drone: A project utilizing NRF24L01 Base Module 1 in a practical application
Arduino UNO with NRF24L01 Wireless Communication Module
This circuit connects an Arduino UNO with an NRF24L01 wireless transceiver module. The Arduino provides power and SPI communication lines to the NRF24L01, enabling it to send and receive wireless data. The code for the Arduino is set up with empty setup and loop functions, ready for the user to implement the wireless communication logic.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Reciever: A project utilizing NRF24L01 Base Module 1 in a practical application
Arduino Nano and NRF24L01 Wireless Communication Module
This circuit features an Arduino Nano microcontroller interfaced with an NRF24L01 wireless transceiver module via an adapter. The setup is designed for wireless communication, with the Arduino controlling the transceiver through SPI and digital I/O pins, and the code provided is a basic template for further development.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Wireless sensor networks
  • Internet of Things (IoT) devices
  • Remote controls for drones, robots, and appliances
  • Home automation systems
  • Industrial monitoring and control systems

Technical Specifications

Key Technical Details

Parameter Value
Operating Frequency 2.4 GHz ISM band
Data Rate 250 kbps, 1 Mbps, 2 Mbps
Operating Voltage 1.9V to 3.6V
Communication Protocol SPI (Serial Peripheral Interface)
Maximum Range Up to 100 meters (line of sight)
Power Consumption 11.3 mA (transmit mode @ 0 dBm)
Sensitivity -94 dBm at 250 kbps
Modulation Technique GFSK (Gaussian Frequency Shift Keying)
Dimensions 15 mm x 29 mm

Pin Configuration and Descriptions

The NRF24L01 Base Module 1 has 8 pins, as described in the table below:

Pin Number Pin Name Description
1 GND Ground connection
2 VCC Power supply (1.9V to 3.6V, typically 3.3V)
3 CE Chip Enable: Activates the module for transmission or reception
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: Indicates data received or transmission complete

Usage Instructions

How to Use the NRF24L01 Base Module 1 in a Circuit

  1. Power Supply: Connect the VCC pin to a 3.3V power source. Do not connect it directly to 5V as it may damage the module. Use a 3.3V regulator if your system operates at 5V.
  2. SPI Interface: Connect the SPI pins (CSN, SCK, MOSI, MISO) to the corresponding SPI pins on your microcontroller.
  3. CE Pin: Use a GPIO pin on your microcontroller to control the CE pin. Set it high to enable transmission or reception.
  4. IRQ Pin: Optionally connect the IRQ pin to a GPIO pin on your microcontroller to handle interrupts for events like data reception or transmission completion.

Important Considerations and Best Practices

  • Decoupling Capacitor: Place a 10 µF capacitor between VCC and GND to stabilize the power supply.
  • Antenna Placement: Ensure the onboard antenna is not obstructed by metal objects to maximize range.
  • Voltage Levels: If your microcontroller operates at 5V logic levels, use a level shifter to interface with the module.
  • Library Support: Use libraries like the RF24 library for Arduino to simplify communication with the module.

Example Code for Arduino UNO

Below is an example of how to use the NRF24L01 Base Module 1 with an Arduino UNO to send and receive data.

Transmitter Code

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

// Define 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 of the receiver
const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  radio.begin(); // Initialize the NRF24L01 module
  radio.openWritingPipe(address); // Set the receiver address
  radio.setPALevel(RF24_PA_LOW); // Set power level to low
  radio.stopListening(); // Set the module to transmit mode
}

void loop() {
  const char text[] = "Hello, World!";
  bool success = radio.write(&text, sizeof(text)); // Send data
  if (success) {
    Serial.println("Message sent successfully!");
  } else {
    Serial.println("Message failed to send.");
  }
  delay(1000); // Wait 1 second before sending the next message
}

Receiver Code

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

// Define 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 of the transmitter
const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  radio.begin(); // Initialize the NRF24L01 module
  radio.openReadingPipe(0, address); // Set the transmitter address
  radio.setPALevel(RF24_PA_LOW); // Set power level to low
  radio.startListening(); // Set the module to receive mode
}

void loop() {
  if (radio.available()) {
    char text[32] = ""; // Buffer to store received data
    radio.read(&text, sizeof(text)); // Read the received data
    Serial.print("Received message: ");
    Serial.println(text);
  }
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Communication Between Modules:

    • Ensure both modules are using the same address and data rate.
    • Verify the wiring and connections, especially the SPI pins.
    • Check the power supply voltage (3.3V) and add a decoupling capacitor if needed.
  2. Short Range or Unstable Connection:

    • Ensure the antenna is unobstructed and positioned correctly.
    • Reduce the data rate to improve range and reliability.
  3. Module Not Responding:

    • Verify that the CE and CSN pins are correctly connected to GPIO pins.
    • Ensure the SPI clock speed is within the module's specifications.

FAQs

Q1: Can the NRF24L01 module be powered with 5V?
A1: No, the module operates at 1.9V to 3.6V. Use a 3.3V regulator if your system provides 5V.

Q2: What is the maximum range of the module?
A2: The maximum range is up to 100 meters in line-of-sight conditions. Obstacles and interference may reduce the range.

Q3: Can multiple modules communicate simultaneously?
A3: Yes, the NRF24L01 supports up to 6 data pipes, allowing multiple modules to communicate with a single receiver.

Q4: How do I debug communication issues?
A4: Use the radio.printDetails() function (from the RF24 library) to check the module's configuration and status.