convert gps data to nmea2000 (signalk-to-nmea2000)
I'm trying to convert GPS data in 0183 format coming from my peplink router onto my nmea2000 network for further usage. But the GPS location isnt relayed to the nmea2000 bus.
I have a rbpi with canhat connected to nmea with data connection via canboat.
Receiving nmea2000 data works fine.
And data connection via tcp for receiving the 0183 gps data fine.
I've enabled the location in signalk-to-nmea2000 converter.
With and without filling in the source (can1)
Issue is that I dont see the gps location pgns on my nmea2000 network.
Am I missing something here?
(I suppose this works without a Actisense device? with (just) a canhat?)
(should i be able to see the location in my data browser as a can1 source?)
@Scott Bender



11 Replies
I suspect it is your source, if you clear that in the configuration, you should find it works. The source field is saying if the lat and lon has come from can0 then use it. Clearing it will cuase any to be used..
As I only want my GPS connected to the SignalK device to be used if nothing is comming from the N2K network, my source is set to GPSD.GP; then I have told the system to only use HPSD.GS for position if I have not got any comming in from the CAN network. This means that I only send when the GPSD.GO is the only source of GPS
I have tried both empty and nmea0183.GP but without succes.
In the SK Data browser enabling the plugin correctly:
besides the navigation.position with source HPSD.GS,
do you get navigation.position with source can (eg: can1)?
(so to verify the conversion is working)
tun on debug for signalk-to-nmea20000
and turn on debug for
canboatjs:canbus
then check the "Server Log"
(you will not see n2k data that you send out in the Data Browser)turn on debug for canboatjs:canbus"
Do you mean in data connection: data logging?
on the "Server Log" page
at the top
Actually this looks alright:
Jul 25 12:41:52 2025-07-25T10:41:52.831Z signalk-to-nmea2000 emit nmea2000JsonOut {"pgn":129029,"Date":20294,"Time":38512,"Latitude":53.195708333333336,"Longitude":5.6266906,"GNSS type":"GPS+SBAS/WAAS","Method":"DGNSS fix","Integrity":"No integrity checking","Number of SVs":16,"HDOP":0.64,"Geoidal Separation":-0.01,"Reference Stations":1,"list":[{"Reference Station Type":"GPS+SBAS/WAAS","Reference Station ID":7}]}
Jul 25 12:41:52 2025-07-25T10:41:52.832Z canboatjs:canbus sending {"pgn":129029,"Date":20294,"Time":38512,"Latitude":53.195708333333336,"Longitude":5.6266906,"GNSS type":"GPS+SBAS/WAAS","Method":"DGNSS fix","Integrity":"No integrity checking","Number of SVs":16,"HDOP":0.64,"Geoidal Separation":-0.01,"Reference Stations":1,"list":[{"Reference Station Type":"GPS+SBAS/WAAS","Reference Station ID":7}]}
Jul 25 12:41:52 2025-07-25T10:41:52.837Z canboatjs:canbus 2025-07-25T10:41:52.835Z,2,129029,100,255,47,ff,46,4f,00,77,f4,16,80,11,d6,1b,26,e4,61,07,00,84,bd,f0,73,e6,c7,00,ff,ff,ff,ff,ff,ff,ff,7f,23,fc,10,40,00,ff,7f,ff,ff,ff,ff,01,73,00,ff,ff
Jul 25 12:41:52 2025-07-25T10:41:52.839Z signalk-to-nmea2000 navigation.courseOverGroundTrue,navigation.speedOverGround:4.153883620694959,0
Jul 25 12:41:52 2025-07-25T10:41:52.840Z signalk-to-nmea2000 emit nmea2000JsonOut {"pgn":129026,"COG Reference":0,"COG":4.153883620694959,"SOG":0}
Jul 25 12:41:52 2025-07-25T10:41:52.841Z canboatjs:canbus sending {"pgn":129026,"COG Reference":0,"COG":4.153883620694959,"SOG":0}
Jul 25 12:41:52 2025-07-25T10:41:52.843Z canboatjs:canbus 2025-07-25T10:41:52.843Z,2,129026,100,255,8,ff,fc,43,a2,00,00,ff,ff
yes, and the n2k messages convert back good also
So the issue is either with your socketcan device or the device you are recieving with
Than its not possible to check in the skserver, if the data got send correctly right?
(so I need to hook up another device to check the nmea2000 data)
correct, we have done as much as we can with the server, we know it is getting sent
the only way to prove that it is really working, is with another device
You could run candumpjs at the command line
but that doesn't really prove anything (like if wiring is bad or the socketcan device is bad)
And I have seen can hats that were broken and can recieve, but not send
Thanks for that, I'll hook up a Maretron USB
and note that some n2k devices, like most MFDs. won't pick up location unless you go into settings and pick the Signal K device as the source
any luck?