[time-nuts] TruePosition on the Arduino

2017-07-04 Thread Ben Hall

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 
normally open.


	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,
ben, kd5byb
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-25 Thread Tom Miller
We do not have the source code. Just two binary versions, one with the 
display and one without.


Regards


- Original Message - 
From: "EB4APL" <eb4...@gmail.com>

To: <time-nuts@febo.com>
Sent: Sunday, June 25, 2017 9:05 PM
Subject: Re: [time-nuts] TruePosition on the Arduino


Maybe I'm missing something, but Arduino programs are usually
distributed as source code. If this is the case, the I2C address of the
display should be not a problem.  If the problem is due to the display
library used, you can use another library that can be initialized with
the right address.
I'm curious about the real problem.

Regards,
Ignacio, EB4APL


El 26/06/2017 a las 2:29, Tom Miller escribió:
This is an update to discussions off list with Ben and Chris regarding 
using the two line, 16 character display with the Packrats software on the 
Arduino to control the TruePosition GPS board.


First, the ebay seller still has a few boards left and seems to take 
offers of $40 for them.


Second, the display used with the Packrats software must use the I2C 
address of 0x3F to work. The display needs to use the PCF8574AT I2C I/O 
expander chip and not the PCF8574T. The later chip addresses between 0x20 
to 0x27 and will not work with this software.


Third, I picked up some of the "A" chips on ebay and they were marked as A 
chips but addressed wrong. If you are going to change out this expander 
chip, get them from someone like Mouser.


Next step is to find a suitable housing for this assembly.

Thanks all,
Tom


- Original Message - From: "Ben Hall" <kd5...@gmail.com>
To: "Discussion of precise time and frequency measurement" 
<time-nuts@febo.com>

Sent: Tuesday, June 06, 2017 7:46 PM
Subject: [time-nuts] TruePosition on the Arduino



Good evening all,

There is a saying: "a man with one watch knows the time, a man with two 
is never sure."  Clearly, this man wasn't a timenut and didn't have GPS. 
;)


I've been working on the Arduino code for the TruePosition boards that 
quite a few of us have bought from the e-place.


It's my first real foray into both Arduino and the C language. (About a 
million years ago I was reasonably competent with FORTRAN...the 1977 
version...)  It's mostly working - I can receive and display pretty much 
everything that comes out of the unit minus a few parameters.  I can 
display it all on three pages on a 4 line by 20 character I2C display. 
Currently, the pages are selected by grounding out one of two pins, or 
having nothing grounded.  Eventually, I'm going to change this so that it 
changes display pages when a button is pressed.  I don't have lat/long 
display yet, nor can I handle doing a survey, but those are coming.


My code probably would make a real programmer vomit, but hey, it works. 
:)


Back to the man with multiple watches.  I was having a very frustrating 
issue with my TruePosition and Arduino code being one second behind my 
other sources of time.  I went round and round, trying to figure out why 
the TruePosition thru the Arduino was a second slow.  In the end, it 
turns out that it wasn't slow...it was correct...but that my other 
sources of time have errors.


I finally proved this to myself by firing up an old Trimble Lassen LP GPS 
board unit equipped with a 1PPS tick light and serial output...and it was 
clear that it matched the TruePosition after correcting for the fact that 
my TruePosition / Arduino code only updates the display when 1PPS is 
asserted high...but that the Lassen LP displays the serial message before 
it becomes valid at the next 1PPS tick.


I was slightly embarrassed...I should have known that the other sources 
of time all had sources of error beyond my control.  I should have 
trusted the TruePosition as being the purest, least complicated, and the 
path I knew the most about between GPS and my eyeballs.


So for a while...the statement was true.  With my multiple sources of 
time...I really didn't know the time.  But it was also untrue, as when I 
got agreement between two very "pure" sources of time, I knew everything 
else was wrong.  ;)


I'm getting to the point that once I've got the button logic working, 
I'll send out my source to anyone who wants to take a look at it or use 
it.  I will stipulate one condition - you can't make too much fun of how 
poorly programmed it is.  ;)


thanks much and 73,
ben, kd5byb
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts

and follow the instructions there.


___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts

and follow the instructions there.



___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 

Re: [time-nuts] TruePosition on the Arduino

2017-06-25 Thread EB4APL
Maybe I'm missing something, but Arduino programs are usually 
distributed as source code. If this is the case, the I2C address of the 
display should be not a problem.  If the problem is due to the display 
library used, you can use another library that can be initialized with 
the right address.

I'm curious about the real problem.

Regards,
Ignacio, EB4APL


El 26/06/2017 a las 2:29, Tom Miller escribió:
This is an update to discussions off list with Ben and Chris regarding 
using the two line, 16 character display with the Packrats software on 
the Arduino to control the TruePosition GPS board.


First, the ebay seller still has a few boards left and seems to take 
offers of $40 for them.


Second, the display used with the Packrats software must use the I2C 
address of 0x3F to work. The display needs to use the PCF8574AT I2C 
I/O expander chip and not the PCF8574T. The later chip addresses 
between 0x20 to 0x27 and will not work with this software.


Third, I picked up some of the "A" chips on ebay and they were marked 
as A chips but addressed wrong. If you are going to change out this 
expander chip, get them from someone like Mouser.


Next step is to find a suitable housing for this assembly.

Thanks all,
Tom


- Original Message - From: "Ben Hall" <kd5...@gmail.com>
To: "Discussion of precise time and frequency measurement" 
<time-nuts@febo.com>

Sent: Tuesday, June 06, 2017 7:46 PM
Subject: [time-nuts] TruePosition on the Arduino



Good evening all,

There is a saying: "a man with one watch knows the time, a man with 
two is never sure."  Clearly, this man wasn't a timenut and didn't 
have GPS.  ;)


I've been working on the Arduino code for the TruePosition boards 
that quite a few of us have bought from the e-place.


It's my first real foray into both Arduino and the C language. (About 
a million years ago I was reasonably competent with FORTRAN...the 
1977 version...)  It's mostly working - I can receive and display 
pretty much everything that comes out of the unit minus a few 
parameters.  I can display it all on three pages on a 4 line by 20 
character I2C display. Currently, the pages are selected by grounding 
out one of two pins, or having nothing grounded.  Eventually, I'm 
going to change this so that it changes display pages when a button 
is pressed.  I don't have lat/long display yet, nor can I handle 
doing a survey, but those are coming.


My code probably would make a real programmer vomit, but hey, it 
works. :)


Back to the man with multiple watches.  I was having a very 
frustrating issue with my TruePosition and Arduino code being one 
second behind my other sources of time.  I went round and round, 
trying to figure out why the TruePosition thru the Arduino was a 
second slow.  In the end, it turns out that it wasn't slow...it was 
correct...but that my other sources of time have errors.


I finally proved this to myself by firing up an old Trimble Lassen LP 
GPS board unit equipped with a 1PPS tick light and serial 
output...and it was clear that it matched the TruePosition after 
correcting for the fact that my TruePosition / Arduino code only 
updates the display when 1PPS is asserted high...but that the Lassen 
LP displays the serial message before it becomes valid at the next 
1PPS tick.


I was slightly embarrassed...I should have known that the other 
sources of time all had sources of error beyond my control.  I should 
have trusted the TruePosition as being the purest, least complicated, 
and the path I knew the most about between GPS and my eyeballs.


So for a while...the statement was true.  With my multiple sources of 
time...I really didn't know the time.  But it was also untrue, as 
when I got agreement between two very "pure" sources of time, I knew 
everything else was wrong.  ;)


I'm getting to the point that once I've got the button logic working, 
I'll send out my source to anyone who wants to take a look at it or 
use it.  I will stipulate one condition - you can't make too much fun 
of how poorly programmed it is.  ;)


thanks much and 73,
ben, kd5byb
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there. 


___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts

and follow the instructions there.



___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-25 Thread Tom Miller
This is an update to discussions off list with Ben and Chris regarding using 
the two line, 16 character display with the Packrats software on the Arduino 
to control the TruePosition GPS board.


First, the ebay seller still has a few boards left and seems to take offers 
of $40 for them.


Second, the display used with the Packrats software must use the I2C address 
of 0x3F to work. The display needs to use the PCF8574AT I2C I/O expander 
chip and not the PCF8574T. The later chip addresses between 0x20 to 0x27 and 
will not work with this software.


Third, I picked up some of the "A" chips on ebay and they were marked as A 
chips but addressed wrong. If you are going to change out this expander 
chip, get them from someone like Mouser.


Next step is to find a suitable housing for this assembly.

Thanks all,
Tom


- Original Message - 
From: "Ben Hall" <kd5...@gmail.com>
To: "Discussion of precise time and frequency measurement" 
<time-nuts@febo.com>

Sent: Tuesday, June 06, 2017 7:46 PM
Subject: [time-nuts] TruePosition on the Arduino



Good evening all,

There is a saying: "a man with one watch knows the time, a man with two is 
never sure."  Clearly, this man wasn't a timenut and didn't have GPS.  ;)


I've been working on the Arduino code for the TruePosition boards that 
quite a few of us have bought from the e-place.


It's my first real foray into both Arduino and the C language.  (About a 
million years ago I was reasonably competent with FORTRAN...the 1977 
version...)  It's mostly working - I can receive and display pretty much 
everything that comes out of the unit minus a few parameters.  I can 
display it all on three pages on a 4 line by 20 character I2C display. 
Currently, the pages are selected by grounding out one of two pins, or 
having nothing grounded.  Eventually, I'm going to change this so that it 
changes display pages when a button is pressed.  I don't have lat/long 
display yet, nor can I handle doing a survey, but those are coming.


My code probably would make a real programmer vomit, but hey, it works. 
:)


Back to the man with multiple watches.  I was having a very frustrating 
issue with my TruePosition and Arduino code being one second behind my 
other sources of time.  I went round and round, trying to figure out why 
the TruePosition thru the Arduino was a second slow.  In the end, it turns 
out that it wasn't slow...it was correct...but that my other sources of 
time have errors.


I finally proved this to myself by firing up an old Trimble Lassen LP GPS 
board unit equipped with a 1PPS tick light and serial output...and it was 
clear that it matched the TruePosition after correcting for the fact that 
my TruePosition / Arduino code only updates the display when 1PPS is 
asserted high...but that the Lassen LP displays the serial message before 
it becomes valid at the next 1PPS tick.


I was slightly embarrassed...I should have known that the other sources of 
time all had sources of error beyond my control.  I should have trusted 
the TruePosition as being the purest, least complicated, and the path I 
knew the most about between GPS and my eyeballs.


So for a while...the statement was true.  With my multiple sources of 
time...I really didn't know the time.  But it was also untrue, as when I 
got agreement between two very "pure" sources of time, I knew everything 
else was wrong.  ;)


I'm getting to the point that once I've got the button logic working, I'll 
send out my source to anyone who wants to take a look at it or use it.  I 
will stipulate one condition - you can't make too much fun of how poorly 
programmed it is.  ;)


thanks much and 73,
ben, kd5byb
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there. 


___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


[time-nuts] TruePosition on the Arduino

2017-06-21 Thread randy nordlund
The address on my display is 0x3F.

I have a kit that was put together by the Packrats and the display works with 
their code.


Randy

VE3AX



On Tue, Jun 20, 2017 at 6:02 PM, Tom Miller https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts>> wrote:
> Has anyone been able to get the Packrat software to work with a display? I
> have been successful getting the Arduino board to initialize the
> Trueposition board but can't get the display right.
>
> The problem seems to be getting the I2C addressing correct. There are
> several 16x2 line displays available but they address at 0x20 to 0x27 and
> 0x38 to 0x3F. Neither of these work.
>
> Since we do not have the source, is there any way to find out what address
> is in use?
>
> Regards
>
> - Original Message - From: "Gregory Beat"  icloud.com<https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts>>
> To:  febo.com<https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts>>
> Sent: Tuesday, June 06, 2017 8:44 PM
> Subject: Re: [time-nuts] TruePosition on the Arduino
>
>
>> Ben -
>> I assume that you never received the Arduino "C code"
>> written by Bruce, WA3YUE for the original project?
>>
>> Club's Powerpoint presentation indicated that source code was available.
>> http://www.packratvhf.com/techinal.htm
>>
>> Packrat GPS Project (Gary, WA2OMY; Bruce, WA3YUE; George, KA3WXV) with
>> TruePosition GPSDO and Arduino
>> by The Mt. Airy VHF Radio Club "Pack Rats" (Southampton, PA).
>> http://www.qsl.net/wa2omy/A%20Packrat%20GPS%20Receiver%20Project.pdf
>>
>> greg, w9gb
>> ==
>>>
>>> original message / digest <
>>
>> I'm getting to the point that once I've got the button logic working, I'll
>> send out my source to anyone who wants to take a look at it or use it.
>> I will stipulate one condition - you can't make too much fun of how poorly
>> programmed it is.  ;)
>> thanks much and 73,
>> ben, kd5byb
>> ==
>> Sent from iPad Air
>> ___
>> time-nuts mailing list -- time-nuts at 
>> febo.com<https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts>
>> To unsubscribe, go to
>> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
>> and follow the instructions there.
>
>
> ___
> time-nuts mailing list -- time-nuts at 
> febo.com<https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts>
> To unsubscribe, go to
> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.



--

Chris Albertson
Redondo Beach, California

___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-20 Thread Chris Albertson
Yes,   It is easy if you have an Arduino handy.  Write a scratch to
try  EVERY address one at a time.  Print the currently attempted
address top the screen

In fact there is a pre-written sketch in the IDE's I2C examples
folder.  You can run that and it will report what it finds.  It just
tries reads on every possible address.



On Tue, Jun 20, 2017 at 6:02 PM, Tom Miller <tmiller11...@verizon.net> wrote:
> Has anyone been able to get the Packrat software to work with a display? I
> have been successful getting the Arduino board to initialize the
> Trueposition board but can't get the display right.
>
> The problem seems to be getting the I2C addressing correct. There are
> several 16x2 line displays available but they address at 0x20 to 0x27 and
> 0x38 to 0x3F. Neither of these work.
>
> Since we do not have the source, is there any way to find out what address
> is in use?
>
> Regards
>
> - Original Message - From: "Gregory Beat" <w...@icloud.com>
> To: <time-nuts@febo.com>
> Sent: Tuesday, June 06, 2017 8:44 PM
> Subject: Re: [time-nuts] TruePosition on the Arduino
>
>
>> Ben -
>> I assume that you never received the Arduino "C code"
>> written by Bruce, WA3YUE for the original project?
>>
>> Club's Powerpoint presentation indicated that source code was available.
>> http://www.packratvhf.com/techinal.htm
>>
>> Packrat GPS Project (Gary, WA2OMY; Bruce, WA3YUE; George, KA3WXV) with
>> TruePosition GPSDO and Arduino
>> by The Mt. Airy VHF Radio Club "Pack Rats" (Southampton, PA).
>> http://www.qsl.net/wa2omy/A%20Packrat%20GPS%20Receiver%20Project.pdf
>>
>> greg, w9gb
>> ==
>>>
>>> original message / digest <
>>
>> I'm getting to the point that once I've got the button logic working, I'll
>> send out my source to anyone who wants to take a look at it or use it.
>> I will stipulate one condition - you can't make too much fun of how poorly
>> programmed it is.  ;)
>> thanks much and 73,
>> ben, kd5byb
>> ==
>> Sent from iPad Air
>> ___
>> time-nuts mailing list -- time-nuts@febo.com
>> To unsubscribe, go to
>> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
>> and follow the instructions there.
>
>
> ___
> time-nuts mailing list -- time-nuts@febo.com
> To unsubscribe, go to
> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.



-- 

Chris Albertson
Redondo Beach, California
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-20 Thread Tom Miller
Has anyone been able to get the Packrat software to work with a display? I 
have been successful getting the Arduino board to initialize the 
Trueposition board but can't get the display right.


The problem seems to be getting the I2C addressing correct. There are 
several 16x2 line displays available but they address at 0x20 to 0x27 and 
0x38 to 0x3F. Neither of these work.


Since we do not have the source, is there any way to find out what address 
is in use?


Regards

- Original Message - 
From: "Gregory Beat" <w...@icloud.com>

To: <time-nuts@febo.com>
Sent: Tuesday, June 06, 2017 8:44 PM
Subject: Re: [time-nuts] TruePosition on the Arduino



Ben -
I assume that you never received the Arduino "C code"
written by Bruce, WA3YUE for the original project?

Club's Powerpoint presentation indicated that source code was available.
http://www.packratvhf.com/techinal.htm

Packrat GPS Project (Gary, WA2OMY; Bruce, WA3YUE; George, KA3WXV) with 
TruePosition GPSDO and Arduino

by The Mt. Airy VHF Radio Club "Pack Rats" (Southampton, PA).
http://www.qsl.net/wa2omy/A%20Packrat%20GPS%20Receiver%20Project.pdf

greg, w9gb
==

original message / digest <
I'm getting to the point that once I've got the button logic working, I'll 
send out my source to anyone who wants to take a look at it or use it.
I will stipulate one condition - you can't make too much fun of how poorly 
programmed it is.  ;)

thanks much and 73,
ben, kd5byb
==
Sent from iPad Air
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to 
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there. 


___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


[time-nuts] TruePosition on the Arduino

2017-06-10 Thread Mark Sims
Of all the GPS devices that Lady Heather supports,  only three send the time 
code before the 1PPS.  The last byte of the time code message arrives the 
indicated number of milliseconds from the PPS pulse:

Z38xx and related devices (including Lucent KS):  -965 ms
Lucent RFTG-m: -663 ms
Trimble SV6 in TAIP mode:  -175 ms

These are typical times.  The actual times may vary depending upon the 
operating system,  serial port drivers, receiver firmware.

The Jupiter-T family of receivers output the time code 1200 msecs AFTER the 
1PPS.   They are the only receiver that I have seen that has a offset over 1 
second.  Most devices are less than 300 msecs.

--

> Digging around further...I couldn't find a single GPS module that would 
put out the timecode before the 1PPS tick.
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-08 Thread Ben Hall

Hi Mark and list,

On 6/6/2017 9:39 PM, Mark Sims wrote:

If you run it on a system with an accurately set clock,  Lady Heather
can measure the offset (and standard deviation and ADEVs)  between
the time in the receiver time code message and when the last byte of
the time code message comes in.


I was not aware of this - very good to know!  I've got two of the 
TruePosition boards.  One is being used in my Arduino programming 
adventure and the second is destined to be connected up to Lady Heather 
as another neat timepiece.  I'm not 100% sure how I'll end up doing that 
- maybe an old laptop, maybe something with an RPi.  LH worked great on 
an old laptop I had so I just may go back to that.



Most receivers are surprisingly well behaved in their message
timing... a few are not.  Only a few receivers (like the Z38xx and
RFTG-m) output the time code message before the 1PPS.


