Ardustation two-way telemetry for Ardupilot Mega



I've got two way telemetry working on my Ardustation, talking to the ArduPilot Mega (APM) using the standard BinComm protocol (GCS_PROTOCOL_STANDARD). So far I can edit PID values and check essential mission following data, along with the standard summary of attitude, location and heartbeat data.


This should make life a lot easier, being able to tweak the plane whilst airborne and seeing what it's up to - without being required to sit down with the laptop.


To achieve this, I've modified the code in the ArdustationM branch that Michael Smith created. Michael has written an excellent bit of code here and already had the one way telemetry showing the main status page. I've also updated it to use the APM_BinComm library, keeping it in line with the latest APM code. 


The APM code was also modified; I merged the 1.0 Beta with the relevant bits from the BinComm branch and coded up broadcasting of values and setting of PID values.


I hope to add more functionality in the future, but will wait until I have used it in the field before deciding on what features will take priority!


--- Update ---

Here's the code


Most of my additions won't work on the stock APM beta code as it doesn't receive data. Here are my additions to the APM BinComm code

GCS.h GCS_Standard.pde

Or download the whole of my directory, less your config file


--- Update 2 ---

I've now used the Ardustation in the field and it's everything I could have wanted. Had my plane flying a mission on repeat, the transmitter on my neck strap and the Ardustation to tune the PID values. No more landing to plug into the laptop. It's also great not guessing what waypoint its headed for and remembering what it's going to do next, just glance at the display!


Here's a picture of my enclosure. Not my neatest drilling, but works nicely :-)


Views: 2787

Comment by DaveyWaveyBunsenBurner on January 14, 2011 at 5:00am

In air PID tuning!


That would have saved me about 1000 takeoff and landings! :)


Very nice.

Comment by Jani Hirvinen on January 14, 2011 at 5:12am

I gotta see if we can get this working with ACM code too, it should..


Great work Colin.

Comment by Randy on January 14, 2011 at 5:19am
very impressive.

Comment by Martint on January 14, 2011 at 5:49am
Very useful information, thank you for posting!
Comment by Daniel Gru on January 14, 2011 at 6:36am

Absolutly stunning.
Now get it into the next version of APM and ACM with help of the team and everyone will be so greatful.
I imagine in flight PID change will be great for the Arducopter flyers, no more landing and connecting to a laptop...



Comment by Jani Hirvinen on January 14, 2011 at 6:50am

Daniel, we can already do all PID tuning with those knob's on radio if you have 8 channels or more in use. That's how i tune my PIDs. So you can Really tune it in flight, just by rolling your knobs :)


After you have desired results, land and check PID values and upload them as defaults...

Comment by Earl on January 14, 2011 at 4:36pm

Where is the code ?



Comment by Colin on January 14, 2011 at 5:00pm

Thanks for the positive comments guys :)


Davey Wavey, I agree, Landing, plugging into laptop etc. gets very tedious!


Jani, I will be building a quad in about a month or so and am pretty sure I'll want to make a quad specific version :-)


Earl, the code is currently sitting on my laptop. I would like to share it. Maybe an admin wouldn't mind letting me have a branch on the google code svn to upload it?


As it stands the two way stuff is only going to work with the relevant modifications to the APM code and merging in the bincomm branch. My modifications have followed the specifications laid out in the protocol definition on the wiki, so it would be nice if these could also find their way into the beta?

Comment by Mark Colwell on January 14, 2011 at 7:28pm
Thanks Colin good progress!, I have been too busy with my PC ( root virus in bios! ) I finally got it stable, I would like to test your code, I have added Sats, FixType and HDOP to IMU data stream but I am having some issues with STANDARD binary protocol, HK_GCS wont display them. maybe this is fixed now that Mike had a chance to look at it.
Comment by Colin on January 15, 2011 at 10:09am

Hey guys, I've attached the code to the post now.


Mark, that sounds good. Would be nice to be able to display some data on the GPS signal quality, rather than peering in to see if the flashing light is still flashing!


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service