Sunday, April 16, 2023

Maretron NMEA 2000 Incompatibilities

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.

Needless to say, it's very frustrating, with customers left as Monkey in the Middle between two vendors who both say they are operating correctly and that the other guy is wrong, and cite a specification that few if any of us have (I do not), and where you are bound by confidentiality if you do have the specification.  Right now Maretron is incompatible with about half of the N2K devices on my bus, and probably incompatible with 80% of the non-Maretron devices.  This is just one example of why I am continually backing away from N2K, and increasingly treating Maretron as a strictly proprietary system.

 

8 comments:

  1. Although I have not visited this site often, I have appreciated your comments on other sites I frequent. At 890k views, for a small market topic it's a popular site, congratulations are in order.

    The Wall of Shame category appears to be new today. Great idea.

    If I recall correctly you pulled the Outback System from your new ride and replaced it with Victron. Something about the fact that it would not do (while providing split phase power?) what it was advertised to do.

    As I have a couple of OB inverter/chargers on board I would be interested in the messy details, if there is no NDA.

    A possible blog article addition to the Wall?

    ReplyDelete
    Replies
    1. Thanks for reading! The Wall of Shame has actually been around for quite a while. Looks like there are 13 articles in that category.

      I will definitely do an article on the Outback issue - just haven't gotten around to it.

      Delete
  2. Hi Peter, as far as I remember James Hamilton/MV Dirona also used Maretron.
    He had a great knowledge about this item. Couldn't you contact him?
    BR
    Horst Brochhagen

    ReplyDelete
  3. You arrived in Ketchikan the same day we did (Lioness, Fleming 55), but we were in south harbor and you were north. So glad to see you out and about and we always look toward to your posts.
    We cruise Ketch to Juneau 6/22-7/11. Hope to see you in a remote anchorage.
    Phil and Chris

    ReplyDelete
    Replies
    1. Hi Phil, Thanks, and sorry I missed you call yesterday. I was sleeping, but my wife relayed the conversation. Enjoy the rest of the summer!

      Delete
  4. omg don't even get me started on the whole Victron thing with N2K lol

    ReplyDelete
    Replies
    1. That caught my eye Chris - I’ve taken the plunge and am about half way submerged in Victron, N2K and more. Are there issues with Victron and N2K that aren’t well aired?

      Delete
  5. I had a similar problem getting my Maretron displays to distinguish between the same PGN sentences output by two different Victron devices. I ended up installing a SignalK server and using the WilhelmSK app running on an iPad mini. SignalK has no issues distinguishing the same sentences output by different devices be they Victron or Maretron.
    Victron is a strong supporter of the SignalK standard and even offers a "large" image that can be installed on a Victron Cerbo GX that comes with SignalK server software installed.

    ReplyDelete

Make comments here