Hi,
I am trying to get with gnss signal with RTK correction with the zed box. I followed the guide provided by stereolabs: Using GNSS with ZED Box Orin NX - Stereolabs
Basically I stop the running gpsd and i restart it as ntrip client with the folllowing command:
gpsd -nG 'ntrip://username:password@158.102.7.10:2101/RTK_VRS_RTCM3' -s 115200 /dev/ttyACM0
(obviously with the right username and password)
While the gps works correctly without RTK, when I try to get corrections I don’t get any data.
I contacted the RTK provider which told me that I succeed in logging in to the service but the following error occurs:
Rover user ‘prospecto’ rejected. No GPGGA message received. Access denied.
Some RT Products require an NMEA GGA string sent by the rover user. The connection is closed by Spider if no NMEA GGA string is received within a specified time range.
Does anyone have a clue? I already tried to read gpsd documentation without finding a solution 
Hi @Prospecto,
Can you please follow our guide from this page: Setting up GNSS / RTK on Linux - Stereolabs
GPSD must be built and used with the specific version provided in the tutorial, as the maintainers have made updates with the NTRIP client that are not yet available in the packages from apt.
Hi @mattrouss, thanks for stepping in.
Do I have to follow this guide even if I am using the ZED BOX?
EDIT:
I have followed the guide and at the end of installation I get:
WARNING: ncurses not found, not building cgps or gpsmon.
Ensure your PYTHONPATH includes /usr/local/lib/python3/dist-packages/
WARNING: AsciiDoctor not found.
WARNING: Some documentation and html will not be built.
Furthermore now when I run xgps I don’t get any gps data (while I did before).
If I run cat /dev/ttyACMO I get screen with unreadable characters (binary mode?)
Yes this guide is compatible with ZED Box.
Can you please check that the gpsd daemon service is stopped and disabled:
sudo systemctl stop gpsd.service gpsd.socket
sudo systemctl disable gpsd.service gpsd.socket
And run the gpsd command as provided in the guide? To verify gpsd is indeed up and running, the following command:
pgrep gpsd
will display the pid of gpsd if it is indeed running, and you should have access to data in xgps.
Thanks again.
By running
sudo systemctl stop gpsd.service gpsd.socket
sudo systemctl disable gpsd.service gpsd.socket
and then
gpsd -nG -s 115200 /dev/ttyACM0
I actually got gps running again. Why so? What’s the difference between the first two commands and pkill gpsd? Do I have to run those at every restart?
By default, gpsd is installed as a service using systemd. This can work fine but in our internal tests has been found to be unreliable with USB GNSS devices.
For this reason, we recommend to use it as such, and to avoid rerunning the program at every boot, we suggest to install a cron job that runs at your device’s boot as explained here: Setting up GNSS / RTK on Linux - Stereolabs
1 Like
But does it start every time at reboot as a service using systemd and the fact that I run it as a daemon at the start prevents it to start as a service using systemd?
Yes only one system must be enabled in order to function correctly.
I understood that only one has to be enabled.
My question is related to how I can avoid that gpsd starts as a systemd service when I reboot.
Sorry, I misunderstood your question.
The systemctl disable
command turns off the automatic start of the service at boot.
Sorry for the late answer, but I still have to stop the service at every reboot.
How can I disable it ?
Rigth now the situation is the following:
When I reboot the gpsd doesn’t work correctly. (nAn data).
My crontab looks as follow:
@reboot sleep 10 && /usr/sbin/gpsd -nG -P /run/gpsd.pid /dev/ttyACM0
If I do
sudo systemctl stop gpsd.service gpsd.socket
sudo systemctl disable gpsd.service gpsd.socket
and then
gpsd -nG -s 115200 /dev/ttyACM0
then it works.
I tried to use another crontab:
@reboot sleep 10 && /usr/local/bin/start_gpsd.sh
with start_gpsd being:
sudo systemctl stop gpsd.service gpsd.socket
sudo systemctl disable gpsd.service gpsd.socket
gpsd -nG -P /run/gpsd.pid /dev/ttyACM0
but still not wortking.
Any clue on what’s going on?
Sorry for the late answer, but I still have to stop the service at every reboot. How can I disable it ?
[Discourse post]
Please check this thread:
Yea masking the service worked, thanks!
1 Like