I did more work into this last night...which involved repeating my 
previous test setup comparing the TruePosition with Arduino against a 
Lassen LP and eventually the WWV dial-up telephone number.  I was back 
to being exactly one second slow again on the TruePosition versus the 
other two sources.


I started to doubt my sanity...as when I wrote my original message on 
the 6th of June, I was certain that the TruePosition was not 1 second 
slow.  One of the reasons I shave my head is so that I cannot pull my 
hair out...else I'd have been doing that the other night.


So I went back to basics:

The Lassen LP manual clearly states that it asserts 1PPS high then some 
amount of milliseconds later, puts out the time it was at that past 1PPS 
tick via serial.


One thing I'd not done on the TruePosition was to crack open the manual 
on the Furuno unit that's on-board.  You are 100% correct - the Furuno 
acts the same way - outputs the 1PPS tick *then* sends the message 
containing the time it was at the 1PPS tick.


My Arduino code reads that timecode...but doesn't display it until the 
*next* 1PPS tick so it will always be one second slow unless I 
compensate for this.  (which is easy, just add one to the seconds count)


Digging around further...I couldn't find a single GPS module that would 
put out the timecode before the 1PPS tick.  I even looked at some of the 
Ublox units we're using at work as a time source inside one of our 
projects - it has the 1PPS then sends out the time code.


I want to thank you and the other respondents here - without y'all, I'd 
never have figured this out!  I'm off work tomorrow as today is my wife 
and my 15th wedding anniversary...so I may get some time Saturday to 
continue playing with the TruePosition and the Arduino.  Once I get 
something that's halfway decent...I'll put it out for people to give it 
a whirl and tell me how crappy my programming skills are!  ;)


thanks much,
ben
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-07 Thread Hal Murray
Argh/sorry.  I fatfingered something.  Wrong list.


-- 
These are my opinions.  I hate spam.



___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-07 Thread Hal Murray

sobo...@sippysoft.com said:
> SO_BINTIME was ENOTSUPP with IPv6 from the day one.

Thanks.  Is that a literal ENOTSUPP?  Should I get an error from setsockopt?  
Or is that just shorthand for not-implemented?

Do you want a bug report?  If nothing else, the man page should be updated.

Just curious...  Why wasn't SO_BINTIME implemented for IPv6?  Since it works 
for IPv4 and SO_TIMESTAMP works for IPv4 and IPv6 I'd expect it would be easy 
to implement.

-- 
These are my opinions.  I hate spam.



___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


[time-nuts] TruePosition on the Arduino

2017-06-07 Thread Mark Sims
If you run it on a system with an accurately set clock,  Lady Heather can 
measure the offset (and standard deviation and ADEVs)  between the time in the 
receiver time code message and when the last byte of the time code message 
comes in.   It also calculates a histogram of the message offsets.   Since 
Heather does not use a 1PPS interrupt, it uses the message offset to adjust the 
receiver time code time to the displayed time (the on-screen clocks are updated 
when the last byte of the time code message comes in).

Most receivers are surprisingly well behaved in their message timing... a few 
are not.  Only a few receivers (like the Z38xx and RFTG-m) output the time code 
message before the 1PPS.  Most receivers have a message offset of around +200 
milliseconds.  The Jupiter receiver time codes are off by around 1200 
milliseconds!

I just added some code to Heather for doing an audible "tick" clock that ticks 
the second and beeps the minute (you can change that with your own sound 
files).  The tick clock uses the end-of-message offset time to make sure the 
ticks are closely aligned to the PPS time.

---

>  Calibrating your GPS pulse ambiguity is one of the all time great reasons to 
> get a
WWVB based wall clock !!!
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-06 Thread Hal Murray

kb...@n1k.org said:
> Calibrating your GPS pulse ambiguity is one of the all time great reasons to
> get a WWVB based wall clock !!!

What makes you so sure they won't have the same sort of next/previous bug?


-- 
These are my opinions.  I hate spam.



___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-06 Thread Bob kb8tq
Hi

Calibrating your GPS pulse ambiguity is one of the all time great reasons to 
get a
WWVB based wall clock !!!

Bob

