Category: Random stuff

We have noticed that there’s a lot more work to be done in this project than only designing hardware and developing software :-) It’s now about 14 months ago that we decided to make a Crazyflie kit that we would try to sell. At that point we had already had the first version of the Crazyflie flying for about 1 year. The list of things that we have done since then is pretty long…a lot longer that we first thought it would be. But let’s save that list for another post…

One of the things that we’ve had to spend some time on is setting up our IT environment and now we are trying to make the final push. Up until now we have been using Mercurial/Redmine hosted on our own VPS. Here’s a list of what we are thinking about using in the future:

  • CM for code and schematics: Bitbucket
  • Issue handling: Bitbucket
  • Wiki: Dokuwiki
  • Forum: phpBB
  • Blog: WordPress :-D

Any thoughts or ideas about these? Any services that’s missing? Anyone that has good/bad experience with Bitbucket?

A couple of weeks ago we discovered that the sensors of our new prototype where not functioning. We have now received new MPU-6050 sensors from Seeedstudio that we are going to solder with hot-air during the week (photos of the soldering will be posted during later this week).

On the manufacturing side we received the motors we will use which brings us one step closer to making the Crazyflie available (as long as everything else is working :-))

On the software side we are working hard to clean up the copter firmware and PC client architecture. The goal is to make it as easy as possible to setup and fly but also to modify or tweak.

 

During this spring we have been involved in a Master thesis together with Epsilon. The goal for the thesis was to embed a camera module on the Crazyflie so it could be remotely controlled. Finding a lightweight camera module with access to documentation without buying a million units turned out to be trickier then we thought. The aptina MT9D131 was chosen as it can be bought from normal distributors, there is access to documentation and it has on-board JPG compression. The NRF24L01 radio was tested to see if it could handle low resolution video streaming, and it could, so no additional radio was needed. An addon board was built which could attach to the Crazyflie expansion port and it was called… Crazycam! (I wonder when we will become crazy for real :-)) . The Crazycam board uses the same STM32F103CB MCU that the Crazyflie uses to read out images from the camera chip.

Crazycam v0.1 (sensor side, mcu side, with mounted lens)

It turned out that the bandwidth to read out the images from the MT9D131 to the STM32 wasn’t enough and finding lightweight lenses was not that easy so the end result wasn’t as good as we hoped for. It wights about 5g and can stream images at about 6FPS. There are still things to try out and in theory it should handle 15-20FPS. It might be fixable so it ain’t over yet. If you would like to read the full report it is available at Linköpings university under the link “fulltext”. Even though we didn’t get all the way Thomas and Joakim, the authors, did a great job!

We don’t have that much new to write about this week. The software clean-up is slowly evolving and we have been working some more on the radio protocol and the ground station.

We hope that the new prototypes will be ready this week so maybe we could make a first flight with them in the beginning of next week :-)

A none return point has been passed as we have put in an order for a shit-load of motors. Now everything has to work out or we will be sitting with a hole bunch of motors and no money to do other fun stuff.

 

While waiting for our next round of prototypes we are continuing the work on the software. As we feel that the copter is now stable enough for release we are concentrating on making the software easier to use and better organized.

We have also run a little profiling test on the Crazyflie firmware to see how much CPU was used by the current stabilisation algorithm. We use FreeRTOS and added some functionality to log all the task transitions.  The first result was quite worrying as it seems that we where using about 90% of the avaliable CPU. After further investigation is appeared that the problem came from the fact that we where testing Debug buils. When optimizing for size (-Os of GCC) it brings us back to 70% cpu usage and optimisation for speed (-O3) to 65%:

We are currently running two sensor fusion algorithms in parallel and have a lot of room for improvement for the code efficiency but we believe that would be good enough.

There has also been some work done on the PC GUI, there are now more flight settings and it is easier to use. We are currently adding a Joystick configuration window to be able to add support for new joysticks/gamepads more easily:

Crazyflie GUI: Flight data tab

To begin with, we have just created a Bitcraze Announcement google-group that we will use as a very-low-volume mailing list to make big announcements like the release of Crazyflie. So if you are interested by buying Crazyflie just subscribe to the list and you will receive a mail as soon as it becomes available.

 

