Quite a lot has happened in the community in the latest month so we though we would dedicate this Monday post to you :-).

On the firmware side, the loco positioning system has sparked a lot of contribution. Most prominently is the Extended Kalman Filter by Mike Hammer and later improvement by multiple contributors. The Crazyflie is getting more stable and capable week after week which is awesome. Wolfgang from USC has also pushed enhancement coming from its CrazySwarm which will one day gives to everyone the capability to fly big Crazyflie swarm more easily.

On the clients side, we just pushed a new version of the iOS app to the app-store. The main improvement is the new tilt control mode implemented by EMart002 and beta-tested by a community member.

There has also been a new release of the Android client by Fred. This new version adds support for log and param using the Crazyradio. This way it is possible to get telemetry from the Crazyflie like the battery voltage and there is an experimental implementation of altitude-hold when using gamepad.

Running a beta (test-flight) version for the iOS client has been a good experience as it allowed to get direct feedback on functionalities. If there is interest we could release and announce beta versions for both Android and iOS in the future.

Finally last but not the least, there will be a new Crazyflie client in town: The Crazyserver created by Mike Hamer and written in go. It is a cross-platform, install-less, dependency-less server for a fleet of Crazyflies. It exposes a language-independent API, an HTTP rest API, to be able to connect and control any number of Crazyflie from any programming language. It will also include sockets (UDP, TCP and Websockets) to carry real-time data like setpoint and telemetry. It is still very much work in progress and not ready for real-world usage but if you are curious and/or would like to help check the code is on github.


For the third year we will be at FOSDEM on Saturday 4 and Sunday 5 February 2017 in Brussels. The last two years we have been present and Fred, the Android client maintainer, has had a lightning talk about the Crazyflie.

This year Fred will present a lightning talk about “News from the Crazyflie universe” and Arnaud will have a talk about the Loco Positioning System in the embedded dev-room. The LPS talk will contain a demo of one or more autonomous Crazyflies.

If you are planing at being at FOSDEM and want to meet with us just tell us in the comment, we would be really happy to meet Crazyflie users. There will be almost all of the Bitcraze team and we will have Crazyflie and a Loco Positioning System so it might even be possible to do some flight or demo on the side.

Why change the old logo?

During the year it have become apparent that a new company logo was needed. The reason for this has been that the we didn’t really have a unified agreement over exactly what logo to use. Different versions of the old logo or just the company name appears here and there which in the end becomes very fragmented to say the least. So instead of just deciding on what version to use we took the opportunity to start fresh and create a new Bitcraze logo.


What is a logo?

Even though a logo can come in all colors and shapes or maybe just being a font or the company initials, it is important to understand that it is only one part of the company brand puzzle. The logo isn’t made to increase sales, win design awards or to get more customers, it is solely an identifier. Of course a nice side-effect could be increased sales but the purpose when creating a new logo should be to reflect the brand not to increase business. In stating that a logo is just an identifier doesn’t mean that it is unimportant or pointless to put any thought into the design process, on the contrary the branding of a company together with things like having clear company values are part of the core communication with the outside world. 


What to consider

Creating a logo is a tricky task, the alternatives are literally infinite and the final decision of the new logo had to be something everybody in the team agrees and fell comfortable with. There is some basic consideration however that has been part of the discussion from the initial meeting. During the research phase I learned a few ground rules, I’m not sure they tell the whole story and there is certainly more considerations and angles to what makes a good logo, but I think in general they have worked as good guidance along the way. To illustrate these guidelines better I have used some examples from different more or less famous companies:



Keeping it simple has been a key aspect in the process of creating a new logo. Above is a great example of how to use a simple shape in combination with a distinct color and a specific typeface to create a logo.


Not just a cool shape but has meaning:


Besides a very clever way to incorporate a symbol in the company name the shape of an arrow (between the “E” and the “x”) also tells something about the company, that FedEx is on the “move”.


Works everywhere:

Phones, tablets, smartwatches or t-shirts it doesn’t matter the logo should be made so that it works anywhere. This often means that the logo can’t have to many details or be to complex.



If you are looking at creating a logo that last over time, it is important to design something that is independent of trends or a specific event. It all comes down to the context of why you are making the logo.


Not cliché

Just because you are selling coffee doesn’t mean that your logo should be a coffee cup, look at Starbucks they have a mermaid/siren as a logo. Using something that isn’t obvious can create interest and recognizability since it stands out among others.



There is two ways for a logo to be memorable, it can either be very simple and easy to remember or it can be engaging by making an impression of some sort.


One strong feature

Sticking to one strong feature keeps a logo clear and distinct. This has been a very important guideline during the process of making a new logo for Bitcraze, only keeping to one idea. 


The design process

