Arthur Benemann's Posts (29)

Sort by

[Update] DroidPlanner v0.7.5

I added some neat features on DroidPlanner, so I'm posting an update. The new app (v0.7.5) is on Google Play.


The new version has the following updates ( v0.7.5 over v0.7.0):

  • Notifications using Text To speech, which are very helpful since you don't have to look at the screen. There are notifications for things like: Battery discharge, flight modes changes, GPS lock, waypoints...
  • Logging files are now compatible with Mission Planner, which means you have all the information from the telemetry for a post-flight analysis.
  • Improvements to the HUD layout, including new information like Battery capacity.

  • Fixed some bugs on the RC screen, and makes the virtual sticks work more similar to a real TX

Tablet Mount

As you may have noticed on the above picture I made a tablet mount on my TX. It was easy since I already had the tablet car/mount, so just a way to fix it to the radio was needed (done by an aluminum bar). A small modification to the TX was needed, but it was worth the effort. The 3DR telemetry dongle is held in the tablet using Velcro. Here is a picture from another angle.


This makes DroidPlanner a useful tool when flying with Ardupilot  especially with the voice notifications. On the top picture you can see a rotatory switch a had added to the radio for the Mode channel, it was a pain to keep track of what position mapped to which mode.

And as always if you want to help consider donating for the project by buying this app, joining the development team, or reporting a issue/bug/improvement on GitHub. For more information I suggest the DroidPlanner Wiki page. Or older posts on DiyDrones.

Read more…

[Update] DroidPlanner v0.7.0

Just a quick update on DroidPlanner. The new app (v0.7.0) will be on Google Play shortly.


The new version has the following updates ( v0.7.0 over v0.5.0):

  • More compatibility with ArduCopter. Like Correct mode selection, an armed/disarmed indicator.
  • More indicators on the HUD like battery voltage and current, GPS fix (with number of visible satellites)
  • HUD layout improvements to better fit more screen sizes and densities.
  • New plane and drone icon (thanks Jared)
  • Code restructure, which improves the app navigation and fix some bugs.

For more information I suggest the DroidPlanner Wiki page. Or older posts on DiyDrones.

Thanks everyone for their support. And as always if you want to help consider donating for the project by buying this app, joining the development team, or reporting a issue/bug/improvement on GitHub.

PS: If someone don't want me to post this updates on DiyDrones please tell me.

Read more…

SmartAP controlled by DroidPlanner

Here is a video of user Kirill controlling a quad (which uses SmartAP autopilot) using a tablet running Droidplanner.


He is using his own Autopilot called SmartAP


For the telemetry link there is only a WiFly module on the quad ( he is using the wire antenna module, but I strongly recommend the SMA type). Android tablet works in Router mode and WiFly is connected to it as a client.



The app is DroidPlanner, and can be downloaded on google play. For more info you can check the following blog posts:


And the github site.


The range is about 100m with the WiFly with wire antenna. But user Rana  seams to be having good results using a RF amplifier to extend that range.



I would like to thank's to Kirill and Rana for their support.

PS: Be careful if you are testing the app since it is in development.

Read more…

Now DroidPlanner has USB support for the 3DR telemetry board. The new app (v0.5.0) will be on Google Play shortly.


To use the app just install via Google Play, or the attached APK file (if Google Play has not updated yet). And connect the 3DRobotics telemetry module to your device. Open the app and click on Connect. You may receive a notification to enable access to the USB device from android, I this case just press OK.

Here are some pictures of what is needed:


  • USB OTG cable


Users utilizing the TCP connection will need to access their settings and change the connection type to TCP, USB is the apps default now.

As always if you want to help consider donating for the project by buying this app, joining the development team, or reporting a issue/bug/improvement on GitHub.

Read more…

I added RC control  via telemetry link to DroidPlanner, the new app (V0.4.0) will be on Google Play shortly.


First let me say that this isn't a replacement for your RC transmitter (at least for now), always keep your RC tx nearby. I want to use this to guide a plane in FBW mode, so the sensibility and latency of the telemetry links isn't so critical.

It is responsive but the touch screen is a bad interface for the user. Even using a mouse for control is better and gives a lower latency. I was planning to add support for USB Joysticks, but none of the crappy game-pads I had is recognized as an InputDevice by the Android OS. As soon as I find a supported Joystick I will implement it.

The setup used is this:

  • APM2.5
  • Chinese tablet running DroidPlanner
  • 3DRobotics telemetry modules, default settings (56k serial, 64k air)
  • EthernetGCS prototype.
  • A couple of servos
  • Dlink DI-524 WiFi router for the local network



Here is a video showing the delay caused by the telemetry and application, it isn't larger than MP on the same setup.


If you missed the last post, here is a video of Droidplanner doing an entire mission/planning:


And here is a picture of the current state of the EthernetGCS prototype (the final board will be 70x20mm, without the antenna):



Just a tip from diydrones user Rana:

