library to drive the Nordic NRF24LU1+ from usb - linux only so far
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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:

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.

Matching Firmware

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.

sudo make install

If you need to clean up and recompile, you can return to the vanilla github repo state by


Test Programs

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:

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:

./src/tx-test/tx-test 0


./src/rx-test/rx-test 1 


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.