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): https://www.amazon.com/Makerfire-Arduino-NRF24L01-Wireless-Transceiver/dp/B00O9O868G.

A majority of the information you will need can be retrieved from here, from the Optimized High Speed NRF24L01+ Driver Class Documentation v1.0:
http://tmrh20.github.io/RF24/ (Home Page)
http://tmrh20.github.io/RF24/classRF24.html (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 http://tmrh20.github.io/RF24/ (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

receiver.cpp

transmitter.cpp Makefile

transmitter.cpp

Code samples for the Arduino are as follows:

receiver

transmitter

Hope this helps!