There is a fundamental incompatibility between Maretron and a number
of other manufacturers, including Victron. With Victron, one prominent place it shows up
when trying to display battery data and MPPT charger data on a Maretron
display.
The issue is not limited to
battery data - that's just an example - it's really a fundamental
incompatibility between how Maretron differentiates the same data (like
battery status) for different devices on the network. The easiest way
to explain is probably with an example.
Consider
two Victron MPPT chargers. Each of those chargers sends two different battery status
messages; one for the connected battery, and
one for the connected solar panel(s). Since they use the same N2K message,
the two need to somehow be distinguished from each other. N2K does this
using a Data Instance number which is a number in the message
indicating which "instance" of data the message is reporting. The
battery status is in Data Instance 0, and the panels are Data Instance
1. Now anyone on the network listening to the data can tell which is
which. All good so far.
Now consider the
second MPPT. It's sending out the same two messages with Data Instances
0 and 1. To distinguish these new messages from those sent by the
first MPPT, any listening device has to pay attention to which device is
sending the data. The N2K spec is very clear that Data Instances MUST
be unique for messages sent from the same device (makes sense). But it is equally
clear that they are NOT required to be unique across devices. In other
words, it's not required that MPPT 1 use Data Instances 0 and 1, and
that MPPT 2 use Data Instances 2 and 3. So Data Instances must be
unique within a device, but they are not required to be globally unique
across all devices on the network. The problem is that Maretron DOES
require that Data Instances be globally unique across all devices, and
that's not possible with some devices, and/or breaks other devices and
applications that expect Data Instancing to follow the rules. This is a short cut for Maretron because all they need to do is look at each message and decide what to do with it based on the Data Instance number. They don't have to pay attention to which device sent it. If they were compatible with N2K, they would have to look at BOTH which device sent the message, and what the Data Instance is to decide how to handle the message. It's more work, and more info to keep track of.
Victron's
devices follow the rules, and that makes the messages they send indistinguishable to
Maretron. I currently have 17 different versions of the same battery
status message on my N2K bus, 2 each from 4 MPPT chargers, 3 each from 3
different BMS devices, and Maretron can't reliably or controllably
display any of them. There is a way to change the Victron Data
Instances to operate in a non-standard way, but doing so breaks
Victron's management application which expects devices to follow the rules.