Category: Electronic

It’s been an incredible week seeing people from all over the world getting their Crazyflies into the air!! We have seen videos of people doing crazy stuff we never thought of, 3D models of cases and frames on Thingiverse and of course a lot of images of people unpacking and assembling their Crazyflies. The wiki is receiving some well needed updates and everyone is helping out answering questions in the forum. It’s really great for us to see this project come to life after such a long time and as far as we can tell we have a lot of happy users, even though there’s still a few people struggling with issues.

Like we said last week, this is the first time we distribute the software/firmware/hardware widely and there’s a few bugs that has been found. We are currently correcting the most important ones and will post updates for the firmware and software once we fix enough of them. If you want to follow the progress drop by the bug tracker on Bitbucket for the PC-client, Crazyflie and Crazyradio.

We are doing our best to answer questions and give support in the forum, but there’s a couple of issues that we would like to highlight to make the assembly and usage easier for everyone. Please be careful with your new Crazyflies, they are not unbreakable.

  • Check for shorts after solderingAfter the motor wires has been soldered make sure to inspect for shorts and especially to the resistors, red highlighted area, in the picture as it can damage the digital voltage regulator. This will show up as that the blue LEDs wont light up and the other LEDs will be dim. To fix this the regulator U9 will have to be exchanged. It is the SOT23-6 package in the picture.

 

 

  •  The Crazyradio doesn’t work on USB3 ports but a fix is on the way. Until then the work-around is to use USB2 ports.
  • If the Crazyflie crashes upside down there is a chance the motor bearing gets depressed. There is a protection for this and that is to carefully glue a spacer between the motor and the propeller, similar to what we have done in the picture. That will prevent the propeller from pushing on the bearing but will instead be pushing on the spacer which will absorb the force much better. The spacer needs to be higher then the motor bearing else it will not work that well.

 

  • Loading an already existing input-device configuration in the PC-client does not work, the best is to start from scratch (see this issue). Also when configuring the input-device you will have to map all the axis and buttons before you can save the configuration (see this issue). For more information on device-input configuration see this page on the wiki.

Unfortunately the production of the new motor-mounts has been delayed and they will not be available for order until next week. But the kits that are currently in stock still contains a spare motor-mount.

Happy flying!!

The community interest for FPV flight made us buy a light weight analog FPV kits a while a go. We bought the 5.8GHz micro combo set from fpvhobby to do a first test. It took a little while to solder things together but it wasn’t that bad. We soldered the camera and the transmitter power to the VCOM voltage on the Crazyflie which is available on the expansion port. Then we taped the camera and transmitter to the Crazyflie and did a test flight.  The FPV kit is only about 3 grams which doesn’t affect the flight performances that much.

It was almost too easy, but as soon as we took off we noticed some vertical lines on the TV so maybe it wasn’t that easy. There seems to be some electrical interference, probably from the motors. Also the battery voltage drop generated by fast accelerations cuts the video feed after a couple of minutes of flight. We still think that there are some improvements to be done so hopefully it will work better in the future.

As for the production, so far it is still going forward as planned.

Finally an Alpha version of the virtual machine has been posted on the forum, you are welcome to test and report any problem/suggestion you may have :-).

After one week of flying the new copters we have to say that they are preforming very well. We’ve done a lot of crashes but only had one incident with a bent axis on one of the motors which we fixed by replacing the motor.

We have noticed that using some radio channels in combination with some link speeds causes too much packet drops when the motors are powered. It’s almost certainly the PWM that causes ripples on the power supply and that effects the radio transmission. It was by chance we saw this and changing the channel or speed works around the problem.

Currently we are working with Seeedstudio to sort out the details for starting up but we don’t have an estimate for when it will happen yet. But one thing is for sure, we will go with the rapid-prototype mounts for the first DIY kit. We are still working on the details for the molded motor mounts but since there’s a lot of leadtimes for this it would delay the kit with months and we really don’t want that. Since after the summer we have been using the same design for the rapid-prototype motor mounts and we have only had 2 that has broken.

The plan is to package 1 spare motor, 1 spare motor mount and 4 spare propellers with the kit. There will also be extra spare parts available for purchase.

On Wednesday we assembled and tested all of the kits in the pre-series. We ran though the production tests, that will be used once the kits are produced, as verification. Since we can’t test that they really can fly the test isn’t covering everything but it checks most of the components. One of the units had a solder-bridge between two of the MPU-6050 pins and our tests showed that the unit was faulty. We are glad our tests caught the problem and removing the short fixed it.

The assembly doesn’t take too long and once you have done a few it’s fairly quick. We timed the last one we assembled and it was finished in just under 10 minutes (including fixing errors that were made :-) ). And that time was done by the worst solderer of us! As long as you are a bit steady on you hand it should be ok. It was a really great feeling unpacking, assembling, testing and then directly flying them! We numbered all the units and will track them if there’s any problems. So during the next weeks we will be flying a lot :-). We cross our fingers that they will hold up to what we expect.

The change we did where, connecting the motors directly to the battery and not through the power management chip, turned out great and we could feel the 8% increased power difference (it might have been some placebo effect but it just feels great).

To sum it all up it was a great night and we are really happy with the results! We remember in the beginning when we had to be in a pretty big room to be able to fly the Crazyflie at all and now it’s so stable you can (if you are brave enough) hover it 10 cm in front of your face and then push the throttle and it swishes away!

As for the project progress we are now discussing with Seeedstudio on how to carry on and we are trying to sort out the motor mount problem and some smaller issues.

We’ve also spent some time creating a new page on the wiki describing the hardware. It’s still a work in progress, but there’s a lot of information. We will continue updating the wiki whenever there is time.

