Newly Optimized RF24Network Layer  v1.0.7
2014-2015 - Optimized RF24 Network Layer for NRF24L01 radios
TMRh20 2014 - Newly Optimized Network Layer for nRF24L01(+) radios

Please see the full documentation at

Raspberry Pi - PreConfig

Possible pre-configuration:

If SPI is not already enabled, load it on boot:

sudo raspi-config  

A. Update the tool via the menu as required B. Select Advanced and enable the SPI kernel module C. Update other software and libraries:

 sudo apt-get update  
 sudo apt-get upgrade  

RPi - RF24 Quick-Start

A. Make a directory to contain the RF24 and possibly RF24Network lib and enter it:

mkdir ~/rf24libs  
cd ~/rf24libs  

B. Clone the RF24 Repo

git clone RF24  

C. Change to the new RF24 directory

cd RF24  

D. Build the library, and run an example file:

sudo make install
cd examples_RPi  
sudo ./gettingstarted  

RPi - RF24Network Quick-Start

A. Enter the same directory that contains the RF24 library folder

cd ~/rf24libs  

B. Clone the RF24Network Repo

git clone RF24Network  

C. Copy the RF24Network folder to the current directory, and delete the rest

cd RF24Network  

D. Build the library

sudo make install
cd examples_RPi  
sudo ./helloworld_rx   OR   sudo ./helloworld_tx  

Connection Info

Using pin 15/GPIO 22 for CE, pin 24/GPIO8 (CE0) for CSN

Can use either RPi CE0 or CE1 pins for radio CSN. Choose any RPi output pin for radio CE pin.


RF24 radio(RPI_V2_GPIO_P1_15,BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ);
RF24 radio(RPI_V2_GPIO_P1_15,BCM2835_SPI_CS1, BCM2835_SPI_SPEED_8MHZ);

    RPi B+:


PIN NRF24L01 RPI RPi -P1 Connector
1 GND rpi-gnd (25)
2 VCC rpi-3v3 (17)
3 CE rpi-gpio22 (15)
4 CSN rpi-gpio8 (24)
5 SCK rpi-sckl (23)
6 MOSI rpi-mosi (19)
7 MISO rpi-miso (21)
8 IRQ - -

See for BCM2835 class documentation. Note: The BCM library has been customized slightly to allow use of hardware CE pins not in use for SPI, and to include a millis() function.

Based on the arduino lib from J. Coliz the library was berryfied by Purinda Gunasekara then forked from github stanleyseow/RF24 to Network lib also based on

Currently optimized and aligned with Arduino fork of libraries by TMRh20: and Documentation: