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?
Comments
@gustavo
You should use the 3DR telemetry kit with it (the Ground/USB modeule with a USB OTG cable)
@MHefny
I don't know if I understood your question. But right now the app doesn't have Bluetooth capabilities.
great work ... kindly advise if I can connect a bluetooth to the serial of ardu and connect my mobile over BT ...
@Aurelio R. Ramos
If it uses a FTDI IC you are good to go. I'm using the FTDI android library, so all FTDI devices are covered.
I wonder if it would be possible to simply support a direct serial device over a OTG USB connector so that I can plug the FTDI enabled XBEE I already use with my windows 7 PC? Forgive me if this is something that has already been covered. Thanks for your work!
If you have a GSM modem you can use the TCP option on Droidplanner.
www.youtube.com/watch?v=biF3-BoYJ5Y
But isn't using radio to wifi a big detour, with many error possibilities?
What would be really cool is a GSM modem on board the plane for telemetry.
It could also be used for transmitting low fps video.
In theory there would be NO range limitation. With enough juice you could fly across an entire continent.
I saw a video of a guy doing this experimental with an X8, working great. He had it setup with a web server with a local LAN on board the plane. Controlling waypoint flying, loiter AND pan/tilt/zoom on an on board surveillance cam. Really impressive!
All you would need is the plane, a cell phone and your software. No tx, rx, video link and other stuff.
That is my logic, and even if you were not a android developer it's easy to get started. One big problem for me is that I still haven't find a way to run Scala on Win7.
It shouldn't be too hard to do it, specially since Bart code has it already implemented. But since I don't have the necessary hardware (no Bluetooth on my Chinese tablet), someone else would be needed.