Category: Random stuff

Last week was a hectic but exiting week for me. First I visited Embedded World in Nürnberg and then made a visit to TUM university in München.

I was actually visiting Embedded World because ST Microelectronics contacted us and wondered if we could do a Crazyflie version with the more powerful STM32F3 and use ST MEMS sensors. So during the winter we did some prototypes where we fitted the pin compatible STM32F303CB and a LSM9DS0 9-axis MEMS module. Porting the code was pretty straight forward and took about a week. It was manly the drivers that needed porting but getting the FPU running also took some time. Our quick bench-marking test showed an ~35% increase of the floating point intense code and by using further speed boosters like the core coupled memory (CCM) it could probably be increased a lot more. Right now these extra CPU cycles aren’t really needed but for the future when more complex sensor fusion algorithms might be used they will be valuable. Therefore the STM32F3 series it very interesting as it packs plenty of processing power in a small package.

Having the ST-prototype on display in the ST booth at embedded world was quite a strange feeling. Something that started out as a fun thing to do on our free time is now sitting on a wall at big cenvenstion as EW, kind of hard to grasp. Unfortunately we where not allowed to fly around and play with it due to restrictions but I had a great time there anyway. I also participated in a short interview which ST arranged, really strange seeing yourself like that. I should probably focus on my engineering career instead… :-)

After the EW I went to visit the Techische Universität München TUM, as one of our most active users Oliver is studying there. Oliver made an awesome HUD and also contributed with most of the altitude hold code, and since München only is an hour away by train it was a great opportunity to go visit him. Oliver arranged so that Jacob from the computer vision group invited me to their department where they demonstrated some of their work, especially their work done with computer vision and quadcopters. Amazing stuff! I really hope we can do something together in the future and make this technology widespread.

We have started the migration to GitHub, as usual with this kind of things it is not as obvious as we had thought at first. We decided to start with the most active repos which is currently the PC client. In the process it will be renamed crazyflie-clients-python to show that it contains the python libs and it works on more than just PC (ie. raspbery pie at least).

The source code migration is a little challenge due to the very different way Git and Mercurial handle branches. Using git-remote-hg we could pull the mercurial repos in a newly created git repos and then push the interesting branches and tags to github. This seems to work quite well but the last things we would like to have is the possibility to pull changes made in git to mercurial so that we could keep the current mercurial as a read-only mirror. Internally some of us plan to still work with mercurial anyway using hg-git and the great TortoiseHG.

For migrating the issues from BitBucket to GitHub we forked this script to add some functionality. Aside from copying the title/text/comments, we also wanted to map the metadata from BitBucket to labels/milestones on GitHub. So the modified script first creates/sets the correct milestone on GitHub and then creates/sets the labels according to a JSON mapping of BitBucket metadata to GitHub labels. It supports mapping of kind, status, priority and component to zero or more labels. The modified script is available here. While doing tests we discovered that github was sending a mail for every single ticket and comment, a collateral damage was one of our mailbox that got 303 messages in a couple of minutes (the smartphone attached to the mailbox actually played notification tunes for hours…).

ticket-mails

 

 

As our source control system, we have been using Mercurial since a few years now and we like it. But lately we have been thinking about migrating our projects to GitHub, which would also mean a migration to git. One of the key reasons we are thinking about this is of course popularity, but also that GitHub seems to be better at handling cooperation and contributions. Our experience with GitHub is limited, but we have been using git in projects every now and then. So we would love to get some feedback on this. Even though it’s possible to push code on both (even easily between git/hg) we would like to stick with one alternative for bug tracking, milestones and such.

Should we migrate to git and GitHub?

View Results

Loading ... Loading ...

During the week we are working on preparing a new software release, at least for the pc client. A couple of things happens since last release including better log graph and altitude hold. Also the driver situation for windows will become better as we found a way to install the Crazyradio driver without restarting windows in maintenance mode. Finally we now have a mac and are planning more support for it in the future, no promises for this release though.

We wanted to wish everyone a Happy New Year! A big thanks to our users and community for supporting us during the year. We are really looking forward to 2014, there’s going to be lot’s a exiting things happening!

Don’t forget about the holiday contest where you can win Crazyflies! If you feel like joining in, submit your entry to holiday_hacking_2013@bitcraze.se before the end of Sunday the 12th of January 2014. It’s going to be interesting to see how much spam we get when we write the address without obfuscation and even link it ;-)

Oh, and in case you missed it, here’s a shameless re-post of our holiday video. To be fare it does say Happy New Year at the end.

 

Last week was mostly spent preparing for, and travelling to Devoxx. It’s always great to get out a bit and meet other nerds, discuss technology and do some flying. Devoxx is a Java conference so we didn’t think that many people would be interested in hearing about quads and low-level embedded. But we were really happy to see that lots of people showed up for the presentation.

Presenting is fun, but the most fun part is always hanging around before and after. Meeting people, discussing and flying. This time we also got a chance to do some hacking with the team from MYO. Hopefully we will get our hands on a developer unit early next year :-)

The Crazyflie Nano Quadcopter kits, bundles and spare parts are now back in stock at Seeedstudio, but we are still waiting for the Crazyradio to be re-stocked. Our products are selling quicker than we expected, so if you want one for Christmas don’t wait too long to place the order.

