SignalK / signalk-server

An implementation of a Signal K central server for boats.
http://signalk.org
Apache License 2.0
298 stars 150 forks source link

Can't get signalk-to-nmea2000 to transmit on native can interface #1726

Closed navado closed 2 months ago

navado commented 2 months ago

I have a board that has two native can interfaces canC and canE. The board receiving navigational data from nmea0183 over serial. This may be re-transmitted and used in widgets without problems.

Problem description

My goal is to send nmea2k PGNs to native CAN interface and receive it with candump on another interface (interfaces connected to nmea2k backbone) Target setup: nmea0183->[signalk-server]->canC->(nmea2k backbone)->canE->[candump]

Logs from the plugin:

Apr 23 22:04:49 2024-04-23T22:04:49.511Z @signalk/signalk-to-nmea0183 $GPGGA,220405,3205.3859,N,03448.8088,E,1,2,1.2,35.6,M,0.0,M,,*72
Apr 23 22:04:49 2024-04-23T22:04:49.512Z @signalk/signalk-to-nmea0183 $GPGLL,3205.3859,N,03448.8088,E,220405.020,A*37
Apr 23 22:04:49 2024-04-23T22:04:49.513Z @signalk/signalk-to-nmea0183 $GPRMC,220405,A,3205.3859,N,03448.8088,E,0.0,37.0,230424,3.0,E*43
Apr 23 22:04:49 2024-04-23T22:04:49.565Z signalk-to-nmea2000 navigation.courseOverGroundTrue,navigation.speedOverGround:0.6457718233853508,0
Apr 23 22:04:49 2024-04-23T22:04:49.565Z signalk-to-nmea2000 emit nmea2000JsonOut {"pgn":129026,"COG Reference":0,"COG":0.6457718233853508,"SOG":0}
Apr 23 22:04:49 2024-04-23T22:04:49.566Z signalk-to-nmea2000 navigation.headingMagnetic,navigation.magneticVariation:,0.052359877571785195
Apr 23 22:04:49 2024-04-23T22:04:49.566Z signalk-to-nmea2000 emit nmea2000JsonOut {"pgn":127250,"SID":87,"Heading":null,"Variation":0.052359877571785195,"Reference":"Magnetic"} 

I cannot get messages on candump. I also don't have another nmea2k plotter or display here.

Backbone seems working, data seen in candump

[sudo cangen canC]->canC->(nmea2k backbone)->canE->[sudo candump any,0:0,#FFFFFFFF] # data seen in the dump

  canC  28F   [8]  B2 12 9E 0E 49 4D 69 45
  canE  28F   [8]  B2 12 9E 0E 49 4D 69 45
  canC  250   [4]  DE BB 33 33
  canE  250   [4]  DE BB 33 33
  canC  594   [8]  5E 3E 01 7C 1A 87 BB 31
  canE  594   [8]  5E 3E 01 7C 1A 87 BB 31
  canC  577   [5]  18 3E 6F 20 E9
  canE  577   [5]  18 3E 6F 20 E9
  canC  4C5   [4]  19 91 2F 52
  canE  4C5   [4]  19 91 2F 52
  canC  0A4   [3]  BA 0D FB
  canE  0A4   [3]  BA 0D FB
  canC  123   [8]  18 72 2F 46 7A 15 CA 41
  canE  123   [8]  18 72 2F 46 7A 15 CA 41
  canC  68B   [6]  DB D3 83 23 1A 89
  canE  68B   [6]  DB D3 83 23 1A 89
  canC  601   [8]  64 D6 0F 0A 52 48 CE 03
  canE  601   [8]  64 D6 0F 0A 52 48 CE 03

SignalK server also receives nmea2k data from the backbone

[sudo cangen canC]->canC->(nmea2k backbone)->canE->[signalk-server] # data seen in data browser with unknown PGNs

Screenshot 2024-04-24 at 1 09 50

Interfaces:

Screenshot 2024-04-24 at 1 11 17

Interfaces configured either with canboat or with canboatjs in SignalK server without any difference in behavior.

The system is Debian12.5 running on imx-8m plus based industrial PC (arm64)

Appreciate help or direction

sbender9 commented 2 months ago

Make sure you are using "canboatjs", not "canboat"

sbender9 commented 2 months ago

Oh. I see you tried both. Definitely won't work with canboat

To confirm the actual data being sent out, turn on debug for canboatjs:canbus (under Server > Server Log)

navado commented 2 months ago

Well, it looks like canboatjs was just not installed and there were no indication that it's an issue. After npm install @canboat/canboatjs the data flows.