figuring out the Antenna Tracker

3691139590?profile=originalNot 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.

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

Join diydrones

Email me when people reply –


  • I am just starting to set up my tracker. I have a Pixhawk and Servo City gimbal. Can anyone tell me what PID’s to start with?

  • Developer

    As a side note, I'm keen on some manufacturer producing a ready-to-use tracker based on this software.  It's likely to be a bit more expensive than building your own but it should also be much easier to setup.  If there were multiple manufacturers then the price would likely come down.

    Anyway, I've indirectly heard there is one manufacturer planning to do this but I have no details yet.  If people hear of such manufacturers and they need some technical assistance I'd be happy to help and my private company, Japan Drones might even buy a couple from them.

  • Developer

    Another thing that I think would be interesting to try is to using the Tracker with a 2.4Ghz wifi based copter like the Solo or Bebop2.  I'm pretty it would be possible using a NAVIO+ as the tracker control board with a USB wifi dongle (one of the types that allows external antennas to be attached).  The tricky bit would be allowing both the tracker and the regular controller (i.e. Solo controller) to be able to communicate with the vehicle.

  • Developer

    Ah, sorry for not posting here about the update.  Yes, as Greg says, dataflash logging is the only thing added in Tracker-0.75.I hope this logging helps with support issues because we will be able to see the user's parameters and important things like desired attitude vs actual attitude.

    I think maybe the most important thing to do next is improve the control algorithm by adding a rate controller and acceleration limits.  The control at the moment is done by comparing the desired angle (i.e. the angle to the vehicle) to the actual angle.  It then uses the PID controller to convert that angle error into a change in pwm output.

    I think instead the angle error should be converted into a desired rotation rate.  That rotation rate could be compared with the tracker's actual rotation rate (using the gyros) and the error could be put into a second PID controller to calculate the final pwm output.

    If this was done I think we'd end up with smoother movement, capable of higher speed and also more accurate.

    Another couple of things that would be good would be increasing the main loop speed and servo output speed (I think they are both 50hz at the moment) and also accounting for "body frame" vs "earth frame".  The frame issue is clear I think if you hold the tracker at a 90degree angle (ie. on it's side so that pitch and yaw are switched).  Ideally it should still be able to track the vehicle but I don't think it will.

    • Randy,

      I look forward to testing your new improvements. Can you please comment on a couple issues?

      1) What is your outlook for using a Pixhawk for the AT versus an older Arduflyer v2.5.2 controller? Will the newer releases only support a Pixhawk?

      2) When using a 900MHx telemetry link between the AT and Copter, and, a 400MHz telemetry link between the AT and GCS, do you expect proper MavLINK communications or is there still work to be done here?

      3) Lastly, I see there is an APM Tracker Forum that is much less supported than this DIY Drones thread. A few users have asked the same questions that have been answered here in this thread. What is the relation between the DIY Drones forum and the APM Forum?

      Thank you for your great work on this project and APM:Copter.

      • Developer


        1. I've thought about this a bit and I could back port these recent changes to work on the AVR CPUs if people really want.  It's extra effort for me to do that and merging back to AVR chips becomes more and more difficult as time goes by and "master" (which is what Pixhawk, NAVIO+, etc use) changes.  So in short, I can do these most recent changes but I'm not keen to do any future change for the AVR boards.

        2. That should work fine.

        3. I should probably review the APM Forum for tracker more.  That's the correct place to report support issues.  It's just about time really, I can't respond to all the support requests I receive each day even for Copter let alone copter+tracker.  I personally prefer the format of diydrones and it sends me email notifications when someone posts here so perhaps that's why I'm better about answering here.

        • I am using a APM2.5 in my tracker at the moment. I always thought it was a big advantage of the project, to be able to use old hardware, that would otherwise be collecting dust.

          Since I wanted to try the new version, I put one of my Navios in my tracker, leaving the APM in place to be able to switch back.

          Strange thing is, I use the same U-Blox 6 GPS module like with the APM2.5 before, connected to ttyUSB0, but I do not get a GPS fix.

          As soon as I connect it to the APM, there is a fix almost immediatly. I have waited for about 30min, but no luck. I once switched it back to Navio without powering down and MP showed a fix, that was somehow "degrading". It showed 5 sats, than 0, than 5 again. That went on with longer intervals of 0 sats, until the fix was completly lost.

          Does anyone have an idea what good be going on?

        • Developer

          Hi Randy,

          thanks for taking the time and fixing the tracker, really appreciated!

          I would love it if the pitch fix would go into AVR branch as i currently only have a micro apm based camera tracker, it is small and portable with purpose.

          Maybe freeze the AVR branch then and continue with Pixhawk development ?

          I will build a BBBmini based tracker soon but for now i like to use the old hardware for it.




    What changed in 0.7.5?

    Is here a change log available? I could no find it.



This reply was deleted.


Shivchand Jaysaval liked Shivchand Jaysaval's profile
Aug 25