NTPサーバの[LR9543]+[GPS-52]が良い感じ

アイテンドウで売ってる格安GPSモジュール[LR9543]と秋月のGPSモジュール[GPS-52]で、遊んでみた。
http://www.aitendo.co.jp/product/1152
http://akizukidenshi.com/catalog/items2.php?q=%22K-02294%22&s=score&p=1&r=1&page=

  • アイテンドウのGPSモジュール[LR9543]は
    • PPS出力がある
    • NMEAフォーマットの時刻はPPSに同期しておらず、そのままだと『正確に1秒ずれた時計』ができる。
  • 秋月のGPSモジュール[GPS-52]は
    • PPS出力が無い。
    • 時刻は正確みたい。

これら2つのモジュールを使って、

  • [LR9543]から、PPSをいただく。
  • [GPS-52]から、NMEA時刻をいただく。
  • 回路はGPS-52キット(電源部・RS232cレベル変換等)を中心に、[LR9543]用電源を追加。
bash-2.05b$ while [ 1 ] ;do clear ; date ;\
 ntpdc -nc "kerninfo" 192.168.0.103 ;\
 ntpq -np lib-3 ;\
 ntpdate -qup8 192.168.0.102 192.168.0.192 192.168.0.103 ;\
sleep 2;done

2008年 11月14日 金曜日 00時51分26秒 JST
pll offset:           2.33e-07 s
pll frequency:        -72.079 ppm
maximum error:        0.001762 s
estimated error:      6e-06 s
status:               2107  pll ppsfreq ppstime ppssignal nano
pll time constant:    4
precision:            1e-09 s
frequency tolerance:  496 ppm
pps frequency:        -72.079 ppm
pps stability:        0.123 ppm
pps jitter:           7.236e-06 s
calibration interval: 256 s
calibration cycles:   724
jitter exceeded:      7067
stability exceeded:   4
calibration errors:   27
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+127.127.20.2    .TEST.           1 l    3   16  377    0.000    0.017   0.015
o127.127.22.2    .sio0.           0 l    3   16  377    0.000    0.000   0.015
 127.127.1.1     .LOCL.           0 l    -   16    0    0.000    0.000   0.000
server 192.168.0.102, stratum 2, offset 0.000005, delay 0.02631
server 192.168.0.192, stratum 2, offset 0.000004, delay 0.02629
server 192.168.0.103, stratum 1, offset 0.000018, delay 0.02647
14 Nov 00:51:26 ntpdate[7299]: adjust time server 192.168.0.103 offset 0.000018 sec

ちなみに、上記3台のマシンは全てLibretto70 Mem:32MB,Pentium/P55C (120.27-MHz)である。

  • OS及びGPSユニット
    • 192.168.0.102:FreeBSD 5.2.1-RELEASE-p14 , GPS16-HVS (pps使用)
    • 192.168.0.192:FreeBSD 5.2.1-RELEASE-p14 , GPS18-LVC (pps使用)
    • 192.168.0.103:5.2.1-RELEASE , [LR9543]+[GPS-52] (pps使用)

で、そのときの192.168.0.103で使用した/etc/ntp.conf
>server 127.127.22.2 minpoll 4 maxpoll 4 prefer true
"true"が味噌。

% cat /etc/ntp.conf
### Local settings
driftfile /var/db/ntpd.drift
statsdir  /var/log/NTP/
#statistics loopstats clockstats peerstats rawstats 
statistics clockstats cryptostats loopstats peerstats rawstats sysstats protostats

## clock/peer/sys/sync + info/events/statistics/all
logconfig +syncall +sysall +peerall +clockall
#
restrict default
#restrict 192.168.0.0 mask 255.255.0.0 
#broadcast 192.168.0.255

#######################################
# mode bit0(+1):RMC
#      bit1(+2):GGA 
#      bit2(+4):GLL
#      bit3(+8):ZDG 
#      bit4(+16):speed 0=4800 1=9600 
# ---------------------------------------------------
# GSU-50 : Position Co.,Ltd.2003 (akizuki GPS-52 unit) Speed 9600 no pps
server  127.127.20.2 mode 18 minpoll 4 maxpoll 6 iburst prefer
# ---------------------------------------------------
# GPS9543: LEADTEK LR9543 (aitendo LR9543 unit) Speed 4800 PPS
#server  127.127.20.2 mode 2 minpoll 4 maxpoll 6 iburst prefer
# ---------------------------------------------------
# if flag2 == 0 diff +100ms 
# use PPS (ATOM pps)
fudge   127.127.20.2 time1 +1.100000      flag3 0 refid TEST stratum 1 
#fudge   127.127.20.2 time1 +1.000000     flag3 0 refid TEST stratum 1 
#fudge   127.127.20.2 time1 0.000 flag2 1 flag3 0 refid TEST stratum 1 
#fudge   127.127.20.2 time1 +0.188734             refid TEST stratum 1 
#fudge   127.127.20.2 time1 +0.190592842          refid TEST stratum 1 
# use PPS
#fudge   127.127.20.2 time1 0.000 flag2 1 flag3 1 refid TEST stratum 1 
#####################################################
## ATOM(pps0) clock stratum 0  ######################
## /dev/pps0 link to /dev/ppc0 paralel ACK input ####
# memo  flag2 ="1" not support. "0" only.
##server  127.127.22.0 minpoll 3 maxpoll 4 prefer true
##fudge   127.127.22.0 time1 -0.000000    flag3 1 refid ppc0 stratum 0
#fudge   127.127.22.0 time1 -0.178527    flag3 1 refid ppc0 stratum 0
#fudge   127.127.22.0                    flag3 1 refid ppc0 stratum 0
#fudge   127.127.22.0 time1 -0.184872    flag3 1 refid ppc0 stratum 0
#fudge   127.127.22.0                    flag3 1 refid ppc0 stratum 0
#fudge   127.127.22.0 time1 +0.190592842 flag3 1 refid ppc0 stratum 0

## ATOM(pps2) clock stratum 15 ######################
## /dev/pps2 link to /dev/cuaa0 serial DCD input ####
# memo  flag2 ="1"  = +0.100 ms
server  127.127.22.2 minpoll 4 maxpoll 4 prefer true
fudge   127.127.22.2 time1 0.000000 flag2 1 flag3 1 refid sio0 stratum 0
#####################################################
## Local Net GPS stratum 3 ##########################
# not set prefer
#server 192.168.0.192  minpoll 4 maxpoll 6 iburst
#server 192.168.0.102  minpoll 4 maxpoll 6 iburst
#####################################################
## Local clock stratum 10 ###########################
server  127.127.1.1 minpoll 4 maxpoll 6 prefer 
fudge   127.127.1.1 stratum 0
#####################################################
##### end
#####################################################