Blog

This week and the next we will be visiting Seeedstudio for the first time so tonight we have been finalizing the travel plans! That might sound easy but it’s been a bit like solving a puzzle since we have to take vacation from our day jobs to go, and each one of us has slightly different vacations.

The purpose of the visit is to get a chance to finally meet everyone that we have been talking/mailing with during the last 18 months and also helping out during the final testing stage. And of course it will be really great to visit Shenzhen and fill our luggage with electronics for our trip back :-)

As for the production it’s still progressing according to schedule, we will post actual photos of the boards as soon as we see them :-D.

Map Copenhagen airport to Seeedstudio

Even though controlling the  Crazyflie with a PC is quite unique and permits a lot interesting things to be done, like controlling Crazyflie with a webcam or getting realtime telemetry, we have also been looking at controlling it with a, pc-free, standalone controller.

Current (unfinished) implementation of a standalone controller are using Crazyradio as a PPM to CRTP converter, a very experimental Android app, and using a raspberry pie as ground station. This week we finally managed to fly Crazyflie with an E-Sky transmitter:

Crazyflie standalone controllers

The transmitter is using a nordic-semiconductor chip compatible with our radio. The protocol is also well documented by dvdouden et al. It is using a power amplifier and uses a channel hopping scheme which makes the radio link quite secure.

Code to support this has been in the repo for a couple of week but a problem was that, by default, this transmitter was mixing pitch, roll and thrust channels which made the control of our Crazyflie nearly impossible (pitch and roll was changing by increasing the thrust ….). This week-end, we discovered two switches in the battery compartment, with which you can disable the mixing, and by doing that suddenly the Crazyflie is flying! There are still some work left to make RC transmitters works as good as a gamepad but the current source code is good enough to fly. Overall we have observed that a gamepad is really ideal to fly the Crazyflie in a fast and dynamic way. By comparison RC transmitter benefit by having more precision, mostly for the altitude control, but we are not used to it and it does not feel that ‘fast’ (our opinion).

As for the pre-order production, it is still going forward as planed. Testing of the first production samples  are finalized and now all the PCBs has been manufactured. The expected time of shipping is still according to the Seeedstudio Crazyflie product page.

We just received the first 10 sample boards from the production at Seeedstudio :-D

DSC_0210e

So far we got time to test only two boards and they are working. We have finalized the firmware, bootloader and production scripts so now it has really started :-)

Nothing new exiting about the production, it is still going as planned :-). Meanwhile we are focusing on stabilizing the Crazyflie firmware and its side projects.

This weekend we fixed a bug related to the memory allocation, which we have had a while now and that we never had time to track down. It kind of forced us to use heavier machinery so we decided to setup eclipse for debugging FreeRTOS threads and it happened to be very useful.

Since version 0.5 OpenOCD contains a rtos-awarness mode for FreeRTOS and, when painfully configured in eclipse, this allows us to observe the stack trace and the running state of all the tasks running on Crazyflie:

eclipse-threads

This helped us to track-down the bug much quicker and will greatly help us in the future. We also found a eclipse plugin, embsysregview, that enables one to show and analyse the peripheral register values, great little plugin!

The virtual machine will be updated with the debug environment and we will try to update the Wiki with the setup procedure.

The community interest for FPV flight made us buy a light weight analog FPV kits a while a go. We bought the 5.8GHz micro combo set from fpvhobby to do a first test. It took a little while to solder things together but it wasn’t that bad. We soldered the camera and the transmitter power to the VCOM voltage on the Crazyflie which is available on the expansion port. Then we taped the camera and transmitter to the Crazyflie and did a test flight.  The FPV kit is only about 3 grams which doesn’t affect the flight performances that much.

It was almost too easy, but as soon as we took off we noticed some vertical lines on the TV so maybe it wasn’t that easy. There seems to be some electrical interference, probably from the motors. Also the battery voltage drop generated by fast accelerations cuts the video feed after a couple of minutes of flight. We still think that there are some improvements to be done so hopefully it will work better in the future.

As for the production, so far it is still going forward as planned.

Finally an Alpha version of the virtual machine has been posted on the forum, you are welcome to test and report any problem/suggestion you may have :-).

As announced on the last Monday post and as well discussed on the forum, one of the things we are working on right now is to create a virtual machine (VM) that would greatly reduce the haste of getting the running/development environment up and running. The VM will be a Linux system that can run on Windows, Linux or Mac and that will be pre-configured to work with Crazyradio and Crazyflie. We are going to post the first alpha of this virtual machine during the week using Bittorrent so if you are interested to test it stay tuned to the forum!

