Crazyradio: past, present and future

The past

The Crazyradio has been designed as a radio dongle to control the original Crazyflie 1. It is based on a Nordic Semiconductor nRF24LU1. It is basically the radio from Crazyflie 1, the nRF24L01, with a microcontroller and a USB device peripheral. Crazyradio has been designed from the beginning to be extended for other used: the code is completely open-source, can be powered with 12V and has an expansion port with possibility of implementing a serial port to communicate with the radio.

When we designed Crazyflie 2.0, we extended Crazyradio to make Crazyradio PA. It is basically the same hardware but we just added a power amplifier to make sure Crazyradio is transmitting with the same power as competing radio in the same 2.4GHz band: Wifi and Bluetooth. Crazyflie 2.0 is not using an nRF24 chip anymore but an nRF51822 which integrates a microcontroller and implements bluetooth low energy as well as nRF24 compatible radio.


The present

The Crazyradio (PA) has been used for a couple of hack like our glove controller. Another popular use has been by security researcher to experiment with the security of wireless mouse and keyboard. Indeed the nRF24 serie of chip is extensively used in wireless mouse, keyboard and even quadcopters ;).

We are often very quiet about the Crazyradio since ‘it just works’. It does not means that it is finished or perfect, there is actually a lot that was planned to make the radio link more efficient, to be able to control more Crazyflie per Crazyradio, etc… Some of this work has been done in the context of the Crazyswarm project by Wolfgang from USC but a lot more could be done. One of the main blockers for Crazyradio development is that it is based on a very old microcontroller, an 8051, and that it does not have a safe bootloader or (open) debugging access. It means that each modification is potentially a big commitment in time and since the radio already work quite well it is hard to put much time in it.

The absence of a safe bootloader means that if you flash a firmware that crashes, you will need an SPI programmer to recover the radio in working mode. This makes it quite stressful to work with the radio. However there are a couple of programmers made for this and we recently published a Hackster project about using a Raspberry Pi to recover the bootloader:

The future

We have been looking at making a Crazyradio with an nRF51-series chip, these chips have a Cortex-M0 CPU which means that they are much easier to program using a modern development environment. However none of the chip in the nRF51 series have USB which forced us to prototype the concept with an added microcontroller for USB. This creates a bigger and more populated Crazyradio:

We did not like this design very much since having 2 microcontrollers is always much more haste to program, debug and maintain. Thankfully Nordic semiconductor will release a nRF52 chip with USB support. Adding to that a powerful Cortex-M4 microcontroller, a lot of ram, still Bluetooth low energy and nRF24 radio compatibility but they also added iEEE802.15.4 2.4GHz (ie. the protocol used by Zigbee). This new chip is a very good candidate for the next Crazyradio.

We are very much in the pre-study phase for the next Crazyradio (and mass production for the new nRF52 is planned for Q4 2017 anyway…), so if there is functionality that you would like to see in a future Crazyradio it is time to speak up! Please tell us in the comment section bellow or in the forum ;-).

9 comments on “Crazyradio: past, present and future

  • This looks great! It would be great if the next version of the Crazyradio could plug into standard RC Txs. Could you add a PPM input connector, or, better yet, a full UART that could be used for PPM or other, more modern protocols and support telemetry back to the Tx?

    • It would be great if the next version had easy pin cap like the Crazyfly itself does. Plug different expansion boards directly into the top of it for different control events, like an RC Tx or 900mhz video feed.

      • Connecting to RC tx is a good idea and should be easily possible. Though video feed is much more complicated since it requires a very different class of usb chip.

    • Thanks a lot for the comments!

      UART and PPM should be fairly easy to implement. The current Crazyradio was actually designed to accept PPM signal to act as a transmitter for RC controllers. The new nRF chip have a very flexible pin-out routing so it would be no problem to have PPM RX and TX and to have serial port or other communication protocol on an expansion header. Is there any standard connection for RC gears you are aware off or is it enough to have all the signal on an easy-to-connect pin header?

      • A pin header is probably the easiest connection to work with. The only other consideration might be to support inverted serial. Some of the protocols use inverted serial. I think all the serial connections on the Taranis are inverted, for example. It’s simple enough to add an external inverter, but a configurable built-in inverter just requires an XOR and a GPIO.

  • Looking good! It would be awesome to see something that could support receiving video feed from an FPV transmitter.

    • Video feed is not going to happen easily for the Crazyradio. The radio we are interested into are bidirectional radio that have a bandwidth of maximum 2Mbit/seconds. This is not enough for any kind of useful FPV video.

      As far as I understand, currently for FPV we can use off-the-shelf digitizer dongles plus an analog receiver. Is what what you are interested in replacing with a single do-it-all dongle?

      • Thank you for your response!

        Yes, a do-it-all dongle for FPV would be great! Or just a receiver that was usb-powered, eliminating the need to have additional power supplies for it.

        • Yes that is one thing I was thinking about: Off-the-shelf digitizer are already readily available but providing a power supply for the receiver can be useful. This means that we need to plan for 5V and 3V3 power output on an expansion port.

          There might be a way one day to make a fully integrated radio+digitizer that can plug to an fpv receiver, but I do not think that will be the first step :-).

Leave a Reply

Your email address will not be published. Required fields are marked *