We discovered a new key-chain video camera which is called the 808#16. It had gotten a pretty good review so we decided to give the video camera add-on hack yet another try. A while ago we tried it with a 808#14 but it didn’t work that well when we where running it directly from the Crazyflie battery. It shut down as soon as we used to much throttle and using a separate battery made it to heavy. We didn’t have to high hopes for the 808#16 either and when we discovered that the bare camera weight, no battery nor case, was about 9g we knew it would be at the maximum of what the Crazyflie could carry. With high hopes we connected the camera directly to the Crazyflie battery terminal and gave it a try.
It worked! The camera didn’t shut down but as you can see the stability is pretty bad during take-off. Once in the air it is controllable but only barely. We haven’t tested the full flight time but it probably wont be more then 2-3 minutes. We are thinking of doing a test where we add 4 more motors “mirrored” directly underneath the existing ones to increase the payload capability. Would be nice to have that option and it should be fairly simple to do.
We are pretty impressed with the video of the 808#16 which still is very cheap. We bought the 808#16 camera with the D-lens which is a wide angle lens and that’s why the video has a bit of a fish-eye.
We just finished the top level BOM, test plan, fabrication files, etc… which mean everything required to order the pre-series of the Crazyflie. The pre-series is meant to be last version before the first real production batch and the idea of it is so that we can test the manufacturing and verify that it is manufactured with good quality.
One of the last minute changes we made for the pre-series has been to power the motors directly from the battery instead of through the power management chip. This should gives us up to 8% more power and efficiency due to power management mosfet on-resistance losses. It should also reducing the voltage drop which causes disturbances to the other circuits. The only drawback is that the Crazyflie consume a bit more power when OFF, because of the leakage current through the motor mosfets, but it is still within acceptable limits (a full battery will still take more than 2 years to be depleted by our electronics). Also the battery can now be swapped/disconnected for storage as we have added a connector.
Our target is to have the Crazyflie DIY kit availible for X-mas. It is very tight and it will be hard but what would life be without challenges :-)
After the LED hack we are back with an inductive charging hack!
The idea of charging Crazyflie inductively is almost as old as the copter itself. Last week we received a Palm Touchstone charging kit that we ordered. Like many phone hacks using this inductive charger we dismounted the receiving coil and electronic and attach it to the Crazyflie:
As the Crazyflie has a power-management circuit, any supplied voltage above ~4.5V will make it charge, and as we have made some soldering pads available for things like this it was a simple task. The coil is very thin and light (about 3g) so the flight performance are not affected a lot by the change. The charger is working very well and provides enough current for charging. We charge with a little less then 500mA and we think the Touchstone can supply up to 1A. One possible problem though is that the copter has to be placed exactly in the middle of the charging station to be able to charge. The phone has magnets to align it to the charge station and on top of that the charge station is not straight but tilted. The magnets are way to strong to let the Crazyflie take off so we are trying to find a landing area design that would permit the copter to land in the right spot and still be able to take off again without the magnets, any ideas?
When I was shopping for some ink-cartridge at this Swedish accessory store named Kjell&Co I also bought one of these 12V LED lamps. I didn’t buy it to actually use it instead I bought it to have a look inside. I cracked it open when I came home and found, not so surprisingly, a lot of LEDs and a step up converter with a current sensing mode. Since it was made for 12V AC I removed the rectifier bridge and a large cap to get it as light as possible. Testing it with a power supply reviled that it worked all the way down to 2.2V and at 3.7V it consumed about 0.5A. A bit to much for the Crazyflie so I doubled the current sensor resistors to get it down to 0.25A. Some soldering and some double sided foam tape and we suddenly have a pretty bright lamp hooked up to the Crazyflie. Now we have a search&rescue device :-) or maybe just an UFO…
Last summer we were sitting in a meeting room after office hours discussing how we should react to the fact that a lot of people seemed to want to buy a Crazyflie. After having a bit of down time in the project we finally posted a video, that was already about 6 months old, on Youtube. It was during the spring 2011 showing us flying the first prototype Crazyflie. After getting picked up by Hackaday it got a lot more attention that we originally thought and a lot of people wanted to buy one which was great! The only problem was that we only had three of them and at this time there where already obsolete components. Another problem was that the motors/propellers were scavenged from toy airplanes (they had a sale and we got them cheep) which was not a scalable sourcing solution.
So sitting in this meeting room we decided to give this project a shot by trying to release a kit that could be sold. Back then the development was funded by Epsilon, the consulting company that we are working for, which was not optimal if we wanted to commercialize the Crazyflie. So we decided (after a lot of discussions) to form a company which became Bitcraze AB (the name came after even more discussions). We needed a company to make manufactures and distributors take us seriously and for import and tax reasons. It is also pretty satisfactory to be on the board of director of our own company :-).
At this time the Crazyflie was already flying but it had to be redesigned, parts sourced and we needed to find someone to manufacture it for us. Since we didn’t (and still don’t) have that much capital this wasn’t something that we could leave our day-jobs for so the development continued on weeknights and weekends. As anyone working with product development (specially if it includes any type of hardware), going from a prototype that is working to a final product requires a lot of work.
A big obstacle for us was sourcing the mechanical parts: Motors, propellers, motor mounts and battery. Some of these can be found and some are harder. And even if you find something that looks good on paper there’s no guarantee that it’s very good or working at all. We got some motors that seemed like they were scavenged from the junkyard (and probably were), we got batteries that didn’t meet the specification and propellers that were unbalanced. All this takes a lot of time. Finally we had to design a motor mount ourselves since we couldn’t find anything that suited our purpose. After a lot of searching/testing we finally found good batteries and motors. The propellers are still a bit hard to find a reliable source for but we think that we have it sorted out.
Even though it’s been very frustrating at times, like when the Invensense gyros we were using went out of production, we have a lot of fun when we work (which you can hear in the videos). Also we have been challenged to learn new stuff and got to try things that we normally would’t do at work. One of the reasons we started the project at all back in the fall of 2009 was that we wanted to do something more challenging and we think that we achieved that :-)
So what’s the plan for the upcoming year? Well, the main plan is to release the kit soon of course! After that there’s a lot of ideas of what we want to do so we will have to see how things go. Also we would like to thank everyone that’s been following our progress and supporting the project!
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
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: