[amsat-bb] Non-mechanical feedback follow up

Zach Leffke zleffke at vt.edu
Fri Aug 9 05:56:32 PDT 2013

Hello again everyone,

                I have received a couple of emails off list asking about
details of how I'm planning to use the magnetometer for the azimuth
feedback.  Instead of individually replying I'm placing my response here so
everyone gets the same info (skip to the end of this long winded email for
the details).  Before I get into that I want to address Bob's (WB4APR) note
about the constant rate of these motors.  Basically, I like the idea because
of its simplicity.  That's something I hadn't considered, but will look
into.  My logic there is run my system through a few dozen trials to really
lock down the turn rate baseline.  Then all I have to do is keep track of
the amount of time and in which direction I'm telling the motors to turn,
and voila I should know the azimuth/elevation.  As Bob mentioned with the
beamwidth of these antennas that should get me close enough.


If I were only planning to use the system for tracking LEO birds at VHF/UHF
frequencies, I would probably just go with that.  However, I was slightly
understating my goals when I initially brought up this issue.  In addition
to LEO birds, I plan to also use this system for UAV tracking and High
Altitude Balloon Tracking.  I am an EE graduate student at Virginia Tech and
each semester I help out with an Undergraduate Lab with Aerospace and EE
students that design and fly a high altitude balloon (generally with APRS
tracking and some kind of camera/sensor suite payload).  One of the
professor in charge's (Dr. Dennis Sweeney, WA4LPR, some folks might know him
for his filter design work among many other things) goals is to up the data
rate in order to attempt a high speed real time data link.  So in my own
time I want to use this tracking pedestal for LEO tracking (and for my
Master's Thesis prototype), but for this HAB project, the elevation can get
quite high depending on the geometry of our chase scenario, and beamwidths
can get quite small depending on the frequency we finally choose.  In the
end it might not matter much, but when we get to that point I want to at
least have the OPTION for tight control over the pointing.  This whole thing
will likely get vehicle mounted in the bed of my pickup, and though I
haven't completely thought out the details yet, My gut is telling me the use
of a magnetometer for azimuth feedback could have a slight advantage because
as the vehicle is moving the system could automatically compensate for the
turning of the vehicle, where as a potentiometer type solution would not.
With position updates from the HAB and a local GPS in the chase vehicle,
calculation of Az/El to the target is pretty straight forward.  Combine that
with magnetometer feedback about the antennas' azimuth and elevation
feedback from an accelerometer (which should also be somewhat "self
compensating", say if the vehicle were moving up or down a hill), and I
should be able to come up with a fairly sexy tracking pedestal that
automatically compensates for the vehicle's motion to keep the antennas "on


All that being said, here is my plan for the magnetometer implementation:


I don't really have the details locked down yet, but I can give the overall
plans.  First I plan to use the HMC5883L from sparkfun.  This device is
$14.95 + Shipping and handling.  It is a 3 axis magnetometer.  When dealing
with magnetometers it is important to understand whether or not your device
is tilt compensated.  This particular device is NOT tilt compensated.  What
that means is that it must be kept oriented parallel with the Earth (within
say maybe + or - ten degrees or so).  Assuming it remains oriented properly,
the device will output (over I2C) the magnetic field strength in the X, Y,
and Z directions.  The Z direction is essentially pointed straight up at
zenith (and should remain near zero since it is orthogonal to the earth's
magnetic field).  Also assuming no other strong magnetic fields exist near
the sensor, it will detect Earth's magnetic field (the sensor just returns
the highest magnetic field for a particular direction, so if other magnetic
fields exist near the sensor, it can ruin the readings).  In order to get
the bearing, or azimuth, information one simply has to use the atan2
function with the Y and X axes, here is the code snippet from some examples
online:  heading = atan2(scaled.YAxis, scaled.XAxis).  The rest is just
calibration and making sure the heading makes sense (i.e. if the heading is
a negative number add 360 to get a 0 - 360 output).  One issue too is that
most satellite tracking programs return the TRUE heading or azimuth
(reference to the North Pole) to the spacecraft.  This magnetometer with
produce a MAGNETIC azimuth (referenced to the magnetic pole).  Thus one must
compensate for the magnetic declination of the area of operation.  The
declination can be found online for each person's individual location and
can be hard coded into the code to adjust the magnetic readout to a true


Since this device is not tilt compensated I plan to mount it on my azimuth
base on a short boom that sticks straight out in front of the antenna
assembly.  It will be center mounted on a non-conductive extension (maybe
two or three feet in front of the azimuth assembly).  My logic here is to
try to get the sensor as far away from the AC induction motors and other
metals as I can.  The AC motors will produce a strong magnetic field and if
the sensor is near them, it will distort the readings.  


Thanks again to everyone that provided feedback for me.  Below are a few
links that should help out those who want more details.  Keep in mind too
that there is a plethora of information out there on these devices
(tutorials and example code) and with the links below and some skillful
Googling, anyone can found out everything they need to make one of these


Sparkfun Link:  https://www.sparkfun.com/products/10530

Bildr Tutorial:  http://bildr.org/2012/02/hmc5883l_arduino/

K3NG's Arduino rotator control project:
(Thanks to Lizeth, N3YKF for pointing me in this direction)



-Zach, KJ4QLP


More information about the AMSAT-BB mailing list