Giter Site home page Giter Site logo

chrony-rpi-gps's Introduction

chrony-rpi-gps

Chrony+gpsd ntp server on raspbian buster lite using Adafruit Ultimate GPS hat (product 2324) and Adafruit active external antenna (products 960 & 851) for NMEA time and pps

A. Apparently chrony for raspbian buster includes pps support. It works after simple apt-get install chrony (e.g. without a compile). I could never make the passthrough from gpsd to work. Got it on first try with chrony.

B. Good reference for gpsd/chrony: https://forristal.org/blog/2018/01/making-a-raspberry-pi-stratum-1-clock/

C. Good reference for getting rpi ready (mostly serial port): http://www.unixwiz.net/techtips/raspberry-pi3-gps-time.html Note that this reference uses gpsd + ntp (not chrony)

D. https://wiki.alpinelinux.org/wiki/Chrony_and_GPSD and http://robotsforroboticists.com/chrony-gps-for-time-synchronization/ are also helpful

E. Apparently kernel has or installs pps module automagically. No need to add the pps module manually.

F. install procedure (below) tested on RPI 3B+ (works). Resulting card tested on RPI 4B (works), 3B (works), and RPI zero WH (works).

Steps for headless Raspbian Buster Lite on RPI 3B+:

  1. Remove trace between pps pads on the Ultimate GPS hat. Solder a 560 ohm (or more, I'd use 1k if I had one handy but tested with 560) resistor across the pps pads (this might prevent blowing things up when both the GPS and RPI try to drive GPIO4. Put RTC battery (any CR12xx) in GPS hat. The RTC is not directly accessible, but the GPS uses it to speed up warm starts etc. Do NOT plug it into the RPI yet.

  2. Use balena etcher to write buster lite to SD card (4G or larger)

  3. Touch ssh in /boot (e.g. in ubuntu touch /media/username/boot/ssh)

  4. Copy wpa_supplicant.conf file (see example file) into /boot (https://www.raspberrypi-spy.co.uk/2017/04/manually-setting-up-pi-wifi-using-wpa_supplicant-conf/). Edit with your wifi SSID and password. You can use: wpa_passphrase YOUR_SSID YOUR_PASSWORD to generate the hashed password instead of putting it in the file in cleartext.

  5. Add dtoverlay=pi3-disable-bt at the end of /boot/config.txt

  6. Turn off audio #dtparam=audio=on# in /boot/config.txt

  7. Add dtoverlay=pps-gpio,gpiopin=4 to the end of /boot/config.txt (or gpiopin=18 if so wired)

  8. Put SD card in RPI and boot it

  9. Login over ssh: it will be ssh [email protected] if no name conflicts, otherwise find using newest dhcp lease

  10. sudo apt-get update/upgrade: may need to do sudo apt-get update --allow-releaseinfo-change

  11. sudo raspi-config:
    a. set hostname
    b. change locale to en_US.UTF-8 UTF-8
    c. set TZ to UTC
    d. turn off serial port login shell, enable serial hardware
    e. change password if desired
    f. minimize display memory to 16M since we have no display
    g. resize to fill SD card
    h. reboot

  12. sudo systemctl disable hciuart

  13. sudo apt-get install pps-tools gpsd gpsd-clients chrony

  14. Remove ntp-servers from /etc/dhcp/dhclient.conf

  15. sudo rm /etc/dhcp/dhclient-exit-hooks.d/timesyncd

  16. sudo rm /lib/dhcpcd/dhcpcd-hooks/50-ntp.conf (might not exist)

  17. sudo rm /var/lib/ntp/ntp.conf.dhcp (might not exist)

  18. Edit /etc/default/gpsd to add turn off usbauto, add serial device and option -n (see example file)

  19. Edit /etc/chrony/chrony.conf to choose ntp pool, configure initial slewing and add the GPS and PPS sources (see example file)

  20. Make sure your antenna is outside (really!), with good sky view. This will greatly speed up/make possible acquisition of a fix good enough for pps. I never saw the WAAS sats with the antenna indoors on a south-facing windowsill, and my pps came and went randomly.

  21. shutdown, power off, INSTALL GPS HAT, power on

  22. Using this approach, NMEA output will be on ttyAMA0. run gpsmon to see it (see example gpsmon output file)

  23. Verify that GPS gets a 4D fix and goes to quality 2 (meaning it is using WAAS satellites). This may take 30 or more minutes, especially the first time before the RTC is correct.

  24. after GPS hat LED flashing drops to once every 15 sec, verify pps: sudo ppstest /dev/pps0. Should get a new line every second, with incrementing sequence numbers

  25. Test chrony: run chronyc sources -v. After a few minutes, you should get something like the example sources output file

  26. Test chrony: run chronyc sourcestats -v. After a few minutes, you should get something like the example sourcestats output file

  27. From another (linux or OS X) machine, test from the command line: ntpdate -q rpiname.local

  28. Set your computer to use the rpi as its NTP server. Check that it works. (out of scope)

chrony-rpi-gps's People

Contributors

dstumbo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.