Проблема с GPS модулем

Столкнулся с нестабильным NMEA потоком в модуле WBE3-I-GPS v5.0 с постоянными “bad checksum in NMEA packet” и постоянными потерями координат/времени. В вики решения не нашел, решил поделиться своей настройкой.

Устанавливаем gpsd

~# apt update
~# apt install gpsd -y

Редактируем конфиг

~# nano /etc/default/gpsd

# Указываем слот где расположен GPS модуль и pps
# Без указания pps будет большая погрешность по времени
DEVICES="/dev/ttyMOD4 /dev/pps0"

# Обязательно ставим данные флаги. Помогает наладить стабильный NMEA с Ai-Thinker GP-02
GPSD_OPTIONS="-n -b -s 9600"
GPSD_SOCKET="/var/run/gpsd.sock"
USBAUTO="false"

Проверяем, что модуль ядра pps загружен

~# dmesg | grep pps
[    0.036646] pps_core: LinuxPPS API ver. 1 registered
[    0.036650] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[   13.884791] pps pps0: new PPS source mod4_pps.-1
[   13.889618] pps pps0: Registered IRQ 102 as PPS source

~# ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1742257305.000017384, sequence: 4709 - clear  0.000000000, sequence: 0
source 0 - assert 1742257306.000015584, sequence: 4710 - clear  0.000000000, sequence: 0

Перезагружаем gpsd для применения конфигурации

~# systemctl restart gpsd

Запускаем cgps и проверяем значение уровня сигнала(SNR). На открытой местности SNR должен быль больше 25.

Дополнительно распишу настройку NTP сервера chrony с использование GPS + PPS который даёт точность в микросекундах.

Отключаем ntpd если установлен

~# systemctl stop ntp
~# systemctl disable ntp

Устанавливаем chrony

~# apt install chrony

Дополняем конфигурацию следующим образом

~# nano /etc/chrony/chrony.conf

...
# Разрешаем доступ из локальной сети к NTP серверу
allow 192.168.0.0/24

# GPS
refclock SHM 0 refid GPS poll 4 precision 1e-3 offset 0.071 delay 0.2

# PPS
refclock PPS /dev/pps0 lock GPS refid PPS poll 2 precision 1e-7 prefer

# Use Debian vendor zone.
pool debian.pool.ntp.org iburst
...

Перезагружаем chrony для применения конфигурации и проверяем статус

~# systemctl restart chrony
~# systemctl status chrony
> Active: active (running)

Запускаем через минуту chronyc sources -v и убеждаемся в работе PPS.

~# chronyc sources -v
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
#x GPS                           0   4   377    12   +145ms[ +145ms] +/-  101ms
#* PPS                           0   2   377     3  +1048ns[+1140ns] +/- 4275ns
^- time.cloudflare.com           3   6   377    55  +3547us[+3542us] +/-   24ms
^- julkinen.dclabra.fi           2   6   377    54  +2874us[+2869us] +/-   29ms
^- zabbix.sarik.tech             2   6   377    55    -13ms[  -13ms] +/-   32ms
^- hackclub.app                  3   6   377    57   -708us[ -714us] +/-   21ms
2 лайка

Добрый день.
А какую антенну используете? Когда собирал стенд - не помню чтобы много было ошибок при приеме.

Добрый день! WB 8.5 (release wb-2501) + WBE3-I-GPS v5.0 + GKZS-GNSS-015.

Записал видео где в первых двух запусках наблюдается “скачки” спутников и потеря высоты (иногда и координат). Антенна расположена под открытым небом, сигнал хороший.

> systemctl stop gpsd.socket && systemctl stop gpsd
> gpsd -N -D5 -n /dev/ttyMOD4
> gpsd -N -D5 -n -s 9600 /dev/ttyMOD4
> gpsd -N -D5 -n -b -s 9600 /dev/ttyMOD4

У меня получилось (случайно) добиться ухудшения качества сигнала.
Пережал кабель к антенне, пи сборке корпуса. Проверьте пожалуйста - нет ли подобного?
Не исключаю брака, после проверки если преблема не обнаружится - скорее всего поменяем модуль вместе с антенной.
Напишите пожалуйста номер заказа.

спасибо за мануал по точной синхронизации
на чистом ntp не получалось нормально завести, PPS как источник отваливался

2 лайка

Добрый день. Не проверяли кабель?

Просто как комментарий: мне удавалось сделать синхронизацию на ntpd - но его приходилось из исходников собирать. И танцев с бубном тоже не мало!