twistedtree
Guru
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: