[time-nuts] TruePosition on the Arduino
kd5byb at gmail.com
Tue Jul 4 13:23:00 EDT 2017
Good afternoon all,
I've been working for a while to write my own Arduino sketch to control
and interface the TruePosition GPS units. This morning I added in logic
to allow the switching of the display pages using a push button between
Arduino Uno pin 11 and ground. (which isn't covered in the source file
comments, ooops, I need to add that)
Everything seems to be working. You can find the source code at the
link below, but you must promise not to laugh too hard at my lack-luster
programming skills...this is my first "real" Arduino program other than
the usual "hello world / blink an LED" type programs.
Plus, while various versions have been working here for a couple of
months now, your mileage may vary, etc... I've only seen it barf and
hang up once and I'm pretty sure that something conductive got dropped
onto the TruePosition board by my 11 year old son. (ooops!)
Some known issues / limitations:
0) I need to update the notes in the source to add the following:
a) the display pushbutton goes between pin 11 and ground and is
b) the Packrat documentation uses the RS232-level output and needs the
jumper on on the large header. This code uses the 3.3V level TTL serial
and you've got to remove the jumper else the program won't be able to
issue the $PROCEED command.
c) the display pushbutton cycles between three displays: the first is
a general status display with date, time, and status, the second is
satellites 0 to 3, the third is satellites 4 to 7.
1) You've got to power up the TruePosition board and wait for it to
"boot" and blink the LED before starting the Arduino up. Else you may
need to reset the Arduino after the TruePosition is booted and blinking.
2) It is targeted towards a 20 character wide, 4 lines deep LCD display
of the I2C / SPI variety. These aren't real easy to find; I made up my
own using a 20x4 LCD display and one of the conversion boards either
from Amazon or eBay, I don't recall.
I may rework the code for a 20 by 2 display as my eventual package for
this unit will be 1U which is too short for a 20 by 4 display...but a 16
by 2 display just doesn't have enough real estate IMHO.
3) It cannot command a survey. You've got to manually hook up to the
TruePosition using a computer and send the survey command via a terminal
program like Putty and let it finish before you can use my code. I'll
probably add in a survey command and monitor function but may be some
time before I do this.
4) While the program does pull in what I believe is a DOP value from
the EXTSTATUS message, it doesn't display it anywhere. I need to create
a fourth display page with DOP on it or fit it in elsewhere.
And that's about it. Suggestions to the code are welcome.
thanks much and 73,
More information about the time-nuts