Some progress on the software side

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

7 comments on “Some progress on the software side

  • If I understand it, currently the idea is USB gamepad connected to a PC, which outputs on a USB radio dongle?

    And that you’ve worked on using the dongle and a RC transmitter, but that’s still in development

    I wonder, would the USB radio dongle and gamepad be able to connect to a android phone? they have microusb ports.
    It’d presumably need a custom app, but is this theoretically possible?

    If a phone could do the job of running the app instead of a PC, it’d be a lot more portable.

    Thanks, and I’m eagerly looking forward to this!

    • We have been thinking about connecting it to a phone or tablet and as we see it it should be possible if the phone/tablet can supply the radio dongle with power and work as a USB host. You probably need a rooted phone/tablet but it should be possible.

    • Actually theoretically, with the latest versions of android, rooting the tablet/phone does not event seems necessary anymore to connect and use a custom USB device like our radio dongle: http://developer.android.com/guide/topics/usb/host.html
      However we have not even started to investigate it.
      Else the radio could be connected to an ADK, it would be a bit overkill but would work.

  • This is a very exciting project.

    I was wondering:
    What frequency does the attitude observer run at?
    What is the maximum frequency that control commands be sent from the pc?

    • We run the attitude observer and the rate observer at 350 Hz for the moment. It is unnessesary to run at those rates and we can save lots of CPU cycles by decreasing it but since it has not been a problem we have not gotten around optimizing it.

      The radio is currently limited to 500 control packets/second (limited by USB) but it could handle a lot more with adjusted software/firmware.

  • Hello,

    Do you have a sale date?
    I think this micro UAV is excelent!
    I can not wait to buy it

    Seb

    • We do not have a sale date yet but we are working hard to get there. If the digital prototypes turn out to be good we have the a leed time of 5-6 weeks for some of the components and maybe another 2 weeks for setting up production test etc. so in the best of worlds we could have something ready in the end of June. Don’t get you hopes up though as you normaly should multiply this by PI to get a more realistic date…

Comments are closed.