This library allows USB-driven use of the Nordic Semi NRF24LU1+ chipset from linux user space. This work is heavily derived from the excellent work done by Ron Pedde's libcrazyradio.
This library is intended to continue to support the Crazyflie2 as well as to support other modes of radio operation. Other projects that we aim compatability with include:
- nRF24 Library
- NRF24 Sniffer
- Cheerson CX-10A Quadcopter
- Home Automation and IoT network sensor networks
The existing libcrazyradio is awesome, but I desired to extend it to support many modes of operation in addition to the Bitcraze model. There is also a strong desire to support other NRF24LU1+ devices in several modes of operation.
The only product I currently know of that uses this chip in this mode is the Bitcraze CrazyRadio PA.
The NRF24LU1+ natively supports USB and has an internal 8051-compatible core that makes it highly adaptable for many uses. The CrazyRadio firmware implements a specific profile that supports connection to the Crazyflie2 Quadcopter.
You should be able to use this with stock CrazyRadio PA firmware. However, I have been adding some commands to that firmware and it's possible you may need to flash your hardware with newer firmware. Please see my fork of the CrazyRadio firmware.
To build the library you need the standard GNU autotools/autoconf suite. Currently it is tested on linux only.
./autogen.sh ./configure make sudo make install
If you need to clean up and recompile, you can return to the vanilla github repo state by
There are two test programs: rx-test and tx-test. They should be built automatically with a make but not installed.
NOTE: additional test programs will be added soon, and these should be considered VOLATILE and SUBJECT TO LARGE CHANGES.
On the receiver side:
On the transmit side:
./src/rx-test/rx-test rx-test: version 0.1 Found device: Crazyradio PA USB Dongle Serial: 45BCC85B98 Firmware Version: 99.55 received 9 bytes of data: packet 0 received 9 bytes of data: packet 1 received 9 bytes of data: packet 2 received 9 bytes of data: packet 3 received 9 bytes of data: packet 4 received 9 bytes of data: packet 5
If you desire to run both devices from one linux system, you can append the radio number on the command line:
Bitcraze deserves huge kudos for releasing the CrazyRadio PA. Ron Pedde deserves all the credit for creating libcrazyradio from which this is derived.
This software retains the GPLv3 license from libcrazyradio.