Linux General/Raspberry Pi¶
RF24 supports a variety of Linux based devices via various drivers. Some boards like RPi can utilize multiple methods to drive the GPIO and SPI functionality.
Potential PreConfiguration¶
If SPI is not already enabled, load it on boot:
sudo raspi-config
Update the tool via the menu as required
Select Advanced and enable the SPI kernel module
Update other software and libraries
sudo apt-get update sudo apt-get upgrade
Build Options¶
The default build on Raspberry Pi utilizes the included BCM2835 driver from the BCM2835 Library
Manual install:
make sudo make install
Connections and Pin Configuration¶
Using pin 15(GPIO22) for CE, pin 24(GPIO8 commonly labeled as CE0) for CSN
Can use any available SPI BUS for CSN.
In general, use
RF24 radio(<ce_pin>, <a>*10+<b>);
for proper constructor to address the correct spi device at /dev/spidev<a>.<b>
Choose any GPIO output pin for radio CE pin.
General¶
RF24 radio(22,0);
MRAA Constructor¶
RF24 radio(15,0);
See the MRAA documentation for Raspberry Pi support
SPI_DEV Constructor¶
RF24 radio(22, 0);
See the Raspberry Pi documentation about the GPIO pins
Pins¶
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 |
- |
- |
breif history of RF24 library lineage¶
Based on the arduino lib from J. Coliz, the library was berryfied by Purinda Gunasekara then forked from github stanleyseow/RF24 to jscrane/RF24-rpi
Network lib also based on farconada/RF24Network