| 1 | # Optimized High Speed Driver for nRF24L01(+) 2.4GHz Wireless Transceiver |
| 2 | |
| 3 | @tableofcontents |
| 4 | |
| 5 | ## Design Goals |
| 6 | |
| 7 | This library fork is designed to be... |
| 8 | |
| 9 | - More compliant with the manufacturer specified operation of the chip, while allowing advanced users |
| 10 | to work outside the recommended operation. |
| 11 | - Utilize the capabilities of the radio to their full potential via Arduino |
| 12 | - More reliable, responsive, bug-free and feature rich |
| 13 | - Easy for beginners to use, with well documented examples and features |
| 14 | - Consumed with a public interface that's similar to other Arduino standard libraries |
| 15 | |
| 16 | ## News |
| 17 | |
| 18 | See the releases' descriptions on |
| 19 | [the library's release page](http://github.com/nRF24/RF24/releases) for a list of |
| 20 | changes. |
| 21 | |
| 22 | > [!IMPORTANT] |
| 23 | > There's going to be major changes in v2.0. |
| 24 | > As of v1.5, there is [newer API](migration.md) that should be used instead of |
| 25 | > the @ref deprecated "deprecated API". |
| 26 | > |
| 27 | > See our [migration guide](migration.md) to understand what you should update in your code. |
| 28 | |
| 29 | ## Useful References |
| 30 | |
| 31 | - [RF24 Class Documentation](classRF24.html) |
| 32 | - [Support & Configuration](pages.html) |
| 33 | - [Source Code](https://github.com/nRF24/RF24/) |
| 34 | - [Datasheets](https://github.com/nRF24/RF24/tree/master/datasheets) |
| 35 | |
| 36 | ### Additional Information and Add-ons |
| 37 | |
| 38 | - [RF24Network](http://nRF24.github.io/RF24Network): OSI Network Layer for multi-device communication. Create a home sensor network. |
| 39 | - [RF24Mesh](http://nRF24.github.io/RF24Mesh): Dynamic Mesh Layer for RF24Network |
| 40 | - [RF24Ethernet](http://nRF24.github.io/RF24Ethernet): TCP/IP Radio Mesh Networking (shares Arduino Ethernet API) |
| 41 | - [RF24Audio](http://nRF24.github.io/RF24Audio): Realtime Wireless Audio streaming |
| 42 | - [nrf_to_nrf](https://github.com/TMRh20/nrf_to_nrf): OSI Layer 2 radio driver for NRF52x radios. Replaces RF24 layer for new radio devices. |
| 43 | - [RF24G](https://hobietime.github.io/RF24G/html/): Create a true mesh of up to 7 nrf24l01 and/or nrf52x devices |
| 44 | - [TMRh20 Blog: RF24 Optimization Overview](http://tmrh20.blogspot.com/2014/03/high-speed-data-transfers-and-wireless.html) |
| 45 | - [TMRh20: RPi/Linux with RF24Gateway](http://tmrh20.blogspot.com/2016/08/raspberry-pilinux-with-nrf24l01.html) |
| 46 | - [All TMRh20 Documentation Main Page](http://tmrh20.github.io/) |
| 47 | |
| 48 | ### More Information |
| 49 | |
| 50 | - [Project Blog: TMRh20.blogspot.com](http://TMRh20.blogspot.com) |
| 51 | - [Maniacal Bits Blog](http://maniacalbits.blogspot.ca/) |
| 52 | - [Original Maniacbug RF24Network Blog Post](https://maniacbug.wordpress.com/2012/03/30/rf24network/) |
| 53 | - [ManiacBug on GitHub](https://github.com/maniacbug/RF24) (Original Library Author) |
| 54 | - [MySensors.org](http://www.mysensors.org/) (User friendly sensor networks/IoT) |
| 55 | |
| 56 | ## Platform Support Pages |
| 57 | |
| 58 | - [Arduino](arduino.md) (Uno, Nano, Mega, Due, Galileo, etc) |
| 59 | - [ATTiny](attiny.md) |
| 60 | - [Pico SDK support](pico_sdk.md) |
| 61 | - [Linux Installation](linux_install.md) (or the alternative [instructions using CMake](using_cmake.md)), |
| 62 | ([Linux/RPi General](rpi_general.md), [MRAA](mraa.md) supported boards (Galileo, Edison, etc), LittleWire) |
| 63 | - [Cross-compilation](cross_compile.md) for linux devices |
| 64 | - [Python wrapper](python_wrapper.md) available for Linux devices |
| 65 | |
| 66 | ### General µC Pin layout |
| 67 | |
| 68 | @see also the individual board [support pages](pages.html) for more info |
| 69 | |
| 70 | Observe |
| 71 | |
| 72 |  |
| 73 | |
| 74 | The table below shows how to connect the the pins of the NRF24L01(+) to different boards. |
| 75 | CE and CSN are configurable. |
| 76 | |
| 77 | | PIN | NRF24L01 | Arduino UNO | ATtiny25/45/85 [0] | ATtiny44/84 [1] | LittleWire [2] | RPI | RPi -P1 Connector | |
| 78 | | --- | -------- | ----------- | ------------------ | --------------- | ----------------------- | ---------- | ----------------- | |
| 79 | | 1 | GND | GND | pin 4 | pin 14 | GND | rpi-gnd | (25) | |
| 80 | | 2 | VCC | 3.3V | pin 8 | pin 1 | regulator 3.3V required | rpi-3v3 | (17) | |
| 81 | | 3 | CE | digIO 7 | pin 2 | pin 12 | pin to 3.3V | rpi-gpio22 | (15) | |
| 82 | | 4 | CSN | digIO 8 | pin 3 | pin 11 | RESET | rpi-gpio8 | (24) | |
| 83 | | 5 | SCK | digIO 13 | pin 7 | pin 9 | SCK | rpi-sclk | (23) | |
| 84 | | 6 | MOSI | digIO 11 | pin 6 | pin 7 | MOSI | rpi-mosi | (19) | |
| 85 | | 7 | MISO | digIO 12 | pin 5 | pin 8 | MISO | rpi-miso | (21) | |
| 86 | | 8 | IRQ | - | - | - | - | - | - | |
| 87 | |
| 88 | - [0] https://learn.sparkfun.com/tutorials/tiny-avr-programmer-hookup-guide/attiny85-use-hints |
| 89 | - [1] http://highlowtech.org/?p=1695 The ATTiny2313 is unsupported due to lack of sufficient memory resources. |
| 90 | - [2] http://littlewire.github.io/ |