Head over to our Picasa albums for more pictures.

 

One of the goals during this project has been to only use open-source tools for development. The main incentive for this is that we want everyone to be able to take part in the development and look at the all the parts of it once it has has been released. Also it was a great opportunity to see how far we could push open source free development software in a non-trivial embedded project.

Some of the tool has worked great and some has caused us some headaches since we have worked with the proprietary alternatives during the daytime. Our conclusion is that a project like this is definitely doable, but some parts does still require more work (and some frustration). The open-source tools for firmware development and PC client are state of the art and could be used instead of there proprietary counterpart (of course most of the time there is no GUI and some more setup or manual job might be required, but this comes with the benefits of a greater flexibility). However the hardware design tolls are still behind there (expensive!) proprietary counterparts and often requires a great deal of efforts to reach the wanted result.

Of course it’s great that these open-source alternative exists and that a lot of great developers puts time into making them. Without them this project would not have been possible!

The firmware – For firmware development we use a wide number of applications: gedit, Eclipse, Mercurial, gcc, make, openOCD and gdb. On Crazyflie we run  FreeRTOS. As we built the development environment with cross platform tools the development can be done seamlessly on Linux or Windows, on the console or with Eclipe. The radio dongle has been developed from scratch (ie, just from the datasheet) with the help of sdcc to compile for the 8051 contained in the nordic chip.

The client software – For the client side software we use Python, libusb, pyusb, QT/PyQt. Even though there was a lot of discussion within the group (Ruby vs Python, qt vs gtk) we landed on Python due to all the bindings that works out of the box on Linux and Windows. This enables you to quickly create applications. Combining this with QT/QTDesigner and you get a nice GUI application.

The hardware – Since the very first prototype we switched from Eagle CAD to Kicad to use a fully open source e-cad program. It does the job perfectly fine but the routing part requires a lot more time as many of the time reducing functions are still lacking compared to proprietary programs.  For complex boards, if time is an issue, Kicad is not the e-cad to use, but for simple board and typical DIY boards it does the job fine (ie. our experience of kicad is a lot smoother for the radio dongle than for the copter).

The mechanics – For the mechanics we have used freeCAD which is one of the few open-source 3D CADs tools that we have found. When we started out we had a lot of problems with this software because it keep crashing during the design. After the stable release of the 0.12 branch it’s gotten better but we’ve still had some problems with crashes. Over all we managed to design and 3D print many revision of the motors holder with freeCAD.

The website – On our server we are running WordPress, Mercurial and Redmine, all these on a Linux and Apache. We will probably also run phpBB later on.

 

Sensor poll

Waiting another week did not make things clearer whether to mount all sensors or not, but the quotation to buy and mount them did. The $20 we estimated was too low, depending on the amount of boards we make of course, but we would probably have to add another $10 to that which made the decision simple. It is mainly the barometer that is very expensive so we might still decide to mount the magnetometer. First we will do some tests though to find out how much “value” it really adds. For people that wants the barometer it will still be possible to manually mount it afterwards making it a win-win decision.

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…

Let’s not forget the sensor poll. It’s a very close encounter with 55% wanting the extra sensors. We will keep the poll open until next week to see if it gets any clearer.

If you have been reading our previous blog post you know that we redesigned the Crazyflie to use the MPU6050 instead of the IDG500-ISZ500-BMA145 combo. This was done because the IDG500 became obsolete, recently we found out it was because Invensens had production problems with this sensor, anyway when redesigning we managed to squeeze in a HMC5883l magnetometer and a MS5611 pressure sensor.  Now when we are getting close to actually making some kits we have to take some decisions and one of them is if we should build the Crazyflies with the HMC5883l magnetometer and the MS5611 pressure sensor mounted. This will of course increase the price which we have estimated to be about $20. Currently we do not use neither the magnetometer nor the pressure sensor. The yaw drift is so low that when you pilot the Crazyflie it isn’t noticeable and therefore we do not use the magnetometer. The pressure sensor we have just tested briefly and we do not really know how well it would work. Altitude hold might not be so useful inside but maybe outside.

Because of this little decision whether to mount the magnetometer and pressure sensor or not we would like to make a poll so please give us your thoughts.

 

 

Should we mount the pressure sensor and the magnetometer?

View Results

Loading ... Loading ...

The coming week we are reviewing the new revision of the hardware before we press the order button. With the previous prototype we had a few violent incidents where one of the arms broke off. Fixing it wasn’t to hard. We used an aluminium tube we cut to the right size and glued over the arm and it holds up well. For this next revision we have changed the board outline around the arm joint to be smoother as this seams to be the weakest point. If everything goes according to plan the next prototype should be the last before we can order a larger batch.

During the last week we also did a little test making an small Android app and plugging the radio dongle in one of our Galaxy Nexus. It’s detected and can be used via the USB API.  It’s nothing that we are planning on spending any time on right now but in the future…

 

 

 

We haven’t seen any more problems with the prototypes since we exchanged the MPU-6050. All of the changes for the new prototype has now been tested and we are currently modifying the board design to fix the bugs that we have found. Then it’s time to order a new batch of prototypes. Our hope is that this will be our last round and that the next order will be a bit bigger!

The last couple of months we have re-designed large parts of the code to be more modular and easier to maintain and at the same time we have added more features such as rate controlled PID and flexible logging and parameter system. The UI has been slightly re-designed and the PyQwt dependency has been removed.

During the summertime we are a bit split up since we are going on vacation and are actually trying to go outside! So we have tried to define the features and tasks that are left until the first release of the project so we can focus our efforts on the right things.

We feel that we have never been this close to the release so we are really looking forward to this autumn :-D