> On Jun 6, 2017, at 8:38 PM, Graham / KE9H  wrote:
> 
> Ben:
> 
> Be careful.
> 
> Most GPS receivers send out the serial message after the tick, that tells
> you what the time of the tick was.
> 
> Read the manual.
> 
> If you want to drive a clock display with a GPS, you pretty much have to
> have an independent time system that advances on the tick, then validate it
> when the serial message shows up.
> 
> --- Graham / KE9H
> 
> ==
> 
> On Tue, Jun 6, 2017 at 6:46 PM, Ben Hall  wrote:
> 
>> Good evening all,
>> 
>> There is a saying: "a man with one watch knows the time, a man with two is
>> never sure."  Clearly, this man wasn't a timenut and didn't have GPS.  ;)
>> 
>> I've been working on the Arduino code for the TruePosition boards that
>> quite a few of us have bought from the e-place.
>> 
>> It's my first real foray into both Arduino and the C language.  (About a
>> million years ago I was reasonably competent with FORTRAN...the 1977
>> version...)  It's mostly working - I can receive and display pretty much
>> everything that comes out of the unit minus a few parameters.  I can
>> display it all on three pages on a 4 line by 20 character I2C display.
>> Currently, the pages are selected by grounding out one of two pins, or
>> having nothing grounded.  Eventually, I'm going to change this so that it
>> changes display pages when a button is pressed.  I don't have lat/long
>> display yet, nor can I handle doing a survey, but those are coming.
>> 
>> My code probably would make a real programmer vomit, but hey, it works.  :)
>> 
>> Back to the man with multiple watches.  I was having a very frustrating
>> issue with my TruePosition and Arduino code being one second behind my
>> other sources of time.  I went round and round, trying to figure out why
>> the TruePosition thru the Arduino was a second slow.  In the end, it turns
>> out that it wasn't slow...it was correct...but that my other sources of
>> time have errors.
>> 
>> I finally proved this to myself by firing up an old Trimble Lassen LP GPS
>> board unit equipped with a 1PPS tick light and serial output...and it was
>> clear that it matched the TruePosition after correcting for the fact that
>> my TruePosition / Arduino code only updates the display when 1PPS is
>> asserted high...but that the Lassen LP displays the serial message before
>> it becomes valid at the next 1PPS tick.
>> 
>> I was slightly embarrassed...I should have known that the other sources of
>> time all had sources of error beyond my control.  I should have trusted the
>> TruePosition as being the purest, least complicated, and the path I knew
>> the most about between GPS and my eyeballs.
>> 
>> So for a while...the statement was true.  With my multiple sources of
>> time...I really didn't know the time.  But it was also untrue, as when I
>> got agreement between two very "pure" sources of time, I knew everything
>> else was wrong.  ;)
>> 
>> I'm getting to the point that once I've got the button logic working, I'll
>> send out my source to anyone who wants to take a look at it or use it.  I
>> will stipulate one condition - you can't make too much fun of how poorly
>> programmed it is.  ;)
>> 
>> thanks much and 73,
>> ben, kd5byb
>> ___
>> time-nuts mailing list -- time-nuts@febo.com
>> To unsubscribe, go to https://www.febo.com/cgi-bin/m
>> ailman/listinfo/time-nuts
>> and follow the instructions there.
>> 
> ___
> time-nuts mailing list -- time-nuts@febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.

___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-06 Thread Gregory Beat
Ben -
I assume that you never received the Arduino "C code" 
written by Bruce, WA3YUE for the original project?

Club's Powerpoint presentation indicated that source code was available.
http://www.packratvhf.com/techinal.htm

Packrat GPS Project (Gary, WA2OMY; Bruce, WA3YUE; George, KA3WXV) with 
TruePosition GPSDO and Arduino
by The Mt. Airy VHF Radio Club "Pack Rats" (Southampton, PA).
http://www.qsl.net/wa2omy/A%20Packrat%20GPS%20Receiver%20Project.pdf

greg, w9gb
==
> original message / digest <
I'm getting to the point that once I've got the button logic working, I'll send 
out my source to anyone who wants to take a look at it or use it.  
I will stipulate one condition - you can't make too much fun of how poorly 
programmed it is.  ;)
thanks much and 73,
ben, kd5byb
==
Sent from iPad Air
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on the Arduino

2017-06-06 Thread Graham / KE9H
Ben:

Be careful.

Most GPS receivers send out the serial message after the tick, that tells
you what the time of the tick was.

Read the manual.

If you want to drive a clock display with a GPS, you pretty much have to
have an independent time system that advances on the tick, then validate it
when the serial message shows up.

--- Graham / KE9H

==

On Tue, Jun 6, 2017 at 6:46 PM, Ben Hall  wrote:

> Good evening all,
>
> There is a saying: "a man with one watch knows the time, a man with two is
> never sure."  Clearly, this man wasn't a timenut and didn't have GPS.  ;)
>
> I've been working on the Arduino code for the TruePosition boards that
> quite a few of us have bought from the e-place.
>
> It's my first real foray into both Arduino and the C language.  (About a
> million years ago I was reasonably competent with FORTRAN...the 1977
> version...)  It's mostly working - I can receive and display pretty much
> everything that comes out of the unit minus a few parameters.  I can
> display it all on three pages on a 4 line by 20 character I2C display.
> Currently, the pages are selected by grounding out one of two pins, or
> having nothing grounded.  Eventually, I'm going to change this so that it
> changes display pages when a button is pressed.  I don't have lat/long
> display yet, nor can I handle doing a survey, but those are coming.
>
> My code probably would make a real programmer vomit, but hey, it works.  :)
>
> Back to the man with multiple watches.  I was having a very frustrating
> issue with my TruePosition and Arduino code being one second behind my
> other sources of time.  I went round and round, trying to figure out why
> the TruePosition thru the Arduino was a second slow.  In the end, it turns
> out that it wasn't slow...it was correct...but that my other sources of
> time have errors.
>
> I finally proved this to myself by firing up an old Trimble Lassen LP GPS
> board unit equipped with a 1PPS tick light and serial output...and it was
> clear that it matched the TruePosition after correcting for the fact that
> my TruePosition / Arduino code only updates the display when 1PPS is
> asserted high...but that the Lassen LP displays the serial message before
> it becomes valid at the next 1PPS tick.
>
> I was slightly embarrassed...I should have known that the other sources of
> time all had sources of error beyond my control.  I should have trusted the
> TruePosition as being the purest, least complicated, and the path I knew
> the most about between GPS and my eyeballs.
>
> So for a while...the statement was true.  With my multiple sources of
> time...I really didn't know the time.  But it was also untrue, as when I
> got agreement between two very "pure" sources of time, I knew everything
> else was wrong.  ;)
>
> I'm getting to the point that once I've got the button logic working, I'll
> send out my source to anyone who wants to take a look at it or use it.  I
> will stipulate one condition - you can't make too much fun of how poorly
> programmed it is.  ;)
>
> thanks much and 73,
> ben, kd5byb
> ___
> time-nuts mailing list -- time-nuts@febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/m
> ailman/listinfo/time-nuts
> and follow the instructions there.
>
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


[time-nuts] TruePosition on the Arduino

2017-06-06 Thread Ben Hall

Good evening all,

There is a saying: "a man with one watch knows the time, a man with two 
is never sure."  Clearly, this man wasn't a timenut and didn't have GPS.  ;)


I've been working on the Arduino code for the TruePosition boards that 
quite a few of us have bought from the e-place.


It's my first real foray into both Arduino and the C language.  (About a 
million years ago I was reasonably competent with FORTRAN...the 1977 
version...)  It's mostly working - I can receive and display pretty much 
everything that comes out of the unit minus a few parameters.  I can 
display it all on three pages on a 4 line by 20 character I2C display. 
Currently, the pages are selected by grounding out one of two pins, or 
having nothing grounded.  Eventually, I'm going to change this so that 
it changes display pages when a button is pressed.  I don't have 
lat/long display yet, nor can I handle doing a survey, but those are coming.


My code probably would make a real programmer vomit, but hey, it works.  :)

Back to the man with multiple watches.  I was having a very frustrating 
issue with my TruePosition and Arduino code being one second behind my 
other sources of time.  I went round and round, trying to figure out why 
the TruePosition thru the Arduino was a second slow.  In the end, it 
turns out that it wasn't slow...it was correct...but that my other 
sources of time have errors.


I finally proved this to myself by firing up an old Trimble Lassen LP 
GPS board unit equipped with a 1PPS tick light and serial output...and 
it was clear that it matched the TruePosition after correcting for the 
fact that my TruePosition / Arduino code only updates the display when 
1PPS is asserted high...but that the Lassen LP displays the serial 
message before it becomes valid at the next 1PPS tick.


I was slightly embarrassed...I should have known that the other sources 
of time all had sources of error beyond my control.  I should have 
trusted the TruePosition as being the purest, least complicated, and the 
path I knew the most about between GPS and my eyeballs.


So for a while...the statement was true.  With my multiple sources of 
time...I really didn't know the time.  But it was also untrue, as when I 
got agreement between two very "pure" sources of time, I knew everything 
else was wrong.  ;)


I'm getting to the point that once I've got the button logic working, 
I'll send out my source to anyone who wants to take a look at it or use 
it.  I will stipulate one condition - you can't make too much fun of how 
poorly programmed it is.  ;)


thanks much and 73,
ben, kd5byb
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on an Arduino

2017-05-13 Thread jimlux

On 5/13/17 5:20 PM, Ben Hall wrote:

Hi Jim and list,

On 5/13/2017 5:19 PM, Jim Harman wrote:

I have done quite a lot of time-related work on the Arduino and here are
some suggestions:

-- Use the Arduino Leonardo or Micro board rather than the Uno. These use
the 32u4 processor rather than the Uno's 328p. The 32u4 has integrated
USB


I will look more into this...the Micro is very interesting as being a
module rather than a board like the Uno, it would be more cost-effective
to build the Micro into a project versus the Uno.


I'm a huge fan of the Teensy 3.x series from pjrc. They are Arduino IDE 
compatible, run a LOT faster, and are available with pins on 0.1" 
centers for protoboards or EZ-hooks.  Hardware UARTs, 2 16 bit ADCs with 
differential inputs that can sample together, DMA buffered serial (which 
is transparent to you, the user.. you just use the serial class..)








