Category: Software

In order for users to be able to pilot the Crazyflie from platforms without a graphical user interface there’s now a headless client in the repository named cfheadless. It’s intended to be run the command-line and is still under development, but working.

The main reason it was made in the first place was to enable flying from the Raspberry Pi. The QT interface was very sluggish and it required all the QT dependencies to be installed. So the cfheadless client doesn’t depend on QT and doesn’t have a graphical user interface at all. For users to quickly get something working with the Raspberry Pi we prepared a pre-configured SD-card image that is based on the Raspian Wheezy. We didn’t remove anything from the image, we just added the things needed to fly the Crazyflie. It works out of the box with the Crazyradio and a PS3 controller. In order to switch to anther controller you will have to connect to the Pi and edit the configuration.

To use the image you have to edit the configuration if needed and then just connect your controller, power on the Crazyflie and lastly connect the Crazyradio. The cfheadless client will now automatically start and connect to the Crazyflie.

The image can be downloaded using this torrent or via direct download. The torrent is preferred since the direct download is limited to 6 simultaneous downloads. For more information on how to use the image have a look at the wiki page and if there’s any issues or suggestions drop by the project tracker at Bitbucker and add them. If you already have a Raspian image downloaded and running and you want to be able to use it with the Crazyflie then have a look at how we made the image or the hacks page with the original instructions.

Crazyflie and Raspberry Pi

There’s an updated version of the Bitcraze virtual machine out. The VM has all the pre-requisites for using the Crazyflie/Crazyradio and also the full development environment for our projects. Here’s a list of the improvements from version 0.2:

  • Upgraded version to of Xubuntu to 13.04
  • Improved README and instructions inside VM
  • Updated to the latest version of repositories
  • Added script for updating all the project repositories
  • Added pre-configured JTAG debugging for Eclipse using BusBlaster
  • Added KiCad and the Crazyradio design files

More information on the Bitcraze VM can be found here and it can be downloaded from this link. If you don’t want to download our virtual machine but instead make your own then have a look at this guide on the wiki.  It details how to get Xubuntu running in VirtualBox with all the pre-requisites for the development environment.

We have finished cleaning up the Crazyradio design files and they are now added to a Bitbucket repo. The project includes a cache file with all the components from our library that we have used. Once we are finished with cleaning up the component library it will also be uploaded.

It’s been yet another week with lot’s of ideas, contributions and discussions. Here’s some of the things we’ve seen the last week:

And of course thanks to everyone that keeps updating the wiki and helping out in the forums!

It’s been another busy week at Bitcraze. Unfortunately we are lagging a bit behind on pull-requests and such, but we are doing our best to catch up. Also development taking place in the forum has accelerated and we will try to summarize some of it next week.

The planning for the next batch is finished and it’s now going into production. Expected to be ready in the end of June. For this batch we have modified the motor-mounts to add some space at the bottom and also increased the size of the “stopper” at the bottom of the mount to keep the motor from popping out.

From now, as been requested, we will also start offer the parts of the kit separately: The Crazyflie 6/10-DOF, the Crazyradio and the antenna. Aside from this we will still be offering the previous kits and all the spare parts.

A new source version of the Crazyflie PC client has been uploaded to the Bitbucket page. Since this new version mostly fixes critical bugs related to mac, there’s no new version for the Windows installer.

For the next version of the windows installer we are looking at packaging and installing Crazyradio driver with the client. We are also looking at making Ubuntu packages accessible in a PPA as well as Fedora/OpenSuse packages. This would simplify the Client installation on Linux. ArchLinux already have a package in AUR  courtesy of Gergely Imreh.

Development is starting to accelerate and we are really having a hard time catching up on pull-requests and forum activity.  It’s like an avalanche, once it is started, it is impossible to stop :-).  We are also doing our best on the support side and we want to send out a big thank you to all the users that help out with all the support as well. Just to name a few: foosel, alex, skube, TheFrog4u, DesTinY, atimicdog, etc. The list will be too long to list all but you know who you are, many thanks!

We will soon be releasing a new cf-client that will close some bugs and especially the OSX bug which could make your Crazyflie go full throttle if the controller is accidentally disconnected during flight.

Our to do list is currently huge but this is a subset of what’s on the list right now.

  • Implementing GUI in the cf-client  for updating the Crazyradio.
  • Updating the wiki and especially the trouble shooting page.
  • Fixing bugs
  • Implementing brushless controller driver.
  • Support
  • Accepting pull-requests
  • Administration
  • Cleaning up in the forum
  • Planing JavaForum presentation
  • Crazyradio PPM input

As you can imagine we have our free time pretty much planned out :-).

