Even though controlling the Crazyflie with a PC is quite unique and permits a lot interesting things to be done, like controlling Crazyflie with a webcam or getting realtime telemetry, we have also been looking at controlling it with a, pc-free, standalone controller.
Current (unfinished) implementation of a standalone controller are using Crazyradio as a PPM to CRTP converter, a very experimental Android app, and using a raspberry pie as ground station. This week we finally managed to fly Crazyflie with an E-Sky transmitter:
The transmitter is using a nordic-semiconductor chip compatible with our radio. The protocol is also well documented by dvdouden et al. It is using a power amplifier and uses a channel hopping scheme which makes the radio link quite secure.
Code to support this has been in the repo for a couple of week but a problem was that, by default, this transmitter was mixing pitch, roll and thrust channels which made the control of our Crazyflie nearly impossible (pitch and roll was changing by increasing the thrust ….). This week-end, we discovered two switches in the battery compartment, with which you can disable the mixing, and by doing that suddenly the Crazyflie is flying! There are still some work left to make RC transmitters works as good as a gamepad but the current source code is good enough to fly. Overall we have observed that a gamepad is really ideal to fly the Crazyflie in a fast and dynamic way. By comparison RC transmitter benefit by having more precision, mostly for the altitude control, but we are not used to it and it does not feel that ‘fast’ (our opinion).
As for the pre-order production, it is still going forward as planed. Testing of the first production samples are finalized and now all the PCBs has been manufactured. The expected time of shipping is still according to the Seeedstudio Crazyflie product page.
6 comments on “PC-free Crazyflie controllers”
Regarding the mixing of channels I would assume some kind of liniar relationship beween pitch, roll and thrust. This would have been quite easy to compansate for by software, no? But ok, if there is a switch to turn the mixing off, even better :)
Shut up and take my money! Take it now””
What is the android app that you are using? Could you make the CF compatible with an existing helly control program like this
or would that have problems with copy right and stuff?
We made the Android application ourselves and the source code is available: https://bitbucket.org/bitcraze/crazyflie-android-client
However it is more a proof of concept than anything else… The copter control works but the graphical/touch interface is really bad.
Our copter requires specific code to be written to communicate with the USB
Crazyradio dongle so we cannot use an existing app out of the box, however if there are any open-source copter control app out there it would be very useful!
I have tried compiled the Android client but there seems to be no connection (no green LED) but only trigger the App to start after the USB Radio Control is plugged in (tried with Nexus 7, Galaxy Nexus, Xperia S, Galaxy Note 2), possible to upload somewhere a working binary or give a clue why my build didn’t work.
I have tested the android client on Galaxy nexus and Nexus 7 so it should work. The radio should at least blink in RED when the client is launched.
Currently, it is hardcoded to channel 107 with 250Kb datarate so your copter should be setup to this settings using the configuration block.