Thanks again for continued support. I think I am making some headway now.
PPStest (now that I know how to read it) shows:
ok, found 1 source(s), now start fetching data...
source 0 - assert 1584283267.000003067, sequence: 90038 - clear 0.000000000, sequence: 0
source 0 - assert 1584283268.000000979, sequence: 90039 - clear 0.000000000, sequence: 0
source 0 - assert 1584283269.000002355, sequence: 90040 - clear 0.000000000, sequence: 0
source 0 - assert 1584283270.000002119, sequence: 90041 - clear 0.000000000, sequence: 0
source 0 - assert 1584283271.000003290, sequence: 90042 - clear 0.000000000, sequence: 0
source 0 - assert 1584283272.000002571, sequence: 90043 - clear 0.000000000, sequence: 0
source 0 - assert 1584283273.000000165, sequence: 90044 - clear 0.000000000, sequence: 0
Which I think is now very close to the second. Pls confirm.
1 Single Marine Hi DB GPS Antenna connected to a 1:4 GPS Splitter, connected to three separate adafruit ultimate GPS Hats with battery, connected to 3 x raspberry pi 4.
I started with the Satsignal how to, and in fact I find the NMEA Driver 20 much easier to manager than via GPSD, but thats just me. I also like the concept of minimal extra software running.
I made progress by doing the following:
Reset gps to factory defaults with the gpsinit tool, and then load the latest EPO database.
Then to redo via David Taylors technique to measure (5000 samples) of offset to determine the best time2 offset (its now +537)
Then use the gpsinit script to set system time before starting NTP, and this is where I think I saw the most gain: Like this:
gpsinit -s 115200 -i set_system_clock
You can find the gpsinit tools here: https://github.com/f5eng/mt3339-utils
My ntp.conf now looks like:
server 127.127.20.0 mode 84 minpoll 3 iburst
fudge 127.127.20.0 stratum 0 flag1 1 flag2 0 flag3 0 flag4 0 time1 0.00 time2 +0.537 refid GPS0
server tick.meraka.csir.co.za iburst noselect
server tock.meraka.csir.co.za iburst noselect
Additional nearby servers
Unfortunately the csir.co.za servers dont like my defaults and I am getting rate exceeded, so I guess I need to increase min/max poll but cant think of a sane setting to try yet.
ntpq -pn -c rv
remote refid st t when poll reach delay offset jitter
o127.127.20.0 .GPS0. 0 l 6 8 377 0.000 0.000 0.003
126.96.36.199 .GPS. 1 u 30 64 377 58.046 0.106 1.424
188.8.131.52 .GPS. 1 u 58 64 377 64.923 3.865 1.108
associd=0 status=0415 leap_none, sync_uhf_radio, 1 event, clock_sync,
version="ntpd firstname.lastname@example.org (1)", processor="armv7l",
system="Linux/4.19.97-v7l+", leap=00, stratum=1, precision=-20,
rootdelay=0.000, rootdisp=1.090, refid=GPS0,
reftime=e218bf42.5338759f Sun, Mar 15 2020 14:50:42.325,
clock=e218bf48.a8e6fa33 Sun, Mar 15 2020 14:50:48.659, peer=43510, tc=3,
mintc=3, offset=0.000456, frequency=-14.437, sys_jitter=0.002518,
clk_jitter=0.002, clk_wander=0.001, tai=37, leapsec=201701010000,
However I note root disp is still more than one. All three (plus a 4th development system on a raspi 3b+) are all showing near identical rootdisp which swings between 1.000 and 1.090ish.
Is that rootdisp acceptable?