This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
doc:crazyradio:usb:index [2012-03-28 20:44] arnaud created |
doc:crazyradio:usb:index [2012-05-10 22:37] arnaud |
||
---|---|---|---|
Line 3: | Line 3: | ||
The Crazyradio dongle is based on a Nordic semiconductor nRF24LU1 chip. The radio communication is done using the Nordic " | The Crazyradio dongle is based on a Nordic semiconductor nRF24LU1 chip. The radio communication is done using the Nordic " | ||
- | 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. | + | This page document the protocol used in the version 0.40 of the Crazyradio dongle. Future version (up to 1.0) will be kept compatible. |
===== USB protocol ===== | ===== USB protocol ===== | ||
- | The USB devices have the VID/PID couple 0x1915/ | + | The USB devices have the VID/PID couple 0x1915/ |
| EP0 | Control | Control endpoint. Used to configure the dongle | | | EP0 | Control | Control endpoint. Used to configure the dongle | | ||
- | | EP1 | Bulk | Data endpoint. Used to send and receive radio packets | | + | | EP1IN/ |
==== Dongle configuration ==== | ==== Dongle configuration ==== | ||
+ | Crazyradio vendor requests: | ||
+ | |||
+ | ^ bmRequestType ^ bRequest | ||
+ | | 0x40 | SET_RADIO_CHANNEL (0x01) | channel | ||
+ | | 0x40 | SET_RADIO_ADDRESS (0x02) | Zero | Zero | 5 | Address | | ||
+ | | 0x40 | SET_DATA_RATE (0x03) | ||
+ | | 0x40 | SET_RADIO_POWER (0x04) | ||
+ | | 0x40 | SET_RADIO_ARD (0x05) | ||
+ | | 0x40 | SET_RADIO_ARC (0x06) | ||
+ | | 0x40 | SET_CONT_CARRIER (0x20) | ||
+ | | 0x40 | LAUNCH_BOOTLOADER (0xFF) | Zero | Zero | Zero | None | | ||
+ | |||
+ | |||
+ | |||
+ | Possible values for the datarate: | ||
+ | ^ Value ^ Radio datarate ^ | ||
+ | | 0 | 250Kbps | ||
+ | | 1 | 1MBps | | ||
+ | | 2 | 2Mbps (Default)| | ||
==== Data transfer ==== | ==== Data transfer ==== | ||
- | ===== Radio protocol ===== | + | 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. | ||
+ | |||
+ | < | ||
+ | | ||
+ | < | ||
+ | +-------------------------+ | ||
+ | To EP1_OUT: | ||
+ | +-------------------------+ | ||
+ | 1..32 Bytes | ||
+ | 1Byte < | ||
+ | +-----+----------------------+ | ||
+ | From EP1_IN: | ||
+ | +-----+----------------------+ | ||
+ | </ | ||
+ | |||
+ | This protocol permits to transfer about 500 packets per seconds. | ||
+ | ===== Radio protocol ===== | ||