Android Ground Controller, alpha release


Hi ya'll,

So I started off by writing some software to have an arduplane fly in formation with a human piloted hang-glider.   I still plan to finish this project, but I noticed there was a lack of an Android ground controller for Mavlink/Arduplane.  Since much of the code I was writing for my formation flying project was in Scala, it was pretty easy for me to make it into a ground controller for Android.  Most of the work was in getting USB host mode to work talking to the FTDI part in the 3dr telemetry module.

I've just completed a very early alpha release.  The code is up on github.  You'll need a phone/tablet running Android 3.1 or later with USB host mode support - most 'high end' phones have this feature.  

You'll also need one of these (or similar):

The initial release just provides a basic map,mode display/control, and mavlink log capture.  This early version is up on the Google Play Store as a free application.  If you have success running it, please post here.  If you find failure and tragedy, please post a bug on github (and mention it here if you wish). 

For the latest updates on this fast changing project or to comment, please see the following thread. (No blog moderation delay)


Above is a (crummy photo) of it talking to my Bixler in my living room...

And a screenshot...


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Developer

    Earl: On a lot of those cheap tablets they don't put out power on the usb-host port.  Try putting a powered hub between the port and the 3dr module.

  • Developer

    Also, if Robert Palmer is here, you are running an old version which I specifically labelled for no one to use.  Please don't give it low reviews on the Play Store market.  grumble... ;-)

  • Developer

    Alas, the Piso doesn't have a GPS (but does look great!).  Someday I might be able to make maps work without a GPS, but it will be a while if it is in my queue.  You might try pulling the project from the github site and change AndroidManifest.xml as follows.  Add:

    <uses-feature android:name="android.hardware.location.gps" android:required="false"> 

    next to the other uses-feature lines, then build per README (when putting this developer build on you'll first need to uninstall any version from the play store).  If maps is able to work without a GPS, this tells it to not complain.

    Does the stock google maps app start on this device?  If it doesn't it would probably be a fair amount of work to get it going.

  • PS, the Pipo S2 is a GREAT 8" Android 4.1.1 tablet. At $122 with shipping, what a deal. Now to get the USB host port to work properly!


  • Tried to use with a Pipo S2 8" android 4.1.1    No go, The app wont load. My S2 has a host usb port as well as a mini usb port for the PC. I can't seem to communicate with the usb port. I have also tried USB serial monitor.apk and can't get it to load either. I want to plug my 3dr 900mhz into the S2 and use some kind of android GCS.

    I have lots of time to experiment and would be glad to help. I wrote the er9x mavelink display on the er9x tx.


  • Developer

    Okay - it is up on the play market now.  Please give it a shot... ;-)

  • Great job can't wait to try it

    Thank for your hard work

  • Developer

    Thanks for the great reaction everyone!

    Okay, a pretty good early version will be up on the market in a few hours (Google doesn't specify what the delay is).  If you'd like to help with testing, after google approves version 0.1.3 you should try downloading it here.  If you go to the Play store site now and look on the right of the screen you'll see where it says 0.1.2.  You do not want to waste your time testing that version!  Just wait for google to push out my new build.

    If you have success running it, please post here.  If you find failure and tragedy, please post a bug on github (and mention it here if you wish). 

    Release notes:

    # 0.1.3
    * Mavlink log files are now emitted to the logs directory (on Android versions this is in /sdcard/andropilot)
    * Serial port connection/disconnection should be reliable now
    * Show airplane in red if we lose heartbeats or USB connection
    * Screen rotation may still have issues
    * Next release will add: flight mode control and waypoint display

  • Thanks for sharing, I'd been experimenting with an IOIO, but this is going to be a better solution. Thanks also for the USB host adapter link, ordered and arrives Wednesday. Ill be into testing and contributing what I can...
  • I will absolutely use this! Kinda unrelated but do you think it would be possible to have the guts pulled out of a "long" rangewireless router and then mount it on a helicopter to be as access point through which it could beam down perhaps high quality video (When we start getting used to wireless transfer rates of the scale I mean) and you woulcd have your telemetry in your Android system - perhaps even on an Ubuntu system?? Heh Im not 100% learned on this subject, Was thinking that something along those lines would be a great way to RTT HD video etc. And the helicopter I am mentally fitting such a system to is a big Gasser machine, so weight is not too much of a concern! Thanks for the interesting thread :)

This reply was deleted.