User Tools

Site Tools


doc:crazyradio:usb:index

This is an old revision of the document!


Usb and Radio protocol of the Crazyradio dongle

The Crazyradio dongle is based on a Nordic semiconductor nRF24LU1 chip. The radio communication is done using the Nordic “Enhanced ShockBurst™” packet protocol with acknoledge. Variable size packet, from 1 to 32 bytes, can be send and acknoledged by the copter. The acknoledgement packet can contains a payload from 0 to 32Bytes.

This page document the protocol used in the version 0.33 of the Crazyradio dongle. Future version (up to 1.0) will be kept compatible.

USB protocol

The USB devices have the VID/PID couple 0x1915/0x7777. Two bulk endpoint are configured:

EP0 Control Control endpoint. Used to configure the dongle
EP1 Bulk Data endpoint. Used to send and receive radio packets

Dongle configuration

The following vendor control messages are implemented in the radio dongle:

Control message Value Type Data
SET_RADIO_CHANNEL 0x01 SET One 8bit integer representing the radio channel to set from 0 to 125
SET_RADIO_ADDRESS 0x02 - Not implemented
SET_DATA_RATE 0x03 SET One 8bit integer setting the radio data-rate. See bellow for possible values
LAUNCH_BOOTLOADER 0xFF - Resets the dongle in nRF24LU1 bootloader mode. The dongle has to be disconnected and reconnected in order to restart in crazyradio mode

Possible values for the datarate:

Value Radio datarate
0 250Kbps
1 1MBps
2 2Mbps (Default)

Data transfer

The radio dongle is configured in PTX mode (in the Nordic terminology) which means that it sends packet to the copter and waits for the acknowledge. The acknowledge can contains a Payload which is the mean to get data from the copter.

The packet is to send is sent to the EP1 and the ack status is then received from the EP1. There are no buffering in the radio dongle, the ACK must be received by the PC before the next packet can be sent.

This protocol permits to transfer about 500 packets per seconds.

Radio protocol

doc/crazyradio/usb/index.1333350438.txt.gz · Last modified: 2015-07-15 16:30 (external edit)