Connecting the USB GNSS receiver to the SignalK
I did not find detailed step-by-step instructions.
What is the correct way to connect the USB GNSS receiver to the SignalK on RaspberryPi?
The RaspberryPi is functioning and the SignalK has been installed on it.
11 Replies
USB GNSS dongles will appear as serial devices, e.g. /dev/ttyUSB0 or similiar.
Then add in Signal K a new data connection. Data type NMEA 0183, source Serial and check if interface listed or enter manually. Check from dongle manual baud rate. Last Apply and reboot SK. Data should apper and Dashboard should have a new connectivity device producing data in.
this ai has various manuals preloaded & can often be useful as a first place to ask anything about sigk or openplotter >
https://www.perplexity.ai/collections/openmarine-ai-support-SslrWnWdSeuxuzUAkxUVMg
https://www.perplexity.ai/search/how-do-i-connect-a-usb-gps-dev-EqzLG2C5TA.zE4_fcVENCA
Ok, thanks to all.
I have an usb gps device connected to a raspberry pi and use signalk. I use the gpsd daemon. It is however a bit more complicated: The gps daemon gpsd of the standard version (installed via apt) has limitations. sorry I don't recall the details, but the point is about GPS date feeding to raspberry when no internet is present. gpsd version 3.25 has the fixes included, but you must compile locally.
My /etc/gpsd file is:
Start the gpsd daemon automatically at boot time
START_DAEMON="true"
Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="false"
Devices gpsd should collect to at boot time.
They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyUSB0"
DEVICES="/dev/ttyACM1"
Other options you want to pass to gpsd
GPSD_OPTIONS="-Gn"
I hope that helps
Andreas
signalk:

for reliablity a good power supply is needed (check journalctl!) Consider an externally powered hub where the usb gps device is connected
gpsd is too easy. I was interested in the availability of direct interaction with devices.
Hi, I'm doing something similar, but I'm getting an error. First, I wrote a multiplexer that takes the GPS stream in from the USB port and makes it available as a TCP Stream.
OpenCPN reads the data (which is in NMEA0183 format) just fine and is displaying location, tracks, etc. However, SignalK server is giving me a constant stream of messages:
Aug 03 14:02:17 Are you sure you are using the correct line terminator? Not going to handle lines longer than 2048 chars.
Here are the settings for the data connection:
Data Type: NMEA0183
Enabled: YES
Data Logging: YES
ID: GPS
NMEA 0182 Source: TCP Client
Host: Localhost
Port: 10220
Output Events: nmea0183,nmea0183out
No data timeout: [blank]
Suppress nmea0183 event: NO
Input event: [blank]
Validate checksum: YES
Append Checksum: NO
Remove NULL characters: NO
Ignored Sentences: [blank]
Override timestamps: NO
I've done a submit and a restart. No change.
When I go to the dashboard, the incoming status indicator is not lit.
Is there a way to see what is streaming in that data connection? I do have debug logging enabled on the signalk-to-nmea183 plugin,
Additionally, mymultiplexer shows that it is sending data to two consumers. When I restart the SignalK server, for a short time the multiplexer shows sending data to one consumer, and then jumps back up to 2 consumers.
This is on a Windows 11 box at the moment. (Yes, I intend to run this on a Raspberry Pi, it's just that my windows box is a better development environment)
I'll be making the multiplexer available inboth compiled (Windows, Linux, Raspberry Pi) and source (Rust) formats.
And, yes, I do plan on connecting OpenCPN to the signalK server, directly, but first I have to get SignalK reading the [censored] GPS data.
I wrote a multiplexer that takes the GPS stream in from the USB port and makes it available as a TCP Stream.gpsd?
@Владимир Калачихин No, just a simple application in Rust that reads from the serial port and replicates the data out on a TCP port.