Working with the NRF24L01+ Transcievers on the Raspberry Pi And Arduino

After sifting through a bunch of resources for the NRF24L01+ modules, I finally came up a refined collection that I think would be helpful to someone else getting into the world of the NRF24L01+ modules.

To overview, the NRF24L01+ module is a low power 2Mbps RF transceiver for the 2.4GHz ISM band, and it costs nearly $1.00 per unit. For example, they can be found on amazon, ten for $11.98 (as of 7/21/2018):

A majority of the information you will need can be retrieved from here, from the Optimized High Speed NRF24L01+ Driver Class Documentation v1.0: (Home Page) (Class Reference)

The NRF24L01/NRF24L01+ Module and pinout look as follows:

Power problems that occur with the module can be resolved by adding a 10uF capacitor to pins 1 and 2 (the capacitor can be soldered directly on the module if you wish), and this eliminates transceiver communication problems.

Wiring info can be found off this table below, found from (7/21/2018).

Though, it’s much easier in my opinion to look at a picture schematic of where the wires go. Here’s one for the Raspberry Pi Model B:

And here’s one for the Raspberry Pi Model 2:

And here’s one for the Arduino Uno:

Configuring the Raspberry Pi can be done in a few steps:

Configuring the Arduino IDE is also fairly straight forward:

Code samples for the Raspberry Pi are as follows:

receiver.cpp Makefile


transmitter.cpp Makefile


Code samples for the Arduino are as follows:



Hope this helps!