Category: Frontpage

Some of you might have noticed that the website is getting a make-over which we are very happy about.  Me and Kristoffer have teamed-up and first and foremost replaced the old wordpress theme with an new bootstrap-based theme.  Choosing a new theme can be quite a hassle since there is literally a jungle of themes out there.

So we finally settled for a simple theme that was easily modifiable and decided to basically strip it and starting to create our own design. So while I’ve been doing wireframes for the next version of the website, Kristoffer have been turning bootstrap inside out and started to make the old content responsive.

We have also modified the architecture of the websites content and started to clean up all the different pages. When discussing the new website we have talked a lot about how to make the site more engaging and how to better meet our users’ needs, which have been super fun but is also a complex task. One of our ideas which we are in the middle of evolving is to create what we call “gates”. The gates will be pages based on different users needs and contain material and guidance we think the user will benefit from the most, as an example maybe one gate will be named “research” or something similar and be especially tailored for scientists and researchers. That’s it for now, if you want please leave a comment about what you think of the design so far, or if you have any ideas regarding the “gates”.

MondayPost

Information architecture-workshop  for the new website :-).

We have a dashboard (aka radiator) based on dashing in the office.

office2

The purpose of the dashboard is to drive the team focus and encourage us to work on the most important tasks at hand. For instance, we realized that we have been really bad at merging pull requests from the community (sorry about that!), and we wanted to improve. Our solution has been to add a widget to the dashboard that shows all pending pull requests, and now we have been handling pull requests much faster. Success! The visibility of data changed the behavior of the team.

Another problem that has emerged in the new office, is that the 3D printer is now in the basement. We used to have it in the office so monitoring the progress was easy, but now it is two flights of stairs away. We use a Raspberry Pi with the awesome OctoPrint as print server (through the OctoPi image) and since it supports integrated video, we installed a webcam over the printer and viola! Now we can see the progress in OctoPrint.

octoprint

Why not add it to the dashboard? Due to how our network is organised, the dashboard pulls in the data from the printer on client side as opposed to server side, but problem solved. The code is on github.

dashboard

46 minutes left on the 3D-print. No pull requests to handle!

A we wrote before, we are working on a Ultra-Wide-Band-based local positioning system for the Crazyflie. We are doing slow progress but progress anyway and we wanted to do a small update on it.

We are at our second revision on the anchors, they are now based on an STM32F072 CPU which has the advantage to have an USB bootloader which will useful to update them on the field. We are trying to think about either or not we should implement more communication like Ethernet to the anchor. Our main use-case is to get the localisation in the Crazyflie but we are aware of use-case where the localisation is required on the ground instead. If you have any input on the design of Ultra-Wide-Band anchors please let us know.

We have also made a 3D printed support for attaching the anchors to the ceiling or ground:

stand

As for the localisation, we are able to range from the copter to the anchors and we are logging the range using the Crazyflie 2.0 log subsystem. We have tested logging data in a csv file and running a Particle filter to find the copter position, more about the filter in a future post.  So far it looks good but we need a nicer way to visualize the data. The way we are taking is to learn and use ROS.

ROS is a system used by researcher in robotics and it implements a lot of things like visualization and state of the art algorithm. Wolfgang from USC has written a ROS driver for Crazyflie and it is about time we are getting into ROS. It is a learning process for us but the plan is to implement and test the UWB local positioning system on top of ROS, which will allow us to use its components and reduce development time.

Lately we have been busy finalizing new Decks. We have a pretty long list of what we want to release and the first four to come are the bigquad deck, the Buzzer deck, Wifi (ESP8266) deck and a GPS (GlobalTop) deck. Before going further a disclaimer: we have ordered final prototype of these decks so the probability we release them is pretty high, though it is still possible we end up hitting a big bug and then some might be delayed.

The bigquad  was covered in previous post. It is a very simple deck: only connectors. It can be used to connect brushless motors ESCs to the Crazyflie in order to control a bigger quad. We have also added connectors to control the Crazyflie from a standard receiver (SPPM input), for GPS, active buzzer, battery telemetry and I2C sensors. The main use case we see for this deck is to be able to develop with the Crazyflie and then go outside and fly with bigger sensors without having to port the code to another platform.

bigquaddeck

Firmware-wise we are developing support for ESCs and SPPM input.

