Not many people know but we have an piece of open source software for controlling an Antenna Tracker.  It's been built by Tridge (Arduplane lead developer) for use in the outback challenge.

Sadly we have no documentation and, as far as I know, nobody except Tridge has used it.  Still given Tridge's track record on building great software I suspect it works well and if it doesn't, I'm sure we can fix it.  So to not let this piece of code go to waste, I'd like some help from people who are interested to give it a try and help me figure out how it works.

Here's the little that I know:

  • It runs on any of our supported board (APM1, APM2, PX4, Pixhawk, Flymaple and perhaps VRBrain)
  • For APM1/APM2 users building the code is as easy as opening our hacked ArduinoIDE and selecting File > SketchBook > Tools > AntennaTracker and then building in the normal way.  For PX4/Pixhawk, our autobuilder doesn't automatically build a binary but I can provide one if people are interested.
  • It can control a Pan and Tilt gimbal like this or this found on
  • It may or may not require a GPS
  • It must somehow receive vehicle position updates from the ground station which has the telemetry radio that is connected to the vehicle. Maybe through a USB cable.  Tridge probably uses the python ground station, MAVProxy, to passthrough the vehicle position data to the AT but perhaps we can get MichaelO to build out a similar feature in Mission Planner.
  • I imagine this antenna tracker could also be used to keep a camera focused on the vehicle which might be good for easing the burden on creating videos of our vehicles.

So if you want to give it a try please do and stick any findings, questions or issues below. Alternatively Issues can go into the issues list.

I'll start sticking things into the wiki as they become clear.

Views: 65705

Reply to This

Replies to This Discussion



My new HS-785HB servo came in from Servocity and I plan to remove the pot and snip the gear stop in order to convert it to a CR motor for my Yaw.  If you have time between now and this weekend to build me a modified code, I will test it on my AT. 

My pitch will remain closed loop and the Yaw as CR.


I had similar results. AT doesn't use INS features and relys only on GPS. I implemented GPS averaging to get rid of that and it works nice (assuming the tracker is not mounted on a moving vehicle). I use 5% of new location and 95% of the old one.

This effect is only visible and relevant with short distances between AT and MRC. At such distances good antenna alignment is usually not critical. The longer the distance the better alignment we get. It should start working reliably with distances greater than 30-50 meters (when sum of GPS errors on both ends is small in relation to distance between objects).

You can either wait for my fix (I will make it available via parameters in an upcoming version - I am collecting "features" for AT 1.0) or you can disconnect your GPS and set starting location via parameters. You can also disconnect your gps during operation and AT will use last known location. 

I will prepare a firmware for you. Just remember to replace the pot with a resistor divider, don't leave pot wires hanging in the air. Here is a good tutorial:

It doesn't have to be 2,2k Ohm, anything from 1K to 10K should technically work since it only provides a feedback voltage. You can also leave the pot as long as you are able to fix it at 50% range and prevent it from rotating. It is actually a nice approach, since you can use the pot to trim your servo so that it is completely still at 1500us PWM signal. In some servos (I think they were Hitec brand) it was just a matter of removing a plastic spacer that connected pot with main gear and using a tiny bit of hot glue to fix it in place.

Your HS-785HB is a 3,5 rotation servo so most likely it will not have a mechanical stop which makes it even easier to convert.

This is one of the reasons why my version of firmware uses special INITIALIZING mode - when AT is powered-on it needs time to figure out it's exact orientation. With CR servos it could result in erratic behavior, so I deliberately wait 5 seconds after setting pitch to +45 degrees to make sure, that it is at least below +90 degees. It usually takes less than 10 seconds to establish a good orientation (within +- 20 derees) and another 10-15 seconds to reduce it to +- 1 or 2 degrees.


While I wait for your new firmware, I will try your version of 0.7.2 for Pixhawk today since I have an opportunity to fly. Next week, I may switch my AT to APM v2.5.2 board and see how that goes.

Thanks for the information and firmware updates!

That sounds great.

Can you do something on the latency?

I flew about 500m away, left and right and the Traker takes long time to follow, 2-5 sec. In that time there is no video connection because the antenna not pointing to the Copter. Also the accuracy is sometimes very bad and not pointing to the Copter.

I didn't experience such problems and I will have to take a look at this. AT firmware is trying to "estimate" MAV position by taking it's ground course and speed and it may not work well with copter. I am currently in Germany and I don't have my tracker with me so I am unable to test it. I will work on that next week. Perhaps "MAVLink loop problem" has something to do with it.

Yes you are correct. I removed the gear housing to verified that there is no stops in it. I have a servo tester which I plan to connect to it prior to any mods and set the servo to null (1500) and then I will go in and remover the pot and soldier in resistor.


Another option would be to mount pot outside the casing so I can make minute adjustments to fine tune it if need be.  I will research this a bit further.


If you are not using a Pixhawk with buzzer, you may not notice if the telemetry link is intermittent. I am not sure if there is an audible on APM 2.x setups. Also, at 500m distance, are you using an RFD900 module?

Took apart my HS-785HB servo after setting 1500 uS on the servo tester and noted that I really didn't need to soldier resistors as I left the potentiometer in place after removing the bull gear inside the housing.  I ran a test with the tester in manual and confirmed I can slew it clock-wise and counter clock-wise by turning dial right and left of center point.

So tomorrow I will break down my AT and put the new CR motor in for Yaw and await the hex code for me to start testing the new configuration.

here are the .px4 and .hex files.

I am in Germany right now and I am unable to verify that firmware (I have a Pixhawk with me so I know it boots up but I cannot see it in action). Remember to set it up properly (here are some suggestions: ). You can also use my config file as a starting point. Don't hesitate to ask if something is unclear or the firmware doesn't work as it should.


Here is my config file. It is not perfect but should give you a starting point. You will of course need to change PITCH PIDs (YAW PIDs should work without much tweaking).


Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service