It’s been another week with lots of stuff going on. Shortly after the Crazyflies were delivered things really started to accelerate. Now there’s lots of cool stuff going on and we are trying to keep up :-) Here’s a few things from the last week.

  • People have started looking at the pressure sensor that is mounted on the 10-DOF version. phiamo is working on a hover-mode using the pressure sensor. There’s more information and code in this post.
  • Contributions to the Mac OSX install instructions have been made and they are now usable.
  • Another frame has been designed by bscott and is uploaded on Thingiverse. No doubt, next on the Bitcraze shopping list is a 3D printer.
  • The USB3 issue on the Crazyradio has been fixed so there’s a new version of the firmware. If you don’t have any problems with this then don’t update, because there’s a slim chance of bricking the radio (see the wiki page). The firmware is available here and instruction on how to update it are here.
  • A nasty bug on Mac OSX has been reported. When loosing connection to the input-device the output will become 100% thrust and it will not stop until the radio looses connection. This issue has been fixed in the latest version from the repository.

The Crazyflie Nano Quadcopter kit 10-DOF is out of stock again but there’s still some 6-DOF units left. We are currently planning the next batch but until then there will be a few more units (~50) that will drop into the Bazaar.

In order to have a better overview of which problems that have been solved and which still needs attention in the Support forums we are setting up some guidelines, which will be done during the week. So if you are hanging around in these forums or you want to get some support, then please have a look at the instructions.

If you live in the south of Sweden and you are interested in the Crazyflie drop by Javaforum next Tuesday (21/5) where we will be presenting.

 

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!!

So finally it’s Monday again :-) As you might have noticed the Crazyflie got released for pre-release last week! All our code has now been pushed onto Bitbucket and our repositories can be found here. Since we did some restructuring of the code before pushing there might be some bugs that we are currently hunting. The Crazyflie is mainly a development platform where you can either add new features/hacks or improve the current features. We added a feature wishlist to the Wiki for features that we never had the time to implement and also to add new features that you suggest. So if you feel like getting you hands dirty there’s still lots of stuff to do! In order to make development easier we have:

  • Wireless Radio Bootloader: This will enable you to easily update the firmware in the Crazyflie. The bootloader cannot easily be erased without using  a JTAG so don’t worry about bricking your Crazyflie when testing new firmware
  • Crazyradio USB bootloader: The Crazyradio contains a USB bootloader for easy update of the firmware
  • Well documented: We are currently doing our best to update the documentation on the Wiki and our goal is to create a well documented platform
  • Parameter setting/getting: This is detailed a bit more here but in short it’s a framework where you can easily add parameters/variables that can be set or fetched from the client. The tab in the client where you can change PID controller parameters on the fly is implemented using the parameter framework.
  • Variable logging: This is also detailed a bit more here but in short it’s a framework where you can easily log variable values to the client. You select variables that you want to log and the rate you want to get them and the Crazyflie will automatically send you updates for these variables. The attitude indicator and roll/pitch/yaw values on the FlightTab are implemented using the logging framework.

In the upcoming week we are planning on posting a video showing some of these features.

We’re still busy with administrative stuff and preparing everything for release so sorry for the lack of tech posts. Hopefully there will be more time for those later :-)

But we did spend one night this week trying out something that we have talked about forever: Using OpenCV to auto-pilot the Crazyflie. For controlling the Crazyflie from a Python scripts it’s just a couple of lines and then you are ready to go. Add some object tracking to that and you can make an autonomous Crazyflie…or you could make a crashing one like the video below… The video is shot using a Playstation Eye lying on the floor. The camera has good potential for tracking since it’s low resolution, cheap and can do up to 120 fps. The plan is to use the size of the detection to control the thrust and the center of it to control the roll and pitch.

Unfortunately the latency was too large for doing a control loop for roll/pitch/thrust so it crashes. But hopefully in the future we, or someone in the community, will have some more time to spend on this. We think that it definitely has potential!

Part of this test was also to have another project where we use the Crazyflie Python API to make sure that it can easily be dropped into other projects.

 

Last week we received one of the new raspberry pi and we wanted to start doing something useful with it. One idea that came directly in mind was to control the copter with it. As it has 2 USB port it should be possible to use one for the gamepad and one for the Crazyradio dongle.

The Raspberry pi running Debian the operation ended up being surprisingly easy: Just apt-get install python, pygame and pyUSB and we where able to run our old script. By adding pyQT we where even able to run the GUI out of the box (it is still a bit heavy though as the GUI is not yet very optimized when receiving fast log informations). So we just made a “headless” version of the control software, launched it automatically with a udev rule when the radio is inserted and it was done!

We can power the Raspberry pi with a USB battery and we now have a small portable ground station for the Crazyflie. We have also proven that our PC software tools are easily portable to other architecture thanks to Python and all its libs. Currently the software is tested on Windows and Linux (x86 and ARM), but it should also work on MAC.

Raspberry PI controlling the Crazyflie