NMEA 2000 Shield

I prefer to use Teensy 3.2 and up or ESP32

Hi all,

Sorry guys. I have not got any notes of traffic on this forum and did not read it actively.

davetm75: If you have CAN on your BMS, do you know and have all description for all messages it sends?

How does one filter "correctly" same messages sent by several or two devices? Reason why I ask is I bought a wind instrument with Garmin GND 10 NMEA 2000 interface. That device seems to be sending all kinds of messages and is disturbing my DIY autopilot and depth alarm. I can filter those based on contents being nonsense on heading and depth but how would one filter them based on device id?
Is it possible to send same message as is being received with Timos library? Would like to send wind messages after some corrections made based on boats attitude and movements and use them on the MFD.

Hi, how's everything? I hope all is well. I am currently implementing the wifi-Gateway module. The purpose is to send NMEA0183 data (nmea0183 and previously converted from nma2000). My question is which protocol should I use, TCP or UDP. TCP checks data packets and errors and has to open a connection between the two devices. UDP is faster as it only transmits directly. My question is whether the speed of UDP should prevail or the stability of TCP should prevail. I think that with the volume of data, the speed of UDP would be recommended and if any data is lost it is constantly recovered. If someone has already done tests with the two protocols in production and knows which is the correct option, it would help me a lot. Thanks for everything.

I still do not get notifications from this forum...

Do you mean fintering on your device or on bus? For bus you can not naturally do anything. All messages will remain there.

Each device should have way to select messages to be used. E.g.m if ther is several heading on the bus, it should be possible to define, which heading that device should use. Unfortunately all devices does not allow that.

On own device right way it to filter according to message. Filtering keys are sender "NAME", PGN, possible instance inside PGN. "NAME" means value of device respond to ISO address claim. "NAME" has not been included on messages, but they have source and each source is glued to "NAME". In my library there is module DeviceList, which helps filtering with "NAME". That takes care of collecting devices on the bus and you can ask is there any changes. If there is any change, you ask request source with "NAME" and then you continue listening that source.

If you want to filter bus, you have to make device with 2 NMEA2000 connector and listen messages on other side and send only unfiltered messages to other side.

With my library you can get all NMEA2000 messages. It currently filters only non extent CAN messages.

I have not compared stability between TCP and UDP. I tested only UDP from ESP32 and received all packets on PC. Instead on other ESP32 I did not received all packages but did not lost too much. Currenlty I use UDP since I have PC:s as listener and it is easy.

Timo, your experience is immense, thanks for your help.

Hi, I need to get the pgn number from the messages read on an NMEA bus with the Timo NMEA2000 library used on a raspberry pi, but I can't understand which library commands to use. can you help me please?

this is the post!! Obtain nmea2000 PGN code of NMEA2000 C++ library by Timo

Hi, I'm building bi-directional NMEA 2000 - NMEA 0183 protocol converter. Could you advise me what should I use. I mean any specific model of arduino or raspberry pi? I want it to be powered form NMEA2000 M12 port.

You need NMEA2000 and NMEA2000_socketCAN libraries. Check document NMEA2000/Preparing your Raspberry Pi for the NMEA2000 library.pdf at master · ttlappalainen/NMEA2000 · GitHub and also example NMEA2000ToNMEA0183

Teensy 3.2 or ESP32 is enough for protocol converter. It can run with low power. In this case you will need isolated connection to the NMEA2000 bus. Read carefully my document NMEA2000/Connecting_hardware_to_NMEA2000.pdf at master · ttlappalainen/NMEA2000 · GitHub

Example NMEA2000ToNMEA0183 has already one direction.

You can also do it with RPi, but it is overshooting in power.

Hi Timo, like all others here, l thank you for your time and energy you have invested into NMEA2000 Shield. I have spent the last couple of hours going thru the 1111 posts on this thread but l didn’t see anything relating to my inquire, so now we are at post #1112.

****Regarding-**- Win 10, Laptop running Maxsea TimeZero v4, PC chart Plotter Software connecting via Programming port to DUE and NMEA 2000 Shield (have also tried native port)

I have a Due/ MCP 2562, using your TempertureMointor example sketch, l can read live data on the Serial monitor and/or NMEA Reader coming from my connected Maretron SSC200 compass.
l was hoping to connect this to the Time Zero (TZ) software, but when l go to connection wizard in TZ and pick NMEA2000 it comes back and says,
“Actisense hardware is not plugged, Serial port cannot be opened”
TZ say that the Actisense NGT-1 is the only device compatible with their software.

TZ literature show's an example which shows how to connect a Actisense NG, in Device manager the comport device is shown as a “Actisense NDC”. I have worked out how to change the Due from displaying as a “USB Device” by changing the “friendly name” of the com device in regedit. But with the USB device as “Actisense NDC” it still shows not plugged in. The litrature also shows the Actisense showing in device manager under “Universal Serial Bus Controller” were even after renaming the USB Due as Actsense NDC, it doesn’t show at all under Bus Controller.

My next thought is changing the Product and device info.
Currently my problem is l haven’t been able to find the product/Device device info re- Actisense NGT-1 and am hoping someone could take a screen shoot of all the properties info from something like NMEA Reader.
Also open to any other suggestion or even better if someone has this or any other example actually working on TZ and could give the details required. Thanks

It may be also that TZ tries to communicate with NGT-1 by using Actisense BEM commands and expects some response. You could use com0com null modem driver and open terminal to other port and TZ to other port. Then you shold see on terminal, does TZ send some data to serial.

Thanks Timo for your time, l will try and see what the comm's ports are saying. Would you have the product/device info so l could try that, or would that make no difference?

I do not have more information. If you get request message, I can try it with my NGT-1, what does it response for that. But just no I am very busy and may not have time for some weeks.