The design process have consisted of recurring workshops and iterations where different alternatives and suggestions have been weighed against each other. A great design tool during this time has been Mood boards, visually illustrating an idea using collages is a very effective way to explain the background or inspiration to a design concept. Without going to much into detail about the whole process here is the Mood board that later evolved into the final design.





Final design

So here it is the new logo :-).

The inspiration, as you can see comes from the vias on a PCB. The core concept here is the love for development and being a hardware company making bleeding edge technology. An obvious choice would have been making something connected to flying and drones but since Bitcraze is more then just a drone company we chose another path.

We did however keep “Quantico”, the techy looking font that we have been using as it creates a nice contrast to the new logo. We have also been discussing different ideas of how to incorporate the logo onto our PCB:s, it would be kind of cool to have an actual via going through the logo right :-)?

It feels super exciting and a bit relieving that we managed to boil it down to a final design that we really like, and we hope that our community will like it as well.

So please write a comment and tell us what you think!




So you have opened your Christmas present and found your long wished-for Crazyflie. Congratulations! Or maybe you have had your Crazyflie for a while and want to play with it during the holidays? In this blog post we will give you some pointers on where to find information and inspiration.


Getting started

You can find all our getting started guides in the “Tutorials” menu on Take a look at “Getting started with the Crazyflie 2.0” to see how to assemble the kit and take off for your first flight. If you have an expansion deck you will also find a guide for how to install it.


When you are comfortable flying the Crazyflie you might feel that it is time for the next step, to make use of the flexibility of the platform. After all it is designed to be modified!

Check out the “Getting started with development” tutorial to set up your development environment, build your first custom firmware and download it to the copter.

Maybe you want to add a sensor or some other hardware? Heat up your soldering iron and dive in to it! Find more information about the expansion bus on the wiki. The wiki is the place to look for all product and project documentation.

All source code is hosted on and this is also where you will find documentation related to each repository. 


Looking for inspiration for a project? Take a look at or read our blog postsThe video gallery contains some really cool stuff as well as our You Tube channel.


Open source is about sharing, creating something awesome together and contribute to the greater good! Whenever you do something that you think someone else could benefit from, please contribute it! If you were curious or confused about something, someone else probably will too. Help them by sharing your thoughts, insights and discoveries.

Why not

Need help?

Can not find the solution to a problem? Don’t understand how or what to do? Have you read all documentation and are still confused? Don’t worry, head over to the forum and check if someone else had the same problem. If not, ask a new question on the forum and get help from the community.

Happy hacking!

This year we decided to do a short Merry Christmas video. The video was done during one chaotic evening last week were both time and technology seemed to be against us. We are anyway happy with the result which we hope will spread some Christmas joy!

PS. All flights, except the first take-off, where autonomous using the loco positioning system. Code and documentation to come later ;-). DS

Merry Christmas from all of Bitcraze!

At FOSDEM 2016 we met someone from Bosch Sensortec, he was very interested by the Crazyflie and got one. Apparently his college liked the Crazyflie too because soon later we where contacted by Bosch that wanted to make a deck for the Crazyflie containing a brunch of there sensor. We have been tweeting about this board before and now we just pushed the drivers for some of the sensors into the Crazyflie main branch.

The deck has an impressive list of sensor onboard:

  • BMI055: 6 Axis gyro and accelerometer, with closed loop technology gyroscope
  • BMI160: 6 Axis gyro and accelerometer
  • BMM150: 3 Axis magnetometer
  • BMP285: Pressure sensor
  • BME680: Environmental sensor (air, pressure, humidity, temperature).

Thats a lot of data, and there is also an non-populated footprint for a BMF055 which is a BMI055 and an Atmel ARM Cortex-M0 in the same package, this is something that could be very interesting to play with in the future. The drivers and the integration are still in early stage but what has been pushed so far is support for the BMI055 and BMI160. We look forward to tuning those sensors and testing the others as well!

Bosch has made most of the work with this deck them selves and we have provided mainly guidance and support, a big benefit of open source! That has been working great and it has been very fun working with them. We are not sure if this is going to be part of a product yet, as in releasing a deck full of sensors. Please tell us what you think and if anyone would have use for such deck.

Most of the time we have a few prototypes lying around that we’re working more or less on. Sometimes some of these make it into a product if we feel that they might be useful or fun for the community, like for instance the SD-card. Now it’s time for another prototype to be moved to manufacturing, a deck with VL53L0x laser ToF distance sensor.

On the Crazyflie 2.0 (and Crazyflie 1.0 10-DOF) we have a pressure sensor mounted to help control the altitude of the platform. Since air pressure is moving around a lot and the measurement is noisy it’s been very hard to get a rock-solid altitude hold working (although it’s getting closer). Already back when ST released the VL6180X we were looking at it, but the range was too short (10cm max). So when ST released the VL53L0x which has longer range (200cm max) we though this might be a good deck for the Crazyflie 2.0.

