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

How to Use NRF24L01+ Breakout Board: Examples, Pinouts, and Specs

Image of NRF24L01+ Breakout Board
Cirkit Designer LogoDesign with NRF24L01+ Breakout Board in Cirkit Designer

Introduction

The NRF24L01+ Breakout Board is a compact wireless transceiver module manufactured by Nordic Semiconductor (Part ID: nRF24L01+). It operates in the 2.4 GHz ISM band, enabling low-power, short-range communication between devices. This module is widely used in Internet of Things (IoT) applications, wireless sensor networks, and remote control systems due to its reliability, low cost, and ease of integration.

Explore Projects Built with NRF24L01+ Breakout Board

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+ Breakout Board 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 Micro-Controlled Wireless Communication System with LCD Interface
Image of Festus project transmitter: A project utilizing NRF24L01+ Breakout Board in a practical application
This circuit features an Arduino Micro microcontroller interfaced with an NRF24L01 wireless transceiver module, a 16x2 LCD screen with I2C communication, and a pushbutton. The Arduino Micro controls the NRF24L01 for wireless data communication and displays information on the LCD screen, while the pushbutton provides user input. A 7805 voltage regulator is used to step down the 12V power supply to 5V, powering the Arduino, the LCD, and the NRF24L01 module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Wireless Communication System with nRF24L01 Module
Image of drone reciever: A project utilizing NRF24L01+ Breakout Board in a practical application
This circuit connects an nRF24L01 wireless transceiver module to an Arduino Nano microcontroller through an adapter board. The Arduino Nano is configured to communicate with the nRF24L01 via SPI (Serial Peripheral Interface), using pins D9 and D10 for chip enable (CE) and chip select (CSN), and pins D11 to D13 for the SPI bus (MOSI, MISO, SCK). An electrolytic capacitor is connected across the power supply lines likely for power stabilization.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino 101 with NRF24L01 Wireless Communication Module
Image of RC Transmitter: A project utilizing NRF24L01+ Breakout Board 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

Explore Projects Built with NRF24L01+ Breakout Board

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+ Breakout Board 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 Festus project transmitter: A project utilizing NRF24L01+ Breakout Board in a practical application
Arduino Micro-Controlled Wireless Communication System with LCD Interface
This circuit features an Arduino Micro microcontroller interfaced with an NRF24L01 wireless transceiver module, a 16x2 LCD screen with I2C communication, and a pushbutton. The Arduino Micro controls the NRF24L01 for wireless data communication and displays information on the LCD screen, while the pushbutton provides user input. A 7805 voltage regulator is used to step down the 12V power supply to 5V, powering the Arduino, the LCD, and the NRF24L01 module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of drone reciever: A project utilizing NRF24L01+ Breakout Board in a practical application
Arduino Nano Wireless Communication System with nRF24L01 Module
This circuit connects an nRF24L01 wireless transceiver module to an Arduino Nano microcontroller through an adapter board. The Arduino Nano is configured to communicate with the nRF24L01 via SPI (Serial Peripheral Interface), using pins D9 and D10 for chip enable (CE) and chip select (CSN), and pins D11 to D13 for the SPI bus (MOSI, MISO, SCK). An electrolytic capacitor is connected across the power supply lines likely for power stabilization.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of RC Transmitter: A project utilizing NRF24L01+ Breakout Board 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

Common Applications

  • Wireless data transmission in IoT devices
  • Remote control systems (e.g., drones, RC cars)
  • Wireless sensor networks
  • Home automation systems
  • Industrial monitoring and control

Technical Specifications

Key Technical Details

Parameter Value
Operating Frequency 2.4 GHz ISM Band
Modulation Scheme GFSK (Gaussian Frequency Shift Keying)
Data Rate 250 kbps, 1 Mbps, 2 Mbps
Operating Voltage 1.9V to 3.6V
Logic Level Compatibility 3.3V
Maximum Output Power 0 dBm (1 mW)
Sensitivity -94 dBm at 250 kbps
Communication Range Up to 100 meters (line of sight)
Current Consumption 11.3 mA (TX at 0 dBm), 13.5 mA (RX mode)
Standby Current 22 µA
Sleep Mode Current 900 nA
Interface SPI (Serial Peripheral Interface)
Number of Channels 125
Address Width 3 to 5 bytes
Payload Size 1 to 32 bytes

Pin Configuration and Descriptions

The NRF24L01+ Breakout Board typically has an 8-pin header for interfacing with microcontrollers. Below is the pinout:

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 RX or TX mode
4 CSN Chip Select Not: SPI enable (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 (active low)

Usage Instructions

How to Use the NRF24L01+ 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 microcontroller 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 RX/TX mode and low for standby mode.
  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.
  5. Antenna: Ensure the onboard PCB antenna or external antenna (if applicable) is unobstructed for optimal signal strength.

Important Considerations

  • Decoupling Capacitor: Place a 10 µF capacitor between VCC and GND near the module to stabilize the power supply.
  • Voltage Level Shifting: If using a 5V microcontroller, use a level shifter or voltage divider for the SPI pins to avoid damaging the module.
  • Signal Integrity: Keep SPI wires short to minimize noise and ensure reliable communication.
  • 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+ with an Arduino UNO to send and receive data. This example uses the RF24 library.

#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 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 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
}

Notes:

  • Install the RF24 library in the Arduino IDE via the Library Manager before running the code.
  • Ensure proper wiring between the Arduino and the NRF24L01+ module.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Module Not Responding:

    • Ensure the module is powered with 3.3V and not 5V.
    • Check all connections, especially SPI pins.
    • Add a decoupling capacitor (10 µF) near the module.
  2. Poor Communication Range:

    • Ensure the antenna is unobstructed and positioned correctly.
    • Reduce the data rate to 250 kbps for better range.
    • Check for interference from other 2.4 GHz devices.
  3. Data Transmission Fails:

    • Verify that both transmitter and receiver use the same address and channel.
    • Ensure the CE pin is set high during transmission or reception.
  4. High Power Consumption:

    • Use the module's power-down mode when not actively transmitting or receiving.
    • Ensure the module is not in constant TX mode unnecessarily.

FAQs

Q: Can the NRF24L01+ module communicate with Bluetooth devices?
A: No, the NRF24L01+ uses the 2.4 GHz ISM band but does not support Bluetooth protocols.

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 this range.

Q: Can I use multiple NRF24L01+ modules in the same network?
A: Yes, the module supports multi-node communication using unique addresses for each device.

Q: Is the NRF24L01+ compatible with 5V microcontrollers?
A: The module operates at 3.3V. Use a level shifter or voltage divider for SPI pins when interfacing with 5V microcontrollers.