As for the production of the Crazyflie’s things are running according to schedule, so far so good!

Also from the VM discussion we discovered that Mike has done a great job getting the Crazyflie client to work on Mac OSX. This is going to greatly help supporting Crazyflie on OSX.

Like we wrote last week we are busy with a lot of administrative stuff (box design, component sourcing, answering emails etc). But we managed to do a few commits to the crazyflie-pc-client during the week. We have also started preparing a virtual machine appliance that contains everything needed for development and flying. The idea is to make it easier for anyone that doesn’t want to bother about the pre-requisites. If you download Virtual Box or VMware Player, import the virtual machine appliance and pass the Crazyradio/USB game-controller into the virtual machine then you are ready to fly and do development.

If you missed the pre-order, don’t worry. The Crazyflie Nano Quadcopter Kit will be back in stock shortly after the last pre-orders has shipped. But we plan to split the special pre-order bundles so they will become three separate products: Crazyflie Nano Quadcopter Kit (6- and 10-DOF), Crazyradio USB dongle and the 2.4 GHz antenna.

So after three very busy weeks the pre-order will close today. We are really overwhelmed by the attention that the project hs gotten and number of Crazyflie kits that we have sold. We are also very excited about already getting feedback in the forum and by mail about new mods and features. If you have technical questions or suggestions post them over in the forum so we can answer them there and everyone can see the responses.

Currently we are finalizing the sourcing and test-plans for the production which will start very soon. We are also (as always) working on updating the wiki and answering questions in the forum. We added two new pages to the wiki: One about the Crazyflie Pyhthon API and one about how to contribute to our projects.

The upcoming weeks we will be busy with a lot of administrative stuff so don’t be worried if you don’t see any commits in the repos or new hacks, we haven’t stopped the development :-)

Hi, Monday again. We just passed the two most exiting weeks in Bitcraze history. As we speak we are passing the 1K Crazyflie sold which is about 5 times over our optimistic estimations. Now the pressure is on, and there is still one week of pre-order left :-).

We are continuing to update the documentation, working on Crazyflie firmware, the PC gui client and as well all emails/administrative work that takes a surprising amount of time :-). Due to popular interest the focus has been on getting the client to work on Mac OSX and getting Crazyflie to work in a standalone mode (ie. no PC) with an E-sky R/C transmitter which is compatible with our radio chip. The transmitter is almost working (still some mapping issues to work out) and the OSX proof-of-concept is on the way to work (it should work out of the box if all the python libs where 64bits).

We should probably clarify that the PS3 controller we use to control the Crazyflie is just one possible input method. Actually any input device could be used which could be translated into roll, pitch, yaw and thrust. The GUI also simplifies it as there is a configuration dialog and soon we might have our first contribution which is for the xbox controller :-)

We are continually updating the wiki and are starting to get some activity on the forum. It is the right place to go if you have questions or want to discuss about the Crazyflie.

Thanks again for supporting us, one more crazy pre-order week to go!

So finally it’s Monday again :-) As you might have noticed the Crazyflie got released for pre-release last week! All our code has now been pushed onto Bitbucket and our repositories can be found here. Since we did some restructuring of the code before pushing there might be some bugs that we are currently hunting. The Crazyflie is mainly a development platform where you can either add new features/hacks or improve the current features. We added a feature wishlist to the Wiki for features that we never had the time to implement and also to add new features that you suggest. So if you feel like getting you hands dirty there’s still lots of stuff to do! In order to make development easier we have:

  • Wireless Radio Bootloader: This will enable you to easily update the firmware in the Crazyflie. The bootloader cannot easily be erased without using  a JTAG so don’t worry about bricking your Crazyflie when testing new firmware
  • Crazyradio USB bootloader: The Crazyradio contains a USB bootloader for easy update of the firmware
  • Well documented: We are currently doing our best to update the documentation on the Wiki and our goal is to create a well documented platform
  • Parameter setting/getting: This is detailed a bit more here but in short it’s a framework where you can easily add parameters/variables that can be set or fetched from the client. The tab in the client where you can change PID controller parameters on the fly is implemented using the parameter framework.
  • Variable logging: This is also detailed a bit more here but in short it’s a framework where you can easily log variable values to the client. You select variables that you want to log and the rate you want to get them and the Crazyflie will automatically send you updates for these variables. The attitude indicator and roll/pitch/yaw values on the FlightTab are implemented using the logging framework.

In the upcoming week we are planning on posting a video showing some of these features.