Copter-GCS now supports MAVLink

At long last, I finally beat MAVLink into Java submission. I wasn't able to find any MAVLink bindings for Java (needed by android), so I ended up using JNI and wrote a MAVLink wrapper. It works nicely and makes using MAVLink very easy. Its available for download here. I've included both the "common" and the "pixhawk" messages.


As you see above, I've added a HUD mode.


I've uploaded the new copy of the GCS for easy download or through the Android Market (search copter-gcs). Of course the source is available through SVN

I am focused on Copters, as that is what I fly, but with MAVLink support, the copter-gcs is now also useful for ArduPilotMega. I loaded the APM code on my quad (minus the props :-) ), and was able to see / tune track just fine with it. The only thing missing is that the PID tuning widgets I have are currently only setup for the copter. The next version I expect will have the APM pids added in. For now you can just use the Parameters view to set anything you like:


When you make a change, just hit the button next to is to save it.

That's about the news for now. I will be working on Mission Planning and some clean-up next.


If anyone has any problems, let me know. Same thing if there is a feature missing (no promises though).

So far USB host mode for tablets (connect XBee directly) and Wifi links have been requested, although i'm not sure when/if they will make it in.

Views: 5521

Comment by John D. on July 10, 2011 at 7:24am
Here's a link to FTDI's PDF for adding USB serial drivers to Android. Looks complicated.
Bart, I have a very rooted and hacked Viewsonic Gtablet. Its a 10.1" screen, Tegra 2 based tablet with full size USB host. I'm not much of a coder but I'll load just about anything on this tablet to test. Let me know if I can help in any way.

Comment by Hai Tran on July 10, 2011 at 9:00am

No need to do the iPhone v Android debate, I own 4 macs (and I run Windows when I need to), so I've got the tools to write apps for iPhone or Android, unfortunately I don't know Java, and the SDK and doco for Android really sucks, which didn't make it easy for me to port my apps across.


I've just started using Corona SDK, which uses LUA as a programming language, the learning curve is quite easy, and the best part, the apps run on iPhone and Android!  Releasing my first game app next week in Apple AppStore, and will probably follow with Android release soon after.


Might go buy a Xoom tomorrow.   Copter GCS makes good excuse to get one, as I can't think of any other app I'd want to use on Android.

Comment by Bart on July 10, 2011 at 7:47pm

Hello all,


I just found a bug with the latest release where MAVLink PIDs don't save when using the PID activity. I'm fixing it, but in the mean time the Parameter mode lets you access them as well, and it works fine.


Sorry for the bug,


Comment by Jeff E on July 10, 2011 at 8:46pm

Sorry too Bart cant help test this yet as I dont have the bluetooth unit for the Xbee.

I still think you are doing great progress...

Comment by Hai Tran on July 10, 2011 at 8:55pm

What parts do I need to make a Bluetooth to Xbee adaptor?


I was thinking of using Xbee + Xtreambee + Bluetooth mate gold (

Comment by Jani Hirvinen on July 10, 2011 at 9:54pm



I was just testing that same BT Gold on APM directly and it works just fine, you need to configure your BT module first to 57k due as default it works on 115k.


I have galaxy tab and having some stability problems with current gcs. It freezes and hangs rather often but it's early software anyways.


It looks great thou.


Bart, is there some logs or other information that I could try to look and send to you to see why it crashes often on my tab??

Comment by Hai Tran on July 11, 2011 at 1:27am

Just went out an bought an Iconia A501 with 3G.  It seems like the only one with USB host port.

Copter GCS $4.79 on the Android store?

Comment by Bart on July 11, 2011 at 4:40pm

@ Hai

Check out for info on the bluetooth link.

As a note, the current version has no USB support. I've been looking into it, and it looks like it will need to be a branch from the current version, with a slightly different service for comms. I can add it in to the current app, but the libraries required for this are only available on android 2.3+, and most of the people using the software are on 2.2 (at least those whose stats are reported using the market). Unless android allows for targeting multiple versions (will look into), it will end up being a second app.



The crash report you provided (I received one) through the market is great, it showed a NULL error with the Readouts view. Those reports (whichever way you submitted it), is perfect.



There are a few reported bugs (darn), which I will get fixed ASAP. I found the trouble with the PIDs (buffer overrun on the XBee, sending 12 mavlink param_set packets is too much, so I need to slow things down a touch). I'll get the readout bug, PID bug and some hud scaling issues taken care of and send out an update. In the mean time, feel free to let me know any other bugs you find. Easiest is to report them as issues on


Sorry for the bugs, but as Jani said, its only release 2 :-)



Comment by Jeff E on July 11, 2011 at 5:34pm

Thanks Bart,


Let us know when the other app is launch on market so I can get that one.


Comment by Frank on July 11, 2011 at 5:35pm

I tried the mavlink version. I can report a bug:

hud shows reversed roll compared to other gcs, just connect apmplanner on usb and your on telemetry to show it is reversed.

graph is too close up so is not easy to see values even zooming out and I wish a selectable speed.

other than that minor things this is a wonderful app I really wish it as it is!

in the future I hope to have a drone on wifi and show camera under the hud :)

or is it other way to have video link on android? my only idea is a notebook with easycap streaming it to andoird but is not useful.

what a piece of code, compliments!



You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service