I assume that the USB programming port is also the serial.print output
port to the serial monitor window?  That seems to be the case, as the
technical description says:


Yes..



"Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL
serial data using theATmega32U4 hardware serial capability. Note that on
the Leonardo, the Serial class refers to USB (CDC) communication; for
TTL serial on pins 0 and 1, use the Serial1 class."


Same on the Teensy. There's typically libraries off the shelf for 
hardware UART, bit banging UARTs, etc.



___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on an Arduino

2017-05-13 Thread Ben Hall

Hi Jim and list,

On 5/13/2017 5:19 PM, Jim Harman wrote:

I have done quite a lot of time-related work on the Arduino and here are
some suggestions:

-- Use the Arduino Leonardo or Micro board rather than the Uno. These use
the 32u4 processor rather than the Uno's 328p. The 32u4 has integrated USB


I will look more into this...the Micro is very interesting as being a 
module rather than a board like the Uno, it would be more cost-effective 
to build the Micro into a project versus the Uno.


I assume that the USB programming port is also the serial.print output 
port to the serial monitor window?  That seems to be the case, as the 
technical description says:


"Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL 
serial data using theATmega32U4 hardware serial capability. Note that on 
the Leonardo, the Serial class refers to USB (CDC) communication; for 
TTL serial on pins 0 and 1, use the Serial1 class."



-- For NMEA communication, use Mikal Hart's TinyGPS++ library, available at
http://arduiniana.org/libraries/tinygpsplus/


Thank you for the link to this library.  The TruePosition units use 
their own communication method rather than NMEA, but the ability to 
convert GPS seconds into date/time is very interesting and I will look 
into this more.  :)


thanks much,
ben
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


Re: [time-nuts] TruePosition on an Arduino

2017-05-13 Thread Jim Harman
On Sat, May 13, 2017 at 3:15 PM, Ben Hall  wrote:

> I've been wanting to dive more into Arduino...so I figured I'd write my
> own interface program.  The last software class I took was FORTRAN...and
> then I did a little BASIC, so this C code stuff is all new to me and it's
> been a real learning experience.
>

I have done quite a lot of time-related work on the Arduino and here are
some suggestions:

-- Use the Arduino Leonardo or Micro board rather than the Uno. These use
the 32u4 processor rather than the Uno's 328p. The 32u4 has integrated USB
for the programming port, freeing up the hardware serial port to
communicate with a GPS without resorting to resource-intensive bit-banging
or interfering with the programming port. I prefer the Micro because its
pins are on 0.1" centers, making it compatible with a solderless breadboard.

-- For NMEA communication, use Mikal Hart's TinyGPS++ library, available at
http://arduiniana.org/libraries/tinygpsplus/
This handles all the parsing of both standard and non-standard NMEA
messages, You can use this in conjunction with the standard Time library to
convert GPS time to a unix-like date and time structure.

Contact me off-list if you want code examples.




-- 

--Jim Harman
___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


[time-nuts] TruePosition on an Arduino

2017-05-13 Thread Ben Hall

Good afternoon all,

I've not had any luck getting the Arduino source code and libraries from 
the PackRat guys.  Another listmember reported to me this morning that 
he'd tried loading the hex file, but had no luck getting it to work.


I've been wanting to dive more into Arduino...so I figured I'd write my 
own interface program.  The last software class I took was FORTRAN...and 
then I did a little BASIC, so this C code stuff is all new to me and 
it's been a real learning experience.


And I'm sure that a real program would probably look at my code and just 
shake his or her head.  :(


Thankfully...I've found some really good example code on the web.  The 
serial input engine is lifted from here pretty much intact:




And is working perfectly as best I can tell.  The serial port on the 
TruePosition is going right into the serial port (pins 1 and 2) on the 
Uno thru a resistor level-shifter on the TX port (because the arduino is 
5 volts...the trueposition is 3.3v...but the 3.3V TX is being read by 
the 5V arduino w/o any problems.)  Using the hardware port is non-ideal, 
as I've got to remove the jumpers to the TruePosition in order to upload 
code to the Arduino, which also means that I can't use the built-in 
Serial Monitor to view what my code is doing.


Thankfully...the software serial library allows you to create serial 
ports on other pins...so while the True Position is on the hardware 
serial, pin 11 is providing the debugging output.


(I may flip this around where SoftwareSerial is talking to the 
TruePositon, and the hardware serial pins get freed up)


The parsing engine is also based on JHaskell's work here:



But is heavily modified with if-then-else string compares as the parsing 
depends on what sort of message has been received.  This took a bit of 
brain work, as I couldn't get the compare function to work right at first.


Next up...I've got to figure out how to convert GPS seconds into date 
and time...then I'll move along to the display and a rudimentary menu 
system as I think one part will be time/date/status...and another page 
will be GPS satellites...


thanks much and 73,
ben, kd5byb

___
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.