The timing of this is poor, but I figured people might want to try an alternative to the quickly developing Andropilot.  I'd like to release what I have been working on, just to get feedback and bug reports.

The development of Copter-GCS stalled quite some time ago, but I recently picked up the source and started fixing bugs and adding features.  The app still has some quirks, and the UI is pretty terrible, but the function is there:

It includes:

-A full Heads Up Display

-Mission planning, with all commands and parameters available

-Follow-Me with offset mode, Guided Mode flight

-a Command Line terminal

-built for Android 2.2 and up

-full parameter editing

-works for Arduplane and Arducopter

-text to speach announces mode changes and waypoints reached


The included mission planner needs some instructions for use. All possible options are available, so it may be a bit dangerous if you don't use them correctly.


-to set a waypoint, long press in the map view, or use the "add waypoint" button in the list view menu.

-waypoint 0 is the uav's home location. It is important to keep the elevation frame as "Mav_frame_global" this means you are using actual ground elevation

-this app will automatically set the ground elevation (from Google's API) which is why it may pause for a few seconds when the first waypoint is added.

-when you add additional waypoints, the default frame is "mav_frame_global_relative_alt", which is an altitude relative to the home elevation, which is 75 meters by default.

-you can add as many waypoints as you like, then go to the list view to edit them, change then to do_jump or whatever, add in the parameters, etc. Then go back to the map and Save to UAV. I would suggest after you get confirmation, you Load from UAV to check that everyhting is correct

-All mission commands available to Mavlink have been included in this app, but there are some options that have not been implemented by Ardupilot or Arducopter.  Not all waypoint types will work, for example, DO_SET_RELAY doesn't work for APM2 UAVs.










The app connects to your telemetry with a bluetooth to XBee/3DR radio bridge:

APM<-->XBee/3DR<------------------------->XBee/3DR<-->Bluetooth<----------->Android Phone/Tablet

The bridge consists of an XBee or 3DR radio, and a Bluetooth radio, connected by serial port. There are expensive solutions for this, but I have made a inexpensive bluetooth module that includes a power regulator, a bluetooth radio, and a plug for my xbee.  If anyone is interested, I can detail the build process, and/or offer a hardware kit (with the smd bluetooth chip already soldered). The good thing about this set up, as opposed to a usb link to the radio, is (obviously) it is wire-free, and it is possible to have a stationary antenna, and even add in antenna tracking, and it is easily switched to link with a bluetooth enabled laptop..

According to [Pieter], this [DealExtreme Link] ($8.20 w/ free shipping to USA) works almost out of the box.  Set it to 57000 baud by connecting it to your computer with an FDTI cable, RX to TX, TX to RX, power and ground.  Open your serial terminal (I use RealTerm) with 9600 baud. Make sure LED on module is blinking (DON'T pair it with anything yet) Type in transmit field AT+BAUD7 and hit send (UPPER case letters or it wont work). You should get a OK response indicating that it worked.  You'll have to power cycle the bluetooth before the change takes effect.  Then pair with your phone.

Connect to a XBee adapter like this:

Another connection option is to connect the bluetooth directly to the APM telemetry port.  Remember the bluetooth range is short, so you won't be able to control it in the air, but you can set missions and tune param while on the ground.  Instructions from Ioan:

Cheap Bluetooth serial module (CBSM):

CBSM VCC -> APM Telemetry VCC

CBSM GND -> APM Telemetry GND

CBSM TX -> APM Telemetry RX

CBSM RX -> APM Telemetry TX

and then the phone connects directly to the APM's bluetooth adapter: 

Phone <----> APM + Bluetooth

If anyone wants to test, please remember that it is still BETA software, so there are certainly bugs.  


Also, feel free to make suggestions and feature requests....

This community has been very helpful and supportive, so I feel bad requesting donations, but I have put lots of time into this application, and I'm sure Bart has as well.  If you want to buy me a beer (or a PX4), you can donate whatever you like here: PAYPAL




























































Confirmed Bugs:
-crashes without internet connection

-flight modes on arducopter do not show correctly

-auto rotation while in MAV_CMD list crashes app


Feature Suggestions:
-connect to xbee/3dr/APM2 over usb

-keep screen on (added)


Views: 22480

Reply to This

Replies to This Discussion

Thank you.

- The download link does not work.

Sorry, I was fixing something so I took it down for a should work now.

It looks like that will work, but I'm not positive. The spec sheet says it uses 3.3v, which is compatible with xbee, but you would have to figure out how to change the baud rate to 57000. I used the roving network serial Bluetooth 2.0 chip Sparkfun link.

I've got some details on my Bluetooth bridge here, Buildlog, but be aware that your setup may be different depending on what Bluetooth module you use.  All you really need is a Bluetooth Serial module, that operates at 3.3 volts.  Attach the RX of the bluetooth to the TX of the XBee, and the bluetooth TX to RX of XBee.  Attach power and ground to both.  I use a spare 3c Lipo, and made a 3.3v power regulator circuit, which makes it easy to swap out in the field.  I might be persuaded to produce a kit for the bridge if people are interested.

What is a XBee/3DR radio bridge, can one buy it or do you have to build one? I have one of these: cable

Cool!  Could I add your great HUD code to Andropilot?  Is there a github site?

there are some problem if there is no internet access.

This APK will crash. You can have a try catch exception to handle this issues.

/AudioPolicyManagerALSA( 199): setOutputDevice() prevDevice 0002
V/AudioPolicyManagerALSA( 199): getDeviceForStrategy() STRATEGY_MEDIA
V/AudioPolicyManagerALSA( 199): getDeviceForStrategy() STRATEGY_MEDIA
V/AudioPolicyManagerALSA( 199): getDeviceForStrategy() STRATEGY_MEDIA
V/AudioPolicyManagerALSA( 199): getDeviceForStrategy() STRATEGY_MEDIA
V/AudioPolicyManagerALSA( 199): getDeviceForStrategy() STRATEGY_MEDIA
V/AudioPolicyManagerALSA( 199): setOutputDevice() setting same device 0002 or null device for output 2
D/StatusBarIconView( 3937): onDraw(), visible: true, mSlot: com.bvcode.ncopter/0x7f050009
D/PowerManagerService( 624): releaseWakeLock flags=0x1 tag=RingtonePlayer
W/System.err(31379): Unable to resolve host "": No address associated with hostname
W/System.err(31379): at
W/System.err(31379): at
W/System.err(31379): at

take it from GCS-copter as I did

phone bluetooth <------> bluetooth + APM would work. You just have to attach a serial Bluetooth to the telemetry port on the apm, and remember to match the voltage output. The apm operates at 5v.
You linked to a USB cable. You should use Andropilot if you want to attach a radio over USB. This app only works with Bluetooth.

There is no off-the-shelf Bluetooth to XBee bridge, so you need to make one.

thx - will do!

I wouldn't mind collaborating on your project, but your build environment (and scala) looks like a pain in the a** to set up!

Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2017   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service