The WiFly module from spark-fun works with the DroidPlanner App, and is a very simple setup since it plugs on a Xbee board. The module and be connected to the APM and be received by DroidPlanner trough a WiFi router or directly in adhoc mod (but adhoc this isn't tested yet).



I would like to thanks Craig from 3DRobotics for his support, and all the beta testers for their feedback. As always if you want to help consider donating for the project by buying this app, joining the development team, or reporting a issue/bug/improvement on GitHub.

For those who can't wait the update on Google Play I attached DroidPlanner_v0.4.0.apk.

Read more…



Here is another update on the development of the DroidPlanner Android GCS. To download the app go to Google Play, and consider donating to the project by purchasing the donation app.

I'm developing the app to behave very much like Mission Planner, but only with the functions needed on the field. Some of the improvements are:

  • A HUD that mimics Mission Planner, with easy to read information. Data like current and target altitude, curent and target Ground Speed (and Air Speed), heading, flight mode, distance to next waypoint, next waypoint, roll and pitch.
  • A flight map with the drone position (rotation and flight path included), current mission waypoints.
  • Guided mode by long clicking a position on the map.
  • Menu to change the current flight mode and waypoint.
  • Offline maps - Loaded from tiles saved on the SDcard
  • Publishing the app on Google Play, for an easier installation and update.
  • Clean-up of most of the code.


I'm doing the development with the help of HAL simulation in X-plane, that helps to generate a simple interface to use in the field (since I'm always testing with a plane in simulated flight and the APM board). I haven't done any field test's since I'm waiting for my RF modules arrive from 3DRobotics. 


