APM Telemetry using an Android Smartphone

3689609712?profile=original

A big enabler for UAVs going forward, especially with respect to commercialization, will be improving telemetry range. On that note, I've released my MAV Downlink Android application and associated tools today.

MAV Downlink opens up a new communication pathway for you to talk to your UAV while it is on a mission. This pathway uses an on-board Android smartphone to push MAVLink communications onto the Internet, then adds an intermediate server that hosts these communications and binds them to interested Mission Planner applications.

3689609641?profile=original

Pictured above is the general gist of the application.

I have been using it for the last few months to be able to communicate with my Sky Hunter in flight at essentially any range as long as I am at a field with good cellular service.

I know this idea isn't totally unique as there are several guides on how to enable UAV telemetry using cellular modems. To my knowledge, though, this is the first application that enables you to accomplish this easily using an old Android smartphone you probably have laying around. The big gotcha is that the smartphone must have an OTG compatible USB port. Fortunately, there are many cheap phones with these, notably the Galaxy Nexus:
http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR0.TRC0.H0.Xgalaxy+nexu&_nkw=galaxy+nexus&_sacat=0

Right now, this application requires you to run your own dedicated server to host communication between the onboard smartphone and your MAV mission planning application. It also sends MAV commands in the clear with no authentication or encryption over public wireless airwaves. As such it is only really useful for hobbyists with good knowledge of networking.

It has also been brought to my attention that the Pixhawk cannot be connected to a standard Android phone via OTG. You may be able to put together a custom powered hub that connects to the Android phone but I cannot make any gaurantees. This has been tested on APM 2.6 and 2.5 boards.

I would like to develop this application further by adding dedicated servers so that virtually no set-up is required on the end-user's side. This would also enable me to add authentication and encryption to the communications channel so people using this do not risk their UAV being hacked.. no matter how unlikely that might be.

However, it works fine for me right now. Before I put any effort or money into improving it, I wanted to gauge public interest in it. Please let me know if something like this interests you by dropping a comment below.

You can try the application now. Here is a link to the Android application:
https://play.google.com/store/apps/details?id=com.appliedanalog.uav.mavdownlink
And the users manual:
http://www.applieduas.com/mav_downlink_advanced_manual.pdf

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • BTW - one advantage I see to using this (vs a modem) is that you can run a standalone GPS tracker app at the same time, so you can find it even if your UAV's battery dies or otherwise malfunctions.

  • Kevin,


    Surprised to see you guys are using TCP over UDP for an application like this. Any reason? For something where time matters and complete data doesn't, UDP is a far better solution. 

    James,

    I think I can make that happen. Let me double check and we can work something out.


    Dan

  • I had assumed that UDP had the same restrictions as TCP with regards to cellular networks. I guess I'll double check that. Would definitely be neat if this worked without the independent server.

  • Yes i understand, but since the Android app i sending/pushing data to the LocalMavMapper, why cant it just send the data directly to Mission Planner when Mission Planner is setup to recieve at UDP ?

  • Yeah you'll need to use the LocalMavMapper program regardless. The trick to this whole thing is that cell phones can't really host TCP/UDP servers because the most cellular providers will not route external traffic to them in that way. LocalMavMapper acts as the server for both the smartphone receiving MAV messages and the Mission Planner application wishing to talk to that smartphone.

    You can run LocalMavMapper on the same computer as you are using Mission Planner, however. That should make things easier.

  • Great! But do i need to use the LocalMavMapper or can i send data to Mission Planner directly and recieve in MP at UDP ?

  • Yes, absolutely. Just enter it into the fields on the app & in Mission Planner.

  • Nice sw! But can i use a DNS name instead of the IP address? I'm using Dynamic DNS in my system.

  • Awesome, you guys are definitely taking this concept a lot further. Let me know if you need any help.

  • Developer

    Hi James,

    Cool beans!  We've been working on a similar project as part of droneshare (using our existing servers).  Later this week we should have a blog post/set of alpha tester instructions (the code is already built into Andropilot and soon Mavproxy).   Our protobuf definition/spec is here.   

This reply was deleted.