RPIGPS Bookworm

Z Poznámkový blok
Verze z 9. 3. 2024, 22:40, kterou vytvořil Tydyt (diskuse | příspěvky) (Instalace Chrony)
Přejít na: navigace, hledání

Nová verze Raspberry a Debianu přináší také jiný způsob instalace.

Úvod

Po vytvoření image si nastavíme obvyklé rozhraní. Pozor, prvni odstavec je fakt jen pro mne ...

sudo su root
apt install -y mc
cd /root
sed -i 's/#alias ll=/alias ll=/' .bashrc
sed -i 's/#alias la=/alias la=/' .bashrc
cd /home/tydyt
sed -i 's/#alias ll=/alias ll=/' .bashrc
sed -i 's/#alias la=/alias la=/' .bashrc
sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/' .bashrc
exit

Následně provedeme upgrade celé distribuce:

sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get upgrade -y && sudo apt autoremove -y

sudo rpi-update

Nastavení COM

Pokud budeme GPS přijímač připojovat přes sériové rozhraní Raspberry (nikoliv přes USB), je potřeba z něj odpojit konzoli a nechat aktivoní sériový port. To provedeme pomocí konfiguraččního nástroje pro Raspberry.

sudo raspi-config

Následné volíme:

3 Interface Options    Configure connections to peripherals
I5 Serial Port Enable/disable shell messages on the serial connection

Would you like a login shell to be accessible over serial?  <No>
Would you like the serial port hardware to be enabled?      <Yes>

Nakonec provedeme reboot, aby se změna nastavení sériového portu projevila.

Nastaveni PPS

Pro funkci PPS musíme vyčlenít jeden pin GPIO,

sudo bash -c "echo '# Set PPS on GPIN' >> /boot/firmware/config.txt"
sudo bash -c "echo 'dtoverlay=pps-gpio,gpiopin=4' >> /boot/firmware/config.txt"

a přidat modul pps.

sudo bash -c "echo 'pps-gpio' >> /etc/modules"

Pro aplikování opět provést restart.

Zapojení

Raspberry-gps.png

Ověření GPS

Před pokračováním je dobré se přesvědčit že modul GPS má dostatek dat ze satelitů a že je komunikace přes sériový port v pořádku. U některých modelů je dostatek dat signalizován led "Fix" na modulu:

  • Bliká v intervalu 1s - No Fix (nedostatek dat)
  • Blikne jednou za 10s - OK Fix

Je možné,že bude nutné přijímač GPS dát blíže k oknu, nebo připojit externí anténu. Pak můžeme pokračovat v ověření "surových" dat z přijímače přímo ze sériového portu:

cat /dev/serial0

Následně by se nám měli zobrazit "surová" data, například

$GPGGA,193338.000,4909.7635,N,01643.8563,E,1,10,0.87,221.4,M,43.4,M,,*6C
$GPGSA,A,3,03,11,31,22,01,17,09,14,06,23,,,1.57,0.87,1.30*01
$GPRMC,193338.000,A,4909.7635,N,01643.8563,E,0.21,357.98,220717,,,A*64
$GPZDA,193338.000,22,07,2017,,*56
$GPGGA,193339.000,4909.7635,N,01643.8563,E,1,10,0.87,221.4,M,43.4,M,,*6D
$GPGSA,A,3,03,11,31,22,01,17,09,14,06,23,,,1.57,0.87,1.30*01
$GPRMC,193339.000,A,4909.7635,N,01643.8563,E,0.11,57.42,220717,,,A*52

Pokud tomu tak je, můžeme pokračovat ....

Instalace GPS a PPS

Nainstalujeme vlastní ovladače pro GPS a PPS.

sudo apt-get install -y gpsd gpsd-clients pps-tools

Následně otevřeme konfigurační soubor /etc/default/gpsd kde nastavíme parametry

sudo nano /etc/default/gpsd
DEVICES="/dev/serial0"
GPSD_OPTIONS="-n"
USBAUTO="false"

Poté restartujeme službu, aby se změny projevily.

sudo systemctl restart gpsd.service

Ověření gpsd

Ověření funkčnosti GPS je možné použít několik pomocných programů které jsou součástí předchozí instalace. Například:

  • gpsmon
  • cgps -s
  • sudo ntpshmmon

Ověření PPS

Prvně ověříme, že je modul PPS načtem

lsmod | grep pps

Měli by jsme dotat následující (obdobnou) informaci:

pps_gpio               16384  0

K ověření pulzů PPS můžeme použít:

sudo ppstest /dev/pps0

Následně by jsme měli získat podobný výpis

trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1504898420.000395033, sequence: 2859 - clear  0.000000000, sequence: 0
source 0 - assert 1504898421.000394391, sequence: 2860 - clear  0.000000000, sequence: 0
source 0 - assert 1504898422.000394114, sequence: 2861 - clear  0.000000000, sequence: 0

Pokud by se zobrazil výpis " time_pps_fetch() error -1 (Connection timed out) " tak PPS pulzy nejsou na daném rozhraní k dispozici.

Poznámka: V případě že GPS přijímač je připojen přes seriové rozhraní, tak pro PPS signál se využívá jeden z pinů DCD, RI a DSR.

Instalace Chrony

Vlastní instalace. Pozor, pokud jiz je nainstalovane NTP, tak jej odinstaluje.

sudo apt install -y chrony

Pote upravíme nastavení chrony, kde přidáme řádku pro GPS, PPS a upravíme z jakého rozsahu budeme službu NTP nabízet:

  • refclock SHM 0 refid NMEA offset 0.200
  • refclock PPS /dev/pps0 refid PPS lock NMEA
  • allow
sudo nano /etc/chrony/chrony.conf
###### pod tímto řádkem jsou vlastní změny konfigurace #######
server 10.98.1.1 iburst minpoll 3 maxpoll 5
server time-a-b.nist.gov iburst
server time-d-b.nist.gov
server utcnist.colorado.edu
server time.windows.com
server time.apple.com

# zpoždění bylo určeno experimentálně nastavením noselect a poté sledováním po dobu několika hodin
# 0,325 znamená, že časová věta NMEA dorazí 325 milisekund po pulzu PPS
# zpoždění nastaví dopředu
refclock SHM 0 delay 0.325 refid NMEA
refclock PPS /dev/pps0 refid PPS

allow 10.98.1.0/24 # my home network
###### nad tímto řádkem jsou vlastní změny konfigurace #######

###### pod tímto řádkem jsou standardní chronické věci #######
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
#log tracking measurements statistics
logdir /var/log/chrony
maxupdateskew 100.0
hwclockfile /etc/adjtime
rtcsync
makestep 1 3

Nakonec ověříme že vše funguje.

chronyc sources

Ve sloupečku S je pak signalozovano:

  • * je vybraný zdroj pro synchronizaci
  • + je záložní zdroj pro synchronizaci
  • x neplatný, falešný zdroj
  • vše ostatní se nepoužije

Instalace NTP