berthubert / galmon

galileo open source monitoring
GNU General Public License v3.0
198 stars 53 forks source link

Add UBX-over-UDP support #143

Closed kpfleming closed 1 year ago

kpfleming commented 3 years ago

ubxtool can now forward UBX messages as UDP datagrams; this can be used to feed them to gpsd, avoiding the need for gpsd to have its own connection to the GPS receiver.

The --udp-ubx command line argument accepts an IPv4/6 address-and-port as the destination to receive the datagrams.

kpfleming commented 3 years ago

If appropriate, I can add a section to README.md with example commands for how to link ubxtool to gpsd.

kpfleming commented 3 years ago

This has now been running on my system for more than 36 hours and everything is stable; all three processes (ubxtool, gpsd, and chrony) are running on an RPi 4B, with each locked to its own CPU, and chrony is showing very low (and reasonably stable) 'offset' numbers.

There is another way this could be done as well. The gpsd project includes a gpspipe tool which can emit raw UBX protocol messages which gpsd received, and those can be sent to a regular pipe, or to a pseudo-tty. In that configuration gpsd would be talking directly to the receiver, and ubxtool would have a read-only feed of UBX messages, so all of the receiver configuration normally done by ubxtool would have to be stored in the receiver's flash memory. If would likely be a simple matter to add a command-line parameter to ubxtool to have it issue the 'store' command to the receiver, which would only have to be done once, and then another parameter to tell it that it should not attempt to send any commands to the receiver.

kahara commented 1 year ago

😞

kpfleming commented 1 year ago

I ended up implementing the second solution in my systems (gpspipe feeding ubxtool). Works fine.