Here is an update for the development of the Droidplanner app, the first post can be read here.
- 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!
- 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).
- Chine Serial-to-Wifi module
- 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.
- A Raspberry PI board.
- A modified WRT54GS router.
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:
- I had just started learning Java and the Android SDK, Andropilot is written in Scala. This would greatly complicate my beginner life.
- 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?