help with nmea 2000

The friendliest place on the web for anyone who enjoys boating.
If you have answers, please help by responding to the unanswered posts.
The way I was taught uses this hierarchy of logic


Thanks. See comments below, but in general it strikes me as vague enough to tip toe around the conflicts, which of course allows them persist. Notably absent is any distinction between a Device Instance and a Data Instance, and how they are used differently. But it's clear that allowing all this to stand is the position of NMEA, based on their actions, or inactions.


Instancing is used when you have dual pieces of equipment, such as two fuel tanks, two transducers, two or more gps, etc.


I think this is true, but largely because it is incomplete by not addressing where Data Instancing MUST be used, vs where Device Instancing MAY be used.


Some devices may use the instance number to determine priority.
Some displays/devices may use the instance number and label to help identify the device to the user (this may or may not be user selectable)
It is important to understand how manufacturers handle and treat instance configurations.


I think this is a nice way of saying that operation is undefined, and each vendor does their own thing, and it's up to you to figure it out.


A PGN should define all data transmitted from a device.
All devices must support a minimum group of messages.


I think this is referring to a PGN where a device reports what PGNs it's capable of transmitting. But vagueness around this was part of the Icom M506 issue. Should this report PGNs that the device is currently sending with valid data, or should it report all PGNs that the device might possibly send, even if it's not sending them now? In the case of the M506, it announced that it was sending the GPS PGN even though it had no source of GPS data. A Furuno device believed it, and switched to it because it was a lower device address which is one means of prioritizing devices. But the data was garbage, all sorts of devices would alarm over lost GPS, then finally the Furuno device figured out the M506 was sending trash and switched to something else.


Certified products use a device's Source Address and Instance Number to identify devices transmitting the same data messages on the network.

A receiving device knows at most two things from the PGN that it receives.


1) The source address, and
2) Possibly a Data Instance, depending on the PGN. Only some PGNs include Data Instances.


So all PGN filtering must be done based on these two things.


Again this depends on whether we are talking about Data Instances or Device Instances. If a single device (sing source address) transmits the same PGN for two different things, e.g. a battery monitor monitoring two batteries, those PGNs must be distinguished by unique Data Instances. But uniqueness is within the scope of the particular device. I have seen quotes from the spec that are very clear on this. Data Instances are NOT required to be unique across all devices on the network sending the same PGN. Yet Maretron does require this. In fact, fro something like battery status, Maretron selects data based exclusively on the Data Instance. This is why they require that they be unique across the network.


Certified Products are required to have an Instance Number and the ability to change it in the field.


Which one? Data Instance or Device Instance? My understanding is that it's the Device Instance that must be field changeable. But there is no standardized way to change it, or any requirement that it be user adjustable, or that it be adjustable using standard management PGNs. In practice, there are plenty of devices where the Device Instance is NOT changeable by any mere mortal. This requirement is also NOT part of certification testing since the devices that doesn't do it were all fully certified. But Maretron leans heavily on this and points at other vendors as non-compliant.


It is important to understand how Manufacturers implement instancing in the field.


This is how they say that different people handle this differently, but don't mention that it creates all sorts of incompatibilities.


So, it is somehwhat dependent on the manufacturers and how they handle instancing as long as they follow the rule that "it is mandatory that every NMEA 2000 device has the capability to have the instance number changed." An understanding of a particular manufacturers rules is important to understand how they handle instancing. Furuno, which is what I am installing on a new build, has the ability to decide which instance to assign.


You can't change the device instance for the APs. And you can't change the Data Instance for the Rudder position. As such with a dual AP, it's random which rudder sensor Maretron displays.
 
Last edited:
I have generally had good luck with them, but their product line is pretty limited. The N2K to USB interface is widely supported for PC access to N2K, but it still depends on the particular application.

Thought you might render that opinion. I agree
 
Once i get the usb interface installed and run the maratron software will the comments regarding instances and communication conflicts be evident?
 
Twisted I agree with your points. A quick look at the board members show Garmin, Vesper (part of Garmin), Gemeco, Intellian, Navico, and several electronics installers. They are going to influence the process.

But, I don’t want to derail magma’s post with this discussion. I may spend some time looking up where the money comes from supporting the organization if it is available.
 
In the case of the M506, it announced that it was sending the GPS PGN even though it had no source of GPS data. A Furuno device believed it, and switched to it because it was a lower device address which is one means of prioritizing devices. But the data was garbage, all sorts of devices would alarm over lost GPS, then finally the Furuno device figured out the M506 was sending trash and switched to something else.

This goes to my comment about configuring devices to send only what's needed onto the bus, if the devices support it.

For my own Icom it only has incoming 0183 to it. I do lose getting a MOB distress notification from it, but that's about all.

But if you run into devices where you can't get them to 'dummy up' and you really want them connected (as opposed to tossing them and finding something else) then you have to look into options like an N2K bridge that gets configured to pass only specific PGNs. Yacht Devices makes one: https://www.yachtd.com/products/nmea_bridge.html Their bridge can also 'massage' data to change it into something else. But this is likely overkill for anyone with a regular setup.
 
