• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Solved] Get performance data on Raymarine i70 N2K display
#1
I have an installation of Openplotter on a RPi3 and have managed to get SignalK working with the N2K network with a Pican2 interface. (socket-can, signalk plugins etc)

On the Rpi I would like to be able to convert NMEA0183 performance data from Qtvlm (special sentences for NKE or Tacktick) and present it on my regular Raymarine i70 display. Since there are no custom PGN sentences for Raymarine N2k I am thinking of "borrowing" some unused N2K PGN and pull that up on the i70. Another way would be to change data source on the i70 and pull up speed data from the Socketcan talker id.

As I am new to all this I have yet not figured out where my data conversion shall take place and how to send that out. I have looked at the signal-k-polar graphing but I already have plenty of fairly accurate polar data in txt or csv format. I don't know if that is the way to go. I am currently using the polar data with Qtvlm and screen mirroring to a tablet but it would be really nice to have the data up together with wind and speed on one of the i70 displays on board and in sight during shorthand racing.


To my questions:
1. Is there a way to convert performance data from NMEA0183 to signalK to NMEA2000 and select the mapping of the data? I want for example use nmea0183PNKEP to signalkpolarSpeed to either N2k fluid level PGN or N2k Speed PGN.

2. How do I get the data out on the CAN0 interface? Will it get there by magic if I get the data right from Q1 and run the send to canbus plugin in SignalK?

I have seen someone wanting to do similar things but they seem to go the Socketcan and C++ or Python route. Is that really necessary or is it all in the JSON's in SK?
  Reply
#2
So I finally solved this one. 

To get the data into SignalK I made a couple of conversions in the mnea0183-signalk plugin that imports data from NKE PNKEP,xx nmea sentences. These are now merged into the main branch of SK. See signalk on github.

I installed the new canboatjs from Scott Bender that runs in nodejs and got the signalk data out on nmea2000 through the Pican2 can0 interface. See the readme on canboatjs github.

I then use node-red to listen to the signalk websocket, filter out a sentence with performance.polarSpeed and then copy that value to tanks.blackWater.0.currentLevel and out on udp localhost back into SK. Voila the level shows up on the Raymarine display as black water tank level. Other tanks as grey water etc can be used to get more values over. It is not very pretty so I am probably going to use a signalk instrument panel on a tablet anyway.

A lot of thanks to Teppo Kurki and Scott Bender from the SignalK team that helped me get started with nodejs development and pointing me to the right places in the code.
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)