question

bathnm avatar image
bathnm asked

Venus OS (Cerbo), NMEA2000 Output and Multiple BMVs

I have a cerbo GX which I have connected to my NMEA 2000 backbone so as To display the battery voltage and current of my 12v battery on my Raymarine Chart plotter.

I have two BMV712 on my system, both connected to the Cerbo. One via VE.direct (monitoring my lithium 24v bank) and one via USB (monitoring my 12v bank and starter battery).

I get the output on my Raymarine, however it swaps between the 12v and 24v bank. I have tried changing the device instance on one of them to be 1, but that has not helped.

Any guidance on how to change the Cerbo so that it sends these out so other systems can differentiate between the two sets of data.

Venus OSNMEA 2000 - N2K
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

2 Answers
Guy Stewart (Victron Community Manager) avatar image
Guy Stewart (Victron Community Manager) answered ·

Hi @Bathnm,

Sorry to ask, but have you read the entirety of the NMEA2000 section of the GX manual here?

It goes into some detail with an example for multiple batteries, if you have, please let me know and I will look into more detail with you.

6 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

bathnm avatar image bathnm commented ·

Guy,

Yes I have read it. What I took away is that the data instance should not be changed and can be unique to a device, so the main 12v battery will be 0 and the start batter 1 from one of the BMV's and the Lithium bank will be 0 from the second BMV.

The device instance does not need to be unique across devices with different functions, However as I have two BMV's I take it that I need to change the device instance. So that for example the BMV being used to measure the 12v battery bank and starter could be device instance 0, while the BMV monitoring the 24v Lithium bank could be 1. This I did, but doesn't seem to make any difference.

It did not seem to make sense to change the system instance as I have no bridges, routers or gateways.

I changed the device instance through the Cerbo Interface under Settings; Services; VE.Can Port; Devices. I then set the BMV named Lithium Bank, with a N2kUniqueNumber of 503 to have a device instance of 1, leaving the BMV Named 12v House with a N2kUniqueNumber of 504 with a device instance of 1

There is always a chance that the Raymarine devices are not interpreting the data being received correctly.

0 Likes 0 ·

Did you also read this document (linked in the Instances section of the NMEA2000 section of the GX manual)?

It sounds like it perfectly describes your situation - Note I don't think you can change the required instance through the Cerbo, it requires additional software. But I have not personally done it, so I can't speak from experience.

I want to make sure that we exhaust the written documentation before I seek additional help from someone more experienced. Forgive the imprecise advice here, I much prefer to have the thing in front of me working before I try and help someone else do it :)

https://www.victronenergy.com/live/ve.can:changing_nmea2000_instances

0 Likes 0 ·
bathnm avatar image bathnm commented ·

@Guy Stewart (Victron Community Manager), Yes I read all the links and information. The guidance suggests not changing data instance and the documentation has the following warning:

WARNING: whilst it is possible to change the data instances, changing them on a Victron devices will render that device impossible to read correctly by other Victron devices.

Further in Section 7.4.5 it again recommends that the Data Instance is not changed, and also suggest that device instance is left at default value of 0.

I have managed to sort it. I had to use dubs-spy (see screen capture) and change the data instance, setting the BMV712 on the 12v BMV to data instance 0 (12v House Battery) and 1 (Starter Motor); then on the BMV712 on the 24v Lithium bank to be 3 and 4. Also modified the Multiplus battery instance to be 3.

I know this is not as per the documentation and not the preferred way, but at least my Raymarine Axiom and Yacht Devices CAN Log Viewer is getting the data. What I do not know is what it will break in the Victron Ecosystem, as I am not connecting any Victron equipment via CAN Bus, I hope it does not impact any of the VE.Direct or VE.Bus activities, but I guess only time will tell!

The two images show the system swapping between 13.55 and 26.6V, and this was with the two BMV's being set with separate device instances (using values 0 and 1). it is clear that some systems do not differentiate data based on device instance just data instance abs if the data instance for two sources is the same it flips between values. As soon as I changed the data instance everything reported as expected and no flipping between values seen. I didn't get a screen shot of the DC Sources with all 4 data instances. Will do this when I am next on the boat.

What I find interesting is that there is no Time Remaining or SOC being displayed by Yacht Devices CAN Log Viewer, but this morning the Axiom was showing this data.

@Greg Ireland, thanks for the link to your question. Certainly helpful as I would have continued down the change the device and system instance rather than data instance

0 Likes 0 ·
bathnm avatar image bathnm commented ·

@Guy Stewart (Victron Community Manager), I have just heard back from Raymarine and they differentiate batteries based on a data instance. You might want to update your documentation and revise the statement about not hanging the data instance. If you would like any logs or anything else, please do let me know.

0 Likes 0 ·

That’s interesting, have you got it working now as you expect it to based on Raymarine’s additional information?

When you have got it all working successfully, without having seen Raymarine’s exact statement, could you please direct me to which part of the Victron documentation you think contradicts their statement, and for extra points, how it could be written to encompass it instead?

0 Likes 0 ·
bathnm avatar image bathnm Guy Stewart (Victron Community Manager) ♦♦ commented ·

@Guy Stewart (Victron Community Manager), Good morning. Sorry I missed this question a few weeks back and had no email alert.

Please see my post above, from the 6th as that has details of what I did.

Since then I have modified things further, I have moved the Lithium shunt (main battery() to be device instance 0 with data instance 0 and 1. I hope this will allow the VenusOS and other Victron VE.Can connected devices to work correctly (especially my VE.Can connected MPPTs). My secondary shunt for the 12v battery to device instance 1 with data instance 2 and 3. I also changed the Multiplus back to 0, as I suspect that is needed to also ensure things in the Victron eco system do not break.

I also had to set the Multiplus to monitor the battery state (via VEConfig), as without this it reported a SOC of 0 and the Raymarine was swapping between a valid SOC and 0. I could not find any manuals that stated this needed to be done, when you have a shunt monitoring SOC and the VenusOS is synching SOC with the VE.Bus.

This is what Raymarine stated:


So they look at nothing other than data instance, so one needs to change the data instance to allow the Raymarine and Yacht Devices and possibly others to get the different battery information. I can understand why, as it is simpler to just code to look at the Data Instance rather than combination of Device Instance and Data Instance.

Hope this helps, if you need any Raymarine Axiom screen shots other than what I have posted on the 6th please let me know.

0 Likes 0 ·
Greg Ireland avatar image
Greg Ireland answered ·

Hi @Bathnm I can help with this one as I also have 2 x BMV712’s connected via VE Direct to a Venus GX and experienced the same issue.

My situation was slightly different as I was attempting to display the 12V and 24V battery banks on Maretron N2KView and changing the device instance was making no difference. I needed to change the data instance and as I also have a Quattro inverter installed I was getting battery data for that as well (instance 0).

After determining I could not change them within Victron or Maretron interfaces I purchased an Actisense USB/PC interfaces and using their software was able to edit the data instances to 2 and 4 respectively (to allow for the aux voltage input on the 712) and all data displayed correctly after that.

More detail can be found on this thread if needed

Change the data instance for BMW712 in NMEA2000

Greg

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

bathnm avatar image bathnm commented ·

Greg,

Thanks, looks like I need too change the data instance rather than device instance. I might try that when I am next on the boat.

0 Likes 0 ·

Related Resources

Victron Venus OS Open Source intro page

Venus OS GitHub (please do not post to this)

Additional resources still need to be added for this topic