The Buzzer deck is the second simplest: we have ‘just’ mounted a buzzer on a deck and made the driver for it. As usual with production nothing is easy and selecting the buzzer was surprisingly hard. We wanted a low profile buzzer to be able to put other decks on top of it. We have ordered 20-ish different buzzer from DigiKey and tested all of them to select the best:

BuzzerSelect_w

buzzerdeck

The Buzzer driver will be able to play some music as well other sounds. One use case we envision for the buzzer deck is to be able to find the Crazyflie if it has crashed out of sight.

The GPS deck is an old story: we started working on a GPS deck on the Summer 2014 and we even planed to release it at the same time as the Crazyflie 2.0. Unfortunately we had lots of problems with the antenna not working properly when attached to the Crazyflie. After a lot of experimentation, spread over 1 year, we finally endeded up with a design that works: an integrated GPS receiver and patch antenna:

gpsdeck

We found the patch antenna to be much less sensitive to the Crazyflie 2.0 ground plane than the previously tested chip-antenna. As for the software part we will implement enough code to decode the NMEA strings from the GPS and makes them available via the log subsystem. We have a prototype of a new GPS tab in the client using a webview and openstreetmap, more on that on a later post.

Finally we have mounted an ESP8266 wifi module on a deck and Crazyflie 2.0 becomes Wifi enabled :-):

wifideck

So far we are planning on loading the NodeMCU Lua firmware in the ESP8266 which will allow to easily develop wifi connectivity to the Crazyflie. Note that the final board will be based on a different ESP8266 module with chip-antenna.

We will post more in-depth information about those new decks in the following weeks. We will also communicate the release date as soon as we know it.

The last week has been really busy here at Bitcraze. We are working on regular bugfixes, support and new Decks to be release as soon as possible. But at the same time, we have moved our office in a new building (still in Malmö, Sweden) which is a lot of work, even more for us who have a lot of random hardware lying around. We left Minc, the incubator that hosted us since our beginning as full-time company. We where really happy at Minc, it has been a great place to work and evolve. We thought it was time to move to get closer to other hardware companies and to have a bit more space.

We are now at The Ground. It is a co-working space for startups that hosts some very cool companies. We are really happy to have moved there and are just started to settle-in. We now have a lab separated from the office (which is a first for Bitcraze, we are a bit anxious to be so far from the soldering iron but lets see how it works :-). The great news is that we are going to use the basement as an autonomous-flight-lab to develop the DWM-1000-based local positioning system. I am sure we will have more news on that in later posts.

Another important change: we now have a new member in our team! Björn, who arrived last week, will look, among other things, on refreshing the website and all our communication. The current website state is fully made by hardware engineer and we thought it should be shaped-up a bit.

Björn

Björn

Seeedstudio is our manufacturer and our main distributor. Last week Mandy from Seeedstudio came and visited us after being at Maker faire Rome. She did a very interesting talk at Minc, our incubator, about manufacturing in China and how Seeedstudio helps with agile manufacturing. The interest was high here in Malmo, it is not often someone from China comes to Sweden and talks about manufacturing. Usually you would have to travel to China to find out more about that.

If you would like to know more about what she talked about the slides are available on Slideshare:

 

Last week I was at Lua Workshop 2015 in Stockholm, it was a very interesting conference with lots of interesting people. I also had the opportunity to see the office of King, the host for the workshop, and it gives a lot of idea for fun stuff and toys we could have in our office :-)

On a side note we are organizing a presentation in our office in Malmö the 22nd of October: Mandy from Seeedstudio is visiting us and will talk about manufacturing in China. If you want to come you can register.

lua-logo-crazyflie

Now, back to Lua. Lua is a dynamic programming language that is small, fast and meant to be embedded within other programs. Currently is is used a lot in video games and a bit on servers. It has also be used in deeply embedded system with the eLua project, for example Seeeds sells a Lua-preloaded ESP8266 wifi module. One of our plan for Crazyflie 2.0 is to be able to write deck drivers in Lua.

With Crazyflie 2.0 we are aiming to make a research-grade flying platform more accessible and versatile, hence the expansion capabilities (with decks) and the new API we are writing for it. Lua would fit well in this goal. It would allow to very quicky script and test a device driver. As a bonus Lua being safe (ie. the virtual machine cannot crash the system), there would be no risk of crashing the copter with those kind of driver. The architecture would look something like that:

cfluaArchitecture

Though Crazyflie Lua integration has not been prioritized so far, we think it is something that would be interesting to play with it in the future. If anyone is interested into testing and helping out please reach us on Github or on the forum.