As for the project, we are now waiting for the next (and hopefully last) prototype run. In the mean time we are trying to fix everything from the todo-list. One item was to verify that the radio dongle can receive PPM signal from a RC remote, as it was designed for. This is what I  have been working on last week and the result hardware-wise is this kind of hacked programming/RC-training cable attached to our radio dongle:

The idea is to be able to control Crazyflie using a RC transmitter only (without a computer) so that the radio dongle would be powered and controlled by the RC transmitter. This kind of transmitter generates a PPM (Pulse Position Modulated) signal which is acquired from the training jack of our ‘Turnigy 9X’ transmitter. We do not plan to manufacture such cables right now as there are too much kind of RC transmitter around there  and we believe that you will be able to hook the Crazyradio dongle to your transmitter without problem :-).

As the cotper firmware can not fly easily without the PC yet (most of the settings are still sent from the PC software before flight) we decided, as a first step, to use the PC anyway but by using the radio dongle for the PPM acquisition:

A HID USB joystick mode has been added to the radio dongle so that it is now recognized as a joystick by the PC (in addition to the radio endpoints) and transmits the axis position of the RC transmitter to the PC. By mapping the axis the same way a Plastation3 gamepad is mapped we could fly Crazyflie with the RC remote and with an unmodified version of our PC software. This permitted to verify that the radio dongle can acquire PPM signals (with a little hardware change that has been sent just-in-time to our manufacturer for the next prototype) and so Crazyflie will also be able to fly without PC :-). In the case of our radio transmitter however we will have to connect the radio dongle to the TX module port instead of the training jack as the training jack does not provide power.

This is still work in progress and it is unlikely the ‘pc-free’ functionality will be finished before the copter release but at least now we know that the hardware can do it.

The last week we have been working hard on finishing the Crazyflie with the digital sensors, MPU-6050, HMC5883L and MS5611-01BA03. We are not so sure that the magnetometer,  HMC5883L, will work that well due to the strongly magnetized motors just a few centimeters from the sensor. That will be one of the upcoming tasks to find out.

Within 3-4 weeks we will receive what will hopefully be the final prototype version which later can be used for the first batch of Crazyflies. Until then we have plenty of work with software both on the PC side and the firmware. Now it is pretty late, the clock just passed 00:00 and writing at this hour is hard. We will post some video to compensate for this short post later this week :-)

Ever since we decided to make the Crazyflie available as a kit we have looked at different possibilities for manufacturing and selling it. Because we don’t have much time to spend (due to that we all have daytime jobs…) and rather spend or time doing development, we needed someone that could take care of manufacturing and selling it.

During development we have been cooperating with Seeedstudio for prototype manufacturing and component sourcing. We were really pleased with their work so we decided to continue the cooperation to also let them manufacture and sell the Crazyflie and the USBRadio dongle.

Currently the plan is to start out with a small series of 100 kits which will be a “DIY” version.  The motors/battery has to be soldered and the motor mounts attached. If you have some soldering skills it won’t be a problem to assemble.  The next step would then be to increase the volume and also offer a RTF kit where everything is assembled. The reason for not doing the RTF kit from the beginning is that it’s more time consuming since we have to specify testing requirements and packaging for the platform.

As for the price we still have no number but our hope are that it will be in the 100-200USD range. Since we are still working on the motor mounts and we are unsure of the assembly/testing cost for the platform we don’t know for sure how much the units will cost to produce. Once this is clear we will post more info of the pricing for the different kits (DIY/RTF and USBRadion dongle).

 

Welcome to our new website Bitcraze.se! This bog/website is the home of the Crazyflie quadcopter and other projects we could come up with. News, progress, design and random thoughts about the project will be posted here. Out goal is to post some update at least every second week. More information about the project are still avaliable on the daedalus projects blog.

Why Bitcraze and not Daedalus Projects?

Originally the Daedalus projects blog/website was created to showcase the competence development projects that was done by the employees at Epsilon Embedded Systems in their free time. This is were the Crazyflie project first started. Last year we finally decided to send to a video of the Crazyflie to Hackaday.com and that’s when things really took off. More development was done and we decided to make a Crazyflie kit that could be manufactured and sold as an open source development platform. To finance development and manufacturing of the kit we created Bitcraze AB. At this point we felt that the project had outgrown the Daedalus Projects and decided to launch Bitcraze.se. The Daedalus projects website will still be up and active but news and progress for the Crazyflie will be posted on Bitcraze.se instead.