PPS - norlab-ulaval/Norlab_wiki GitHub Wiki
A github repo with a guide for different receiver
ntpsec quick guide
Importantly:
- Connect a PPS-capable GPS receiver to one of your serial or USB ports. A random cheap consumer-grade GPS receiver won’t do; you may have to do some hunting to find a usable one. Test connection:
stty -F /dev/ttyF0 ispeed 115200 && cat </dev/ttyF0
ldattach pps /dev/ttyF0
Create symbolic links:
sudo ln -s /dev/ttyF0 /dev/gps0
sudo ln -s /dev/pps0 /dev/gpspps0
Set AppArmor policy to /usr/sbin/ntpd
sudo aa-complain /usr/sbin/ntpd
Add KERNEL=="ttyF0", SYMLINK+="gps0"
to udev rules
sudo vim /etc/udev/rules.d/80-gps-pps-custom.rules
Reboot, if this works, you should see /dev/gps0
after reboot.
# Make sure there aren't any instances of gpsd running already
sudo service gpsd stop
# stop processes that are using your device:
lsof -n | grep /dev/ttyF0
# run gpsd
sudo gpsd -n -N -D3 /dev/ttyF0
Add to /etc/ntp.conf
:
server 127.127.28.0 minpoll 4
fudge 127.127.28.0 refid GPS
server 127.127.28.1 minpoll 4 prefer
fudge 127.127.28.1 refid PPS0
TODO:
run gpsd automatically at startup /etc/default/gpsd
?
NOTE:
It takes a few minutes for the clock to synchronize nicely with the PPS, check synch with ntpq:
ntpq -p
TODO: adjust GPS offset time 1 parameter so that the PPS synch gets better... (guess: 0.910, -0.910)
More details:
Use the gpsd daemon, edit to the following: /etc/default/gpsd
- Start the gpsd daemon automatically at boot time:
START_DAEMON="true"
- Use USB hotplugging to add new USB devices automatically to the daemon:
USBAUTO="false"
- Devices gpsd should collect to at boot time. They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyF0"
- Other options you want to pass to gpsd:
GPSD_OPTIONS="-n -D3"
- Add the following to run at startup at :
/etc/rc.local
:
stty -F /dev/ttyF0 ispeed 115200
service gpsd restart
- if the gpsd daemon is working properly, run:
sudo service gpsd status
. You should see something like:
Jul 22 17:47:43 boreas gpsd[1450]: gpsd:INFO: PPS:/dev/ttyF0 Assert hooks called clock: 1626990463.000070278 real: 1626990463.000000000: accepted
- final step, run:
ntpq -p
- And check that your offset wrt PPS is less than 1 ms, then you're good to go.
Connecting GPS receiver to a computer via DB9 RS-232 port
Typical DB9 pinout for RS-232:
Reach RS/RS+ bottom connector pinout
Cable needed to connect access the PPS signal from the receivers