Last Thursday we went to LTH (University of Lund), to the Robotics department, to make some measurements on the ultra wide band (UWB) positioning system we are working on. The idea was to use one of their robots to move a Crazyflie around along well known path, and at the same time record as much sensor data as possible. This would give us data that we can crunch offline.

We placed four anchors around the robot and our positioning expansion deck on the Crazyflie. The Crazyflie collected the data from the positioning deck as well as its internal sensors and streamed the data it over USB to an external computer for storage. We collected the following data:

  • Distance to the anchors (raw measurements)
  • Air pressure at the anchors
  • Air pressure at the Crazyflie
  • Accelerometers
  • Gyros

The logs from the robot will give us the real position of the Crazyflie as well as the anchors, and from that we will be able to evaluate the performance of algorithms that use the sensors to figure out the position.

The dataset will be shared with the researchers at Lunds university, they have some interesting ideas they want to try out.

Next step is to crunch the data…

For more information on our UWB positioning project, see Firmware and dwm 1000 nodes

Marcus and Arnaud have packed up and left the Berlin Maker Faire after two hectic days. and last weekend Tobias and I were at Maker Fair New York. It’s a lot of fun showing the Crazyflie, meeting people and getting feedback from the community!

MF15NY_Badge1icon_Berlin

This time we had created a demo where we used a webcam to track the position of the Crazyflie (see older blog post). I really like the demo, it’s pretty minimalistic and shows the awesome capabilities of the Crazyflie as a platform that enables the user to explore and develop on top of it. Just add a webcam, AR-tag some control algorithms, imagination and engineering and you have an autonomously flying Crazyflie!

When Tobias and I arrived at the New York Maker Faire on Friday afternoon to set up the demo, we discovered that our booth was not indoors, but under a roof without walls. And it was windy!

mfny-tent mfny

There was no way the control algorithms could manage to keep the Crazyflie at its taget position, so what to do? We tried various ways of tethering it with a string while still flying, but without any success. We had to resort to hanging the copter in a string, but not really flying it. To at least get some use of the positioning system, we used the position of the hanging copter to change the color and intensity of LED-rings on four other copters that we put in the corners of the test rig. Not what we hoped for but what do you do?

My favourite gadget at the New York fare was the Pancake Bot – a must in every home!

pancakebot

The Berlin Maker Faire was organized for the first time last weekend. The venue was a bit smaller than other Maker Faires we’ve been to, but there was lots of interesting visitors and it was held in a very nice old railway-postal building. Fred from our community joined us during the fair and gave us some much needed support in the booth. As for the demo it was working better, but we still had some issues with lighting and the detection of the AR-tag. Room for improvement.

IMG_20151003_111805_small

The fair had a drone area, but unfortunately not a lot of drones. We were flying the Crazyflie 2.0 as well as a bigger quad using the Big Quad deck. Aside from that Fred brought a long his even bigger quad that uses the Open Pilot CC 3D.

IMG_20151003_140430_small

 

IMG_20151003_140908_small

Big thanks to Fred for showing us Berlin and helping us out!

 

 

This year we decided to save some time and split up for the last two Maker Faires. So last weekend Tobias and Christopher went to the Maker Faire in New York. They had a great but hectic time. More about it in a next post.

Meanwhile me and Marcus are going to Maker Faire Berlin next week end, from 2015-10-03 to 04. We will be standing in the Seeedstudio booth showing the Crazyflie. We’re also planning on having our first ‘meetup’ since we are sure to have at least Fred, the main Crazyflie Android client maintainer :-). We have created a forum thread to discuss it. If you are in Berlin next weekend and want to meetup and talk to us and other Crazyflie enthusiasts drop a line in the forum. The meetup will be somewhere in Berlin so do not hesitate to join even if you do not attend the Maker Faire. We will announce the exact time and place on the forum, it will certainly be on Saturday the 3rd.

icon_Berlin

On an other subject, Wolfgang, from USC, is having a talk at the IROS conference. He is going to present his research on Mixed Reality, where one of the platforms he’s using is the Crazyflie 2.0. We have visited Wolfgang’s lab and University before the Maker Faire Bay Area and we where really impressed, they are doing great research. Here’s the info on the talk:

Event: International Conference on Intelligent Robots and Systems (IROS), Congress Center Hamburg, Germany
Talk: “Mixed Reality for Robotics,” October 1, 12:20 – 12:35
Room: Saal A4
Abstract: link

IiROS logo