[pe2-gallery album=”http://picasaweb.google.com/data/feed/base/user/115721472821530986219/albumid/5945707587870624705?alt=rss&hl=en_US&kind=photo” ]

Here’s some video of the FPV flying demo taken from someone in the audience.

As you can see the webpage looks a bit different this Monday. For a long time we have had the feeling that new users coming to our webpage don’t get an overview of what we do and what the Crazyflie is. So we decided to put in a front page that is intended to introduce Bitcraze and the Crazyflie to new visitors. Since we feel that our blog is an important part of what we do we also added the last blog post to the bottom of the front page. If you are looking for the full blog it’s moved here, also there’s a link in the top menu.

We have also gotten the comment that there’s no information on the actual website, it’s all on the wiki. So we have added some new pages with a bit more descriptions of the development environment and the products. We will keep adding more and more information as we go. There’s still lots of work to do for the page and to enhance the website design, but we decided on doing it incrementally :-)

The nice new photos (in the slider and other images) are courtesy of our friend Johan Jeppsson, thanks!

It’s always fun get a change to meet fellow geeks/makers so during this fall we will be holding two presentations, first in Denmark and then in Belgium. They will be held at CIID in Copenhagen in October and at Devoxx in Antwerp in November. If you are close by then make sure to come by and say hello!

Here are the details:

If you don’t have the possibility to attend any of these and still want to hear us speak, have a look at our presentation at Oredev we did last fall or at the video from Devoxx after the conference. If you watch our old presentation, then pay attention at around 42:00 when Arnaud flies a Crazyflie into my forehead… It was just a matter of time before it happened :-)

If you have any suggestions on conferences/events were you would like to see the Crazyflie then leave a comment below.

Devoxx

It’s been a week and so far no-one has decoded the complete message (at least not decoded it and followed the instructions…), Pär has made a great start with “first” but there is more to it ;-).  So as promised here’s more clues. The message is 320 bits long and the bits are organized so they form a square (i.e the rows are directly underneath each other). That together with the clue we gave last week should make it a bit easier to decode. And if you need some motivation to get decoding, there is a reward included with the instructions :-). Edit: The reward was clamed by Joerg, congratulations! For anyone that still wants to try and solve it, don’t look in the comments. You will find the solution there :-)

TheCode

One late night many months ago, we had a great idea! While finalizing the design of the Crazyflie box we decided to include a faint binary pattern in the background on the box. Taking a closer look at the box you will probably see it. After looking at it for a while you might notice a pattern emerging. The pattern reads 1011 1100 which equals 0xBC in binary, well most of it anyway. In some part of the code we decided to insert a message. We placed it in a way so it would be “easy” to notice the break in the main pattern. Now, this was well after midnight and we didn’t foresee all the problems that might occur.

Fast forward a couple of months and we get the first box from production in our hands. Turns out the binary pattern wasn’t as crisp as on the computer screen (doh..) and that it was shifted a bit from where we originally place it. To make things even worse the design had probably been panellized and the pattern wasn’t in the same place on all the boxes. This would never have caused any problems, except for the code that was hidden there…

We forgot about this for a while, but then we finally posted something about it. Then we sat back and waited for it to be found. But nothing happened. So we decided to finally sit down and try to decode it from scratch. Turns out that it takes longer to find and decode than Neo took to decode the code in the Matrix…. So we decided to make it a bit easier :-) Below is a scan of one of the boxes with a little Gimp-magic to improve the visibility. If you start looking at the 0 above the “y” you will probably find something interesting. It’s not easy, so if no-one finds it by next week we will keep giving clues.

TheCode

 

The past weekend marks the two year anniversary of Bitcraze, the company we founded to manufacture and make the Crazyflie Nano Quadcopter kit available. Even though there’s been a lot of hurdles along the way we finally made it all the way to our goal! It’s been a great year with lot’s of fun things happening like finally testing the pre-seriesvisiting Seeedstudio in Shenzhen, seeing our empty forum filling up with active users and most of all seeing what users are doing with their Crazyflies. Thanks for supporting us!

Our first year with Bitcraze was spent doing lots of development, design, testing and sourcing. This year has been spent on lot’s of planning, administration, support and preparing for a release. We have said this a few times before, but it’s worth saying again: The easy part was getting the Crazyflie to fly, the hard part was manufacturing and releasing it. Having a company, website and production takes a lot of time. We are really happy with our co-operation with Seeedstudio, without them taking care of production/orders/sourcing/etc. we wouldn’t have had any time over for development.

One of the questions we were asking ourselves before Bitcraze was how our development would be affected when we suddenly had users using our hardware and software. Back then we basically did what ever we felt like doing, as long as it took us in the general direction of making things better. The client and firmware would suddenly be incompatible for a couple of weeks. If we needed to modify the hardware we just had 3 Crazyflies to patch. Sometimes we would just get fed up with everything and spend weeks doing other projects or going outside to smell the fresh air and get some sunshine. Having users and manufacturing a product changes things. It’s a great (and oddly bizarre) feeling seeing users assembling and using something that we have designed and worked on for so long. Even though we have spent years working with product development as contractors, we have never really seen or communicated with the end-users before. So in order to make this work we have spent lots of time discussing how to do things. That includes everything from naming conventions and work division, to how to organize the wiki and when to build new releases of our software. We once spent a whole night discussing how to name our products internally (like BC-CFK-04-A). Even though things are better now, there’s still room for lots of improvements.

So what’s the plan for the coming year? To get more development done! By now we have done most things for the first time, so hopefully the next time it won’t be as much work. Now that the summer is over and we have cleared our backlog of administrative tasks, we are hoping to get some momentum again. We will also try to find more fun things to do and to broaden the usage of the Crazyflie platform, like the Kinect and Leap Motion work, so that users can keep exploring and developing new things.

Crazyflie with candle

The image is actually the same image we posted last year when Bitcraze turned one. We are now one year older and wiser, which means we know better then to attach a lit candle to a LiPo battery and try to fly the quadcopter :-)