Android based GCS with Bluetooth <-> XBee bridge

img20110426235731.jpg?width=600Hello all,

When I started with my copter, I thought of making a Linux based GCS, as I don't run Windows. However, I decided that trying to duplicate all the work on the Windows GCS was counter productive. On top of that, my laptop is dying, so in the field it would be less than useful anyway.

I recently got an Android phone, in part for its programmability. Linking it up to a quad (or hexa etc.) seemed like it would be useful. Therefore, I've been working on an Android based GCS, and although by no means done, I thought I would share and maybe get some feedback on desired features.

The phone really only has WIFI and Bluetooth for connectivity, and my quad has neither of those as options. Finding a 802.11 link for on the quad proved tough, and the range on Bluetooth is not good enough for what I am looking for. To solve that I made a Bluetooth <-> XBee link: its small and just stays in my gear case while letting me use the phone at long range from the quad. When using my laptop, I can just use it's bluetooth connection and still use the standard configurator.

I needed a place for code, so if interested, its hosted at Copter-GCS Wiki. There are screenshots there showing features, but in a nutshell:

-Configure PIDs
-Calibrate Offsets and Transmitter
-Sensor graph for current outputs
-Map the quad GPS position, as well as the phone's



Like I said, its not done, and has some things to work out. Once I do I will make the code available (if there is interest). There are a bunch of things I want to try with this, like GPS following etc, but this seemed useful for in the field calibration/testing. When Arducopter 2.0 comes out, I will update so that the MAVLink protocol is compatible.



E-mail me when people leave their comments –

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

Join diydrones


  • 57600, not sure about the timeout on the xbee, whatever is the default I suppose.

  • What Baud rate are the XBees and Bluesmirf Running? Also, what do you have your packetization timeout set on the XBee radio?  Thanks for the info.

  • For those of you interested, I've released a new version with MAVLink support and a HUD. Because of MAVLink, you can now also use if for your planes.

    New post at



  • yes I tried the mavlink, I wait for new release to support it, I let you know fi it works on my phone. How many are using that app actually? just curious. is wonderful.
  • @Frank

    You mention the planner, so am I correct in assuming that you are attempting to use MAVLink (AC2)? The current version doesn't have mavlink support yet, just AC1, I should be able to release that on the weekend.

    The app doesn't care about or set any baud rate, so that should be fine.

    There is a bug in the current version where the wrong protocol would crash the app after receiving 1000 bytes.

    If my assumption is wrong, let me know and we'll figure out what's going on.
  • I downloaded the apk and installed it. it connects to bluetooth (I have bluetooth directly hooked to APM and planner works with that). unfortunately it does not show data. is it a serial baudrate problem? my bluetooth module accept any baud but is fed with 115200 from apm (I changed that). app crashes easily, I'm on lg optimus one. this app is useful even in short range to tune pids, really wish to see it working.
  • hey bart find me on the chat, I treid but you don't replay, in the main blog there are instruction on how to
  • If you already have the sdk, and are comfortable, then just get the googlemaps api key, download the code from the SVN, and compile, as its not very hard. However, I figure not everyone is at that stage, and for that reason it seems the Market may be a simpler way to go.

    Baud rate is selectable, but it depends on which code you are running. For me, on the ardupirate version, its a compile flag. I'm not sure about other versions. Check out as a start, or look into the config files.

  • so is the telemetry baud rate of apm selectable? I found no instructions on that. frsky protocol is a pain but I have the subroutine for arduino already working without problems so..
  • @bart

    what is the problem in publicly give the apk? I have the sdk installed for debug purposes, is it difficult to compile the apk by myself? I'm interested in your opinion about apk publishing because I will make some application for android one day or the other. Thanks


This reply was deleted.