So we have a working prototype and thanks to stephanbro and Marcus Grieff we also have the firmware to use it with the Kalman filter. We are currently working at making it work together with the pressure sensor with the current altitude-hold mode.

Currently we’re working on verifying the hardware to make sure the power supply is good enough for it, but then the next step is production. Hopefully it will be available in a couple of months 🙂 Below is a picture of the current prototype.


Last week we reached a milestone for our Loco Positioning System: we got 5 Crazyflie 2.0 to fly in a swarm with Time Difference of Arrival measurements. This is a great step closer to making the LPS leave the early-access state.

Until now, positioning has been done using a method called Two Way Ranging (TWR). The advantage of TWR ranging is that it allows us to easily get ranges to the anchors by actively pinging them in sequence. Based on these ranges we can then calculate the current Crazyflie position and control the Crazyflie to move to a wanted position. The big drawback though is that since each Crazyflie has to actively transmit packets to ping anchors, flying many Crazyflie means sharing the air and so the more we want to fly the less ranging each Crazyflie can do. In other words: it does not scale.

TDoA measurement consist of measuring the difference of flight time between packets coming from different anchors and this is harder to achieve since the anchor clocks must be synchronized to each other. The killer feature of TDoA is that it can be implemented using unidirectional packet sent from the anchor system and received by the tag/Crazyflie. It means that as soon as you get one Crazyflie flying with TDoA, you can get as many as you want since the Crazyflies do not have to transmit anything.

This is what happened last week: on Thursday evening we got 1 Crazyflie to fly with TDoA measurements. On Friday we tried 3 and then 5 without much effort. It was just matter of modifying the ROS launchfile to connect more crazyflies, a copy-paste operation.


There still seems to be a margin for progression to get even more stable flight with TDoA and we are also working on making the LPS and Swarm work with our Python client which will make it easier to use outside a robotic lab.

If you want to try the (very experimental!) TDoA mode with your loco positioning system we have documented how to get it to work on the wiki.

Thanks a lot to the growing community that is supporting us and allow us to move faster towards a Crazyflie swarm.

Last week was interrupted, disrupted and generally chopped up as a few of us had to stay home fighting germs and viruses. Today all of us were present again and hopefully we will all be well this week to participate in the fun. Even though last week will not make it to the hall of fame when it comes to productivity we still made some progress.

TDoA mode of the Loco Positioning system

We are happy to announce that we have calculated the first TDoA (Time Difference of Arrival) based position in the Crazyflie. This might not sound very spectacular but it is one step closer to being able to position an infinite (in theory) number of Crazyflies simultaneously. We used test driven development (TDD) to implement the functionality and we think it helped us to manage the complexity and write better code. We have written a few unit tests earlier, but this is our first serious attempt at test driven pair programming. We have based the unit tests on Unity and mocking on CMock from Throw The Switch.  The result of our efforts can be seen in lpsTdoaTag.c and TestLpsTdoaTag.c.

New Logo

We have used a few different variations of logos up to now, the historical logo was good for electronic boards (PCBs) but hard to make look good in other contexts like the webpage and so we ended up in a situation where we do not have a consistent logo for everything. We have decided that we probably should try to find one that we all like and want to use everywhere. Björn has made a bunch of different designs that we all have discussed together and after a few iterations we are converging towards something really good. We will not show any previews, just stay tuned to see the final result.


The logo currently used on Bitcraze PCBs

Marcus Greiff

We want to welcome Marcus to the team, he will work with algorithms one day a week. Marcus is currently studying at LTH where he has been using the Crazyflie 2.0 platform in his studies.

SD-card expansion deck in production

Production materials for the SD-card expansion deck has been sent to the factory. Hopefully it will be available in the shop in a few weeks time.

We attended Øredev last week and showed off our demo with an autonomous Crazyflie with a light and sound show. It was the same demo as we had in Maker Faire Berlin earlier this autumn that we wrote about last week. It is noticeable how much better the system has become since Maker Faire Berlin when it comes to performance, the Crazyflie is almost completely static when hovering in one spot now and the motions are much more snappy and exact. Hats off to the community that contributed the improvements!


At Øredev we met Ray Arkaei, the DJ that played at the party in the evening. When he realized that we used MIDI to control the position of the Crazyflie and the color of the LED-ring, he immediately offered to create his own sequence to a bit more contemporary music. This is what we love with events like Øredev, we meet people and exciting (and unexpected) events take place! He plugged in his machines and we set the goal of making a short sequence, film it and upload it to facebook. After just 10-20 minutes of experimenting (and recap from our side of how we had implemented the demo) Ray got going and soon he had had a pretty cool sequence going!


We shot this video with a phone


Ray Arkaei
Arkaei shot the sequence with his 4K camera (yes, we would love to have one too!) but unfortunately did not have time finish the editing. We are eagerly awaiting the final results and will publish a link here on the blog when it is live!

Thanks to Ray and Øredev for a memorable day!