One point I would like to share is that I can fly the PT60 from X-plane using only the information from the Tablet, and in manual mode (but since there isn't the latency of the RF link this my not be possible in real life).



I haven't used it in the field, so be careful if you want to try that ( and please share the results). I'm posting the current state of the app to have some feedback (and hopefully someone interest in to helping me).

If you find some bug or have a idea for improvement add it to the Issue list on github. And if you want to help the code is on GitHub, and has a very simple build process ( Everything is in Java and compiles with the standard Android SDK).


To test the app you need TCP access to the telemetry stream, take a look here to see how to do that.


Obs: I'm using some of the Mission Planner Icons, if the developers have a problem with this contact me and I'll change them.

Read more…

Here is an update for the development of the Droidplanner app, the first post can be read here.

What I have done so far is:3689504703?profile=original

  • Auto-waypoint generation (hatch filling) just like Mission Planner. 
  • Codded a MAVlink v1.0 parser in Java, including a python script for the MAVlink generator to generate the necessary Java classes.
  • TCP communication, all handled in an android service with the MAVlink packets being delivered to the U.I. via messages. (This structure is based on Bart's code). The entire communication is logged to a *.tlog file on the SD-card.
  • HUD screen, just added the HUD designed by Bart.


  • Fight Data screen with the current GPS position and heading of the drone overlayed in a map (the drone rotates). (I hope the designer of the icons on Mission Planner doesn't complain that i used them, where else would I find such nice graphics)


  • Waypoint sending and receiving to the APM board (by the way i use a APM1 board)


How to test it

  • First download the app from DroidPlanner_v0.2.apk. Now you should be able to use all functions that don't require communication to a APM board.
  • To setup communication a Serial-to-TCP re-director is necessary, I'm using Pira CZ Remote COM (on Win7) with the following configuration. (Just set COM3 to the serial port of the APM board). When done, click on Run!3689504451?profile=original
  • Now on the app go to Menu->Settings, and set the Server IP (the IP of the computer witch has the board connected)
  • Use the connect button on any of the screens and you should receive the MAVlink data. (I suggest using the terminal screen since it show the last received packet).
  • Other option is to use the SILT simulator. And to test the TCP connection first with Mission Planner.

Note: The app is in development, and I haven't yet tested it on the field. I take no responsibility from any damage.

I like the idea of WiFi because it's a wireless connection to a tablet (and available on all android devices), all that is needed is a WiFi router (really cheap these days, and could be used for other purposes in the field) and a Serial-TCP bridge. This adds the possibility of using multiple GCS on the network.

Other options for the Serial-to-TCP bridge are (I have not tested any of these yet):

  • Chinese Serial-to-TCP bridge from ebay ($20).m6JlWqwb4FzxPJKdp-yP-6Q.jpg
  • Chine Serial-to-Wifi modulemVDDHHw1LsrYqx_VqVdYbew.jpg
  • Custom board (really DIY stuff, but it was a nice project), with could be designed to include servo outputs to control a tracking antenna. If there is interest i could explore this possibility.FN2TXOBGJQE9KMQ.LARGE.jpg?width=250
  • A Raspberry PI board.
  • A modified WRT54GS router.WRT54G.jpg?width=250

How to Collaborate:

  • Download the source code from GitHub. (I changed it to it's own repository, to avoid messing up with my ardupilot repo, but in the process I lost the commit history)
  • Read the read-me on the project folder, it's really simple to start developing (Just importing the project to eclipse basically).
  • Chose something to fix or improve and do it.


The big question!

When I started this project there was no other active project on DiyDrones for developing a Android GCS. There was Bart copter-gcs, but since there was no more support (and because I don't have Bluetooth on my tablet, what was necessary) I decided to start codding a app. (even without much knowledge of Java).

Soon after my release, Kevin Hester released an app he was developing: Andropilot. Thanks to his amazing codding the app is great.

I keep developing my app for two reasons:

  1. I had just started learning Java and the Android SDK, Andropilot is written in Scala. This would greatly complicate my beginner life.
  2. I wanted to keep the project in a state I could support it all. And that it could be easily maintained by others, in the hope it could join the DiyDrones codebase. (Currently all that is needed to develop is the android SDK)

So my big question is in fact two:

  • What language is easier to be maintained for this community?
  • Should I drop DroidPlanner, and start developing with Kevin?
Read more…

Hello everyone,

I'm starting a new project branch for the ArduPilot, and I hope it will thrive. For an experiment run the DroidPlannerv0.1b.apk file on an Android Tablet (needs android v4) . Here it's a mere screenshot:

I know this it's not the first phone/tablet GCS to show up on this community (for example Bart copter-gcs, this closed-source copy, the Apple GCS by  Zachary), but I'm thinking in a different approach. This is what I want to do:

  1. Develop a GCS for android devices, mainly to setup missions before flights.
  2. And to analyze logs on the field afterward flights.
  3. Increase the App to add in flight telemetry.
  4. And PID adjustment controls.
  5. Keep supporting the system.
  6. Make this easy to use and functional, so that you won't need to turn on a computer to fly.

Some great things are helping on this project:

  • Google Maps Android API v2 - Which makes using Google maps in android applications more easily, and a lot faster. I also should point out that there is a nice cache function that makes it work offline (to some extent of course). But there is also the option of using a custom source of imagery.
  • Cheap Android Tablets with USB host capability's.


Before getting into how I think this should evolve let me show to you what I have already done. Bellow is a screenshot of the home screen where the mission planning is made. On the left there is a list of waypoints altitudes, on the center a map with the home position. On the top left a menu to change the screen and on the right some commands relative to this screen.


On the next picture there are show some of the actions on the menu, and more waypoints where added (with a different altitude). Using the "open file" action to open a real flight get's us back to the first picture in the post. (Files are loaded from a folder named waypoints on the sdcard, you can copy files generated with mission planner to this folder)


Edit: I added one more screen to the DroidPlanner App, is the Ground Control Point (GCP) screen. It's function is aid in the positioning of control points on the field for photogrammetry applications.

The operation is simple:

  1. Load a KMZ or KML file from Google Earth with Placemarks where the control points should be.
  2. Lockup your location at the blue dot.
  3. Go to a GCP location at a Red dot
  4. Drop a GCP marker on the ground
  5. Click on the red dot of the GCP to turn it blue, to show that that place has been marked.
  6. If there are more red GCP then go back to step 2.

Here is a screenshot of the GCP screen with a KMZ file just loaded.


And this is after some GCP have been placed on the field and have been marked;


How it think it should evolve:

The part I'm procrastinating is the communication interface (mainly because Bart has made it already). I want to implement first a wifi-UDP communication system redirected by some main GCS, this way the development will be easier (the USB port will be free for the programmer) and a nice mobile GCS will be left behind. Next the USB-serial-Xbee communication, I have some working demos to receive data from the serial port but these need more study.

How to develop:

First get a clone from my branch "DroidPlanner_Stable" at this link. Next download the ADT Bundle for the google SDK and eclipse. Download and import the Google Play library into Eclipse as explained here. Now you should be able to import the DroidPlanner project/compile/ and run on a android device (needs Android v4).

Edit: About the USB connection to 3DR radios, some tablets have USB host capabilities and the drivers needed to communicate to a FTDI CDC IC.This means the device can supply power via USB and Acess USB devices, for me all it takes is an USB microB to USB type A cable (like the one in the picture).


To decrease the doubts about this here is a screenshot of my tablet connected to an APM1 board accessing the APM terminal. I used a terminal app called "Android USB Serial Monitor".


As I pointed out at the start there is this fileDroidPlannerv0.1b.apk, that can be run on a android v4 phone or tablet.

Edit: I only have one Chinese 7 inch Tablet, so I don't know how it will behave on other devices but it's worth a try. Some has run the App on a Nexus7. I had some doubts because of the API key need to access Google maps data was a debug one.

About android v2.x.x devices:

Edit: There seams to be a lot of questions about v2 android devices, these will not be supported. At least not on the initial releases. Because with android 2.X there would be some problems with the Google Maps API v2, and the communication drivers (since USB host mode is supported only on version>v3 devices). I know it would be great to support everyone but that is a lot of work. I think at least for the start just focus on android 3.1 or higher. this way we can use the latest version of the maps API and have USB support.

And an android v4 Tablet is very cheap now, and that's what I think should be targeted.

Any questions or suggestions post bellow. Any problems downloading or compiling the source contact me with a message on this post.



Arthur Benemann

Read more…