Twisted I agree with your points. A quick look at the board members show Garmin, Vesper (part of Garmin), Gemeco, Intellian, Navico, and several electronics installers. They are going to influence the process.

But, I don’t want to derail magma’s post with this discussion. I may spend some time looking up where the money comes from supporting the organization if it is available.

Having myself served on various tech committees and standards bodies over the years, the 'influencing' process it chaotic, at best. More often than not it ends up being a compromise of the 'greatest number of units seller' implementation gets mimicked, regardless of whether it lives up to the standard or not. This is often due more to incompetence than any sort of devious cabal.
 
Once i get the usb interface installed and run the maratron software will the comments regarding instances and communication conflicts be evident?




We have completely derailed your post. Sorry about that.


I'm not familiar with Gamin equipment, but I expect you can go into the settings and select which device is being used for GPS position, depth, heading, etc. I think you would do that for the MFDs and the AP. I would plan on making the changes in all the MFDs, but you might set one up and discover the others have assumed the same config - but I doubt it....
 
Last edited:
I have really enjoyed reading all the comments. At times I wonder if any of the NMEA 2000 committee took logic in college. There is so much ambiguity in how it is implemented. Raymarine has data source selection in menus of most of their devices but it only works if everything on the network is Raymarine, except in the case of a Raymarine ST-1 to STng interface where that device prevents data source selection on the autopilot. I just encountered another one the other day where I could not select a Garmin GPS 19 on a Raymarine MFD because it didn’t like the NEMO on the network. Keep up with the comments on NMEA 2000.
 
Actually you guys discussing these things are whats helpful. I think this thread is going to be very informative for those who want to learn. Keep talking. If i have questions i will raise my hand.



We have completely derailed your post. Sorry about that.


I'm not familiar with Gamin equipment, but I expect you can go into the settings and select which device is being used for GPS position, depth, heading, etc. I think you would do that for the MFDs and the AP. I would plan on making the changes in all the MFDs, but you might set one up and discover the others have assumed the same config - but I doubt it....
 
I have really enjoyed reading all the comments. At times I wonder if any of the NMEA 2000 committee took logic in college. There is so much ambiguity in how it is implemented. Raymarine has data source selection in menus of most of their devices but it only works if everything on the network is Raymarine, except in the case of a Raymarine ST-1 to STng interface where that device prevents data source selection on the autopilot. I just encountered another one the other day where I could not select a Garmin GPS 19 on a Raymarine MFD because it didn’t like the NEMO on the network. Keep up with the comments on NMEA 2000.

Which model MFD?

There has been a moving terrain under all this technology. A lot of early implementations fell short of being able to inter-operate with other brands.

I seem to recall a lot of issues with Raymarine as N2K and their attempted proprietary twist on it.

But it's tough to learn more given the small size of the recreational marine community, the even smaller size of people doing anything complicated or involving mixes of brands and then the handful that actually chat about it online.
 
In looking at the network it appears structurally ok but the conflicts are with device instances.All devices are set at 0. I talked to maretron and they said most manufactures set there devices to 0. If i am understanding this i am interpreting the term instance to be an ip address? and each piece of equipment should have its own number? Martron indicated i needed to contact each manufacture for details on making the change?
 
In looking at the network it appears structurally ok but the conflicts are with device instances.All devices are set at 0. I talked to maretron and they said most manufactures set there devices to 0. If i am understanding this i am interpreting the term instance to be an ip address? and each piece of equipment should have its own number? Martron indicated i needed to contact each manufacture for details on making the change?


Are you trying to display data on some sort of maretron display? I don't recall seeing one in your diagram. I ask because the whole Instance thing is uniquely Maretron. An Instance number, either a Data Instance or a Device Instance is the ONLY way Maretron knows how to distinguish one device from another. Other manufacturers do not have this same restriction, and use a much richer set of info to distinguish.
 
As often happens when threads drift, I needed to go back and remind myself what the question was in the first place. :ermm:


In your MFD, there should be setup menus where you select which devices you use to display which data. It should show a list of available data sources, and let you pick which one you want to use. I would start with that for your depth info. However you set it up, you will probably need to repeat it on each MFD so they are all set up the same.


One thing yo keep in mind with depth is that different sounders "loose it" at different depths. They will display "---" or some nonsense depth like 12 ft when you are in 1000' of water. This may be what's confusing the depth readings. In general the smart thruhull transducers that just give depth and temp (and sometimes speed) are only good to around 600--800', then they loose it. A fish finder will usually go to 1000-1200', but then it will loose it too. If you have a 1000W sounder or something fancier, it might be able to go deeper.


Then do the same for the auto pilot. You should see choices for heading and position (GPS), and you should pick whichever you think is best. If you want help with the choice, just post what the options are and I'm sure we can guide you.



I don't think Garmin requires unique instance numbers, but perhaps someone more familiar with their gear can confirm?
 
Back
Top Bottom