Category: Electronic

To communicate with the Crazyflie we are using a custom radio protocol with almost-baseband 2.4GHz radio chips: the nRF24 family from Nordic semiconductor. This kind of radio chip is easy to cable, easy to use and require a very minimal software stack. Wifi or bluetooth would have required a lot more electronic and software so we chose to not use them for the Crazyflie. We however made sure to keep the possibility to add other radio on an expansion board (ie. both UART and SPI are available on the expansion connector).

One things with using a custom radio is that we have to make a computer interface in order to be able to communicate with the copter. We called it the Crazyradio dongle:


This radio dongle is built around a nRF24LU1p chip which contains, among other things, the radio transceiver, a 8051 microcontroller and an USB device peripheral. We wrote the firmware running in the nRF24LU1 from scratch and it is compiled with the SDCC compiler. This firmware source code is going to be open like the rest of the copter code.

The radio is bidirectional which permits to send command and receive telemetry from the copter. The bandwidth is not great but has been enough to debug the regulation. On the computer side we are using python and pyUsb to interface the radio dongle.

We have added a 10 pins connector that can be used to program the dongle for development purposes (the dongle can also be updated via USB) or to power the electronic and provide signals input/output. We designed the dongle in such a way that it is going to be possible to power it with up to 15V and to input a PPM signal. This will permit to use this radio dongle with a RC remote control (ie. to control the copter without the need of a PC).


It is now Monday evening which is now our official meeting day within the Crazyflie team. From now on we intend to post a progress update every Monday evening here at the Bitcraze blog. First of we can tell you that we have, since two weeks, received our second round of prototypes. For the second round of prototypes we did some small fixes and improvements which unfortunately did not all work.

  • We fixed an issue with the standby current which was 150uA, due to a misplaced diode, but was supposed to be below 10uA according to our design.
  • We moved the battery measurement point to the actual battery instead of behind the system off switch so we can measure the battery when it is charging as well. Unfortunately a design mistake made the standby current go up to 250uA instead. Fixed one issue just to introduced another one…
  • We have discovered a problem with the MAX16054  ON/OFF switch we use to turn the system on and off. If the battery voltage is above 3.5V it refuses to turn on but if it is below it works as expected. We sent a support message to Maxim and hope it can be solved fast. This circuit worked on our first prototypes and it seems to be due to the now removed diode we spoke about in the first bulletin…

Other then that we are getting close to a pretty well working flying PCB.

We have tested a couple of LiPo batteries in different sizes from Fullriver. We decided to go for the 170mAh 25C battery which gives us about 7min of flight time but doesn’t add to much weight.

We have tested a lot of different pager motors in mainly the sizes 6×14 and 6×15 mm. Many of them are not the best quality but we found a good one, 2.5ohm, 6x15mm motor which is of good quality and high performance.

What is left now is the motor mountings which has turned out to be a time consuming task for us since none of us has any direct mechanical/plastic experience. We also have loads of other tasks but let’s take it one step at a time.

There is a short video of the new prototype flying that somebody took when we visited Techfest if you want to have a look.

/The Crazyflie team