14. Marine MFD integration by NMEA 2000
14.1. NMEA 2000 Introduction
Victron Energy GX devices feature an NMEA 2000-out function: when enabled, the GX device acts as a bridge: it makes all Battery monitors, Inverter/chargers and other products connected to the GX device available on the NMEA 2000 network.
Using that feature, and having the GX device connected a NMEA 2000 network, Marine MFDs can read this data and visualise it to the user. Often in a highly configurable manner.
Use our VE.Can to NMEA2000 micro-C male cable to connect the GX device to the NMEA 2000 network.
Comparison to the App integration
Compared to MFD integration using the App, as explained in the previous chapter, integration via N2K offers a more customisable configuration. The downside of integration via N2K is that there is more work in making such configuration, as well as making sure all PGNs and fields therein are supported and compatible between the Victron system and the MFD.
More information
Besides this chapter, make sure to also read:
The NMEA 2000 chapter in this manual for the MFD you are using:
Yes, that is a lot of reading, but that is basically inherent to NMEA 2000: for example, some of those MFDs support displaying AC data received over the NMEA 2000 wiring, others do not. Some require changing Data instances, others do not, and so forth.
14.2. Supported Devices / PGNs
NMEA 2000 defines several messages.
Messages are identified by their parameter group number (PGN).
A textual description of the message is publicly available on the NMEA 2000 website (http://www.nmea.org/).
Detailed specification of the protocol and message definition or part thereof can be ordered online on the NMEA 2000 website.
NMEA 2000 is based on and compatible with SAE J1939. All AC information messages are in the AC status message format as defined in J1939-75. The specification of these messages can be bought on the SAE website (http://www.sae.org/).
For a detailed list of PGNs, please refer to our Data communication with Victron Energy products whitepaper.
Inverter/chargers
All inverter/chargers that connect using a VE.Bus port are supported. This includes Multis, Quattros, MultiPlus-IIs, and other (similar) Victron inverter/chargers.
Data is transmitted out; and its possible to set shore current as well as switch the inverter/charger on and off as well as activate the Inverter only and Charger only modes.
The interface has two functions:
The function, “153 Inverter”, represents the AC-output
The function “154 AC Input” monitor represents the AC-input
Charger status messages will be sent by the Inverter function. Both functions have their own network address. Since both functions transmit the same PGNs, for example an AC Status PGN containing voltage, current and more information, NMEA 2000 data consumers like generic displays will need to be able to make a distinction based on the network address. Depending on the function belonging to that network address, the need to interpret it as either Inverter Input or Inverter Output.
Displays not being capable of doing so will regard the data as belonging to the mains (utility). The Inverter Output is then interpreted as utility #0 and Inverter Input as utility #1. These default instance numbers can be changed by a network configuration tool if necessary.
Battery temperature, as measured by the inverter(/charger), is transmitted as well.
All VREG communications need to be sent to the address representing the Inverter function. The other one, AC input, does not support VREG requests: that address only transmits AC information related to the AC input.
Inverters
Both, the range of inverters connected via VE.Bus as well as our range of inverters connected using a VE.Direct cable, is supported and its information made available on the NMEA 2000 network.
Battery monitors
Supported. This includes any battery monitor as supported by the GX device.
The battery selected as the system battery in the GX device (Settings → System Setup → Battery Monitor) are transmitted with a fixed Device and Battery instance of 239, this to ensure there is always the same instance for the main (system) battery instead of a system using instance 0 for i.e the Lynx Smart BMS (with built-in battery monitor) and a system with ie. a SmartShunt using different instances.
Solar chargers
Supported. Battery related values as well as the PV Array Voltage & Current is made available on the NMEA 2000 network.
AC chargers
Phoenix Smart IP43 Charger 120-240V and 230V models are supported. Only the 120-240V model allows to be remotely controlled (on/off and input current limit) from a compatible MFD.
Tank level data
All tank levels visible on the GX device, including GX Tank 140 and Mopeka sensors, are transmitted onto the NMEA 2000 network. The used PGN is 127505 Fluid Level, which includes Fluid instance (aka Data instance), Fluid type (Fuel, Fresh Water, Waste Water, Live Well, Oil, Black Water, Gadoline, Diesel, LPG, LNG, Hydraulic oil and Raw Water) and Fluid level as percentage of tank capacity and tank capacity.
Be careful when using the fluid types LNG, LPG, Diesel and Hydraulic oil: these are relatively new types in the NMEA 2000 standard and not all MFDs and chartplotters support them yet.
Labelling of the tanks on the MFDs needs to be done on each MFD itself. The custom name as configured in the Victron system is transmitted in the field Installation description #1 in the PGN 126996 - Product Information, but not used by the MFDs.
The GX device automatically numbers each tank with a unique Device instance and Tank instance. They are made the same. This automatic numbering is done specifically and only for tank levels to make the process of showing them properly on all different brands and types of MFDs as simply as possible.
Other data and product types
Not supported. Above explicitly mentioned types are the only ones now supported.
14.3. NMEA 2000 Configuration
Setting | Default | Description |
---|---|---|
CAN-bus Profile | VE.Can | Defines the type & baudrate of the CAN-bus network. To use in combination with NMEA 2000, make sure to choose one of the profiles that include VE.Can and is at 250kbit/s |
NMEA2000-out | Off | Enables and disables the NMEA2000-out function |
Unique identity number selector | 1 | Selects the block of numbers to use for the NAME Unique Identity Numbers in the PGN 60928 NAME field. For the GX device itself, and when NMEA2000-out is enabled, also for the virtual-devices. Change it only when installing multiple GX devices in the same VE.Can network. There are no other reasons to change this number. For more details regarding the Unique Identity Number, read the last section in this chapter. |
Check unique id numbers | Searches for other devices that use the same unique number. When the search is completed, it will respond with either an OK, or the text : There is another device connected with this unique number, please select another one. Note that there is normally no reason to use this function: the GX device automatically and continuously checks uniqueness of the numbers in use and will warn in case there is a conflict. This setting is made available to quickly confirm that everything is OK after changing the setting. |
14.4. Configuring Multiple Tank Level Measurements (Raymarine)
Modern Raymarine Axiom MFDs are capable of displaying up to 16 tank levels and smaller MFDs such as the i70 or i70s can display up to 5 tanks.
The following restrictions apply:
Currently, the Axiom can only display Fuel (default), Fresh Water, Waste Water aka Grey Water, Live Well, Black Water and Gasoline fluid types. The other fluid types such as LNG, LPG, Hydraulic oil and Diesel are not displayed. This is a Raymarine limitation, which may change with a future firmware update.
However, it is possible to configure a specific tank sender's fluid type in the GX device menu to one of the supported ones, and then rename the tank in the Axiom tank settings (Boat Details > Configure Tanks > Tank Settings) to whatever you like, e.g. LPG, which is then displayed as LPG tank on the dashboard.
The i70 and i70s will display up to 5 tanks where the fluid type must be Fuel. All other fluid types are not displayed.
For instancing requirements, see the Instancing requirements when using Raymarine section further below.
All tank senders as mentioned in the chapter Connecting Victron products and Connecting supported non-Victron products are supported.
Configuration step-by-step
Before proceeding with the following steps, you must connect the GX device to the NMEA 2000 network to which the MFD is connected. Use our VE.Can to NMEA 2000 micro-C male cable to connect the GX device to the NMEA 2000 network and ensure NMEA2000-out of the VE.Can port is enabled in the GX device.
The procedure below does not replace the Raymarine manual; Be sure to read the Raymarine documentation that accompanies your Raymarine MFD. Visit the Raymarine Manuals and Documents website for the latest version
Connect the tank sensors to your GX device.
Make sure the tank sensors are set to a fluid type supported by your MFD.
This is done in the setup menu of the tank sensor in the Remote Console - Device List → [your_tank_sensor] → Setup → Fluid type
On your Axiom MFD, go to Settings > Boat Details > Tanks > Configure Tanks and verify that all tank sensors are listed.
Tip
By briefly tapping on the respective tank, you can change the tank to a meaningful name, which then will be displayed on the dashboard.
Open the TANKS dashboard or set up a new page to view the tanks.
By long tapping on one of the tanks you can make further configurations, e.g. select the tank to be displayed or, if available, change the unit from percent to volume.
14.5. Configuring Multiple Tank Level Measurements (Garmin)
Modern Garmin MFDs such as the GPSMAP 84xx series are capable of displaying different types of tank levels.
The following restrictions apply:
Currently, the GPSMAP can only display Fuel (default), Fresh Water, Waste Water aka Grey Water, Live Well, Oil, Black Water and Generator fluid types. The other fluid types such as LNG, LPG and Diesel are not displayed. This is a Garmin limitation, which may change with a future firmware updates of your MFD.
However, it is possible to configure a specific tank sender's fluid type in the GX device menu to one of the supported ones, and then rename the tank in the GPSMAP tank settings to whatever you like, e.g. LPG, which is then displayed as LPG tank on the dashboard.
All tank senders as mentioned in the chapter Connecting Victron products and Connecting supported non-Victron products are supported.
Configuration step-by-step
Before proceeding with the following steps, you must connect the GX device to the NMEA 2000 network to which the MFD is connected. Use our VE.Can to NMEA 2000 micro-C male cable to connect the GX device to the NMEA 2000 network and ensure NMEA2000-out of the VE.Can port is enabled in the GX device.
The procedure below does not replace the Garmin manual; Be sure to read the Garmin documentation that accompanies your MFD; There are some differences in the menu navigation of the various MFDs.
Connect the tank sensors to your GX device.
Make sure the tank sensors are set to a fluid type supported by your MFD.
This is done in the setup menu of the tank sensor in the Remote Console - Device List → [your_tank_sensor] → Setup → Fluid type
On your Garmin MFD, go to Settings > Communications > NMEA 2000 Setup > Device List and verify that all tank sensors are listed.
Configure the tank level sensors by opening a gauges screen and then select Menu > Tank Preset where you can select a tank level sensor to configure, change the name, type, style, capacity and position of the tank.
14.6. Configuring Multiple Tank Level Measurements (Navico)
Modern Navico MFDs such as the Simrad NSO EVO3 series are capable of displaying different types of tank levels.
The following restrictions apply:
Currently, a compatible Simrad MFD can only display Fuel (default), Water, Waste Water aka Grey Water, Live Well, Oil and Black Water fluid types. The other fluid types such as LNG, LPG and Diesel are not displayed. This is a Simrad limitation, which may change with a future firmware updates of your MFD.
However, it is possible to configure a specific tank sender's fluid type in the GX device menu to one of the supported ones, and then rename the tank in the MFD tank settings to whatever you like, e.g. LPG, which is then displayed as LPG tank on the dashboard.
All tank senders as mentioned in the chapter Connecting Victron products and Connecting supported non-Victron products are supported.
Configuration step-by-step
Before proceeding with the following steps, you must connect the GX device to the NMEA 2000 network to which the MFD is connected. Use our VE.Can to NMEA 2000 micro-C male cable to connect the GX device to the NMEA 2000 network and ensure NMEA2000-out of the VE.Can port is enabled in the GX device.
The procedure below does not replace the Simrad manual; Be sure to read the Simrad documentation that accompanies your MFD; There are some differences in the menu navigation of the various MFDs.
Connect the tank sensors to your GX device.
Make sure the tank sensors are set to a fluid type supported by your MFD.
This is done in the setup menu of the tank sensor in the Remote Console - Device List → [your_tank_sensor] → Setup → Fluid type
On your Simrad MFD, go to Settings > Network > Sources > Advanced > Data source selection and verify that all tank sensors are listed. The tank sensors should automatically be identified by the system. If not, enable the feature from the advanced option in the System settings dialog.
Selecting a tank sensor from within the Data source selection menu will bring up additional details and configuration options such as fluid type, location or custom name. Finally, open a dashboard or create a custom dashboard and place the tank sensors as you wish.
14.7. Configuring Multiple Tank Level Measurements (Furuno)
Modern Furuno MFDs such as the NavNet TZtouch3 series are capable of displaying different types of tank levels.
The following restrictions apply:
Currently, the NavNet TZtouch3 series can only display Fuel (default), Fresh Water and Black Water with up to 6 tanks for each of the three fluid types.
However, it is possible to change the "Nickname" for each individual tank in the Engine & Tank Manual Setup menu.
All tank senders as mentioned in the chapter Connecting Victron products and Connecting supported non-Victron products are supported.
Configuration step-by-step
Before proceeding with the following steps, you must connect the GX device to the NMEA 2000 network to which the MFD is connected. Use our VE.Can to NMEA 2000 micro-C male cable to connect the GX device to the NMEA 2000 network and ensure NMEA2000-out of the VE.Can port is enabled in the GX device.
The procedure below does not replace the Furuno manual; Be sure to read the Furuno documentation that accompanies your MFD; There are some differences in the menu navigation of the various MFDs.
Connect the tank sensors to your GX device.
Make sure the tank sensors are set to a fluid type supported by your MFD.
This is done in the setup menu of the tank sensor in the Remote Console - Device List → [your_tank_sensor] → Setup → Fluid type
The Furuno MFD will automatically detect tanks connected to the same NMEA 2000 network. If this is not possible (check the Engine & Tank Automatic Setup menu), the tanks can be set manually using the Engine & Tank Manual Setup menu.
Set up an "Instrument Display" of your choice and add the respective tanks as an "Indication" (as outlined in the Operator's manual) to the instrument display.
14.8. NMEA2000-out technical details
14.8.1. NMEA 2000 Glossary
Here is a glossary to help with the interpretation of this text:
Virtual-device: a Battery Monitor, Inverter, or other Victron device that does not have a CAN-bus port by itself, made available “virtually” on the CAN-bus by the NMEA2000-out function of the GX device.
CAN-bus: the VE.Can port on the GX device, that, in the context of this chapter, is most likely connected to a NMEA 2000 network.
NMEA2000-out: the software feature in the GX device, which is described in this chapter.
NMEA 2000: Marine CAN-bus protocol, based on J1939.
Instance: there are many types of instances, and explained in detail below.
J1939: A set of standards defining a CAN-bus protocol, defined by the SAE organisation.
Address Claim procedure (ACL): a mechanism, specified by J1939 and used in NMEA 2000 by devices on the network to negotiate and assign each device on the network a unique network addresses. It is a number from 0 to 252. There are three special network addresses defined:
0xFD (253) - Reserved
0xFE (254) - Unable to claim address - for example when all others are in use
0xFF (255) - The broadcast address
14.8.2. NMEA 2000 Virtual-devices
When the NMEA2000-out feature is enabled, the GX device acts as a bridge: it will make each Battery monitor, Inverter/charger or other device that is connected available individually on the CAN-bus. Individually, as in each with its own network address, its own Device instance, function codes, and so forth.
For example, a GX device with two BMVs connected on a VE.Direct port and an inverter/charger connected using VE.Bus, will make the following data available on the CAN-bus:
Address | Class | Function | Description |
---|---|---|---|
0xE1 | 130 (Display) | 120 (Display) | The GX device itself |
0x03 | 35 (Electrical generation) | 170 (Battery) | The 1st BMV |
0xE4 | 35 (Electrical generation) | 170 (Battery) | The 2nd BMV |
0xD3 | 35 (Electrical generation) | 153 | The inverter/charger (AC-output) |
0xD6 | 35 (Electrical generation) | 154 | The inverter/charger (AC-input) |
14.8.3. NMEA 2000 Classes and Functions
As per NMEA 2000 specification, these define the types of senders and devices connected to the CAN-bus. Classes are the main categories and functions specify it to a further detail.
14.8.4. NMEA 2000 Instances
Instances are used in an NMEA 2000 network to identify multiple similar products connected to the same network.
As an example, take a system with two battery monitors (one for the main battery bank, and another for the hydraulic-thruster bank) and also a Quattro inverter/charger. All three of those devices will send their battery voltage measurements out on the N2K network. For the displays to show these values at the right place, they need to know which voltage belongs to what battery. That is what instances are for.
There are various types of instances, and for marine systems are two that matter: the Device instance and the Data instance. The Data instance goes by various different names, like Fluid instance, Battery instance and DC instance. NMEA 2000 defines three different instances:
Data instance
Device instance
System instance
For all battery monitors and other devices that the GX device makes available on the CAN-bus, each of the above types of instances is available and can be individually configured.
Per Virtual-device, there is one Device instance and one System instance. And depending on the type of Virtual-device, there are one or multiple Data instances.
For example, for a BMV-712 there are two Data instances, one DC Instance for the main battery and another one for the Starter battery voltage.
How to configure the instances depends on the equipment and software that is used to read them from the CAN-bus. Examples of equipment and software meant here are MFDs such as from Garmin, Raymarine, Furuno or Navico; as well as more software-oriented solutions from for example Actisense and Maretron.
Most of those solutions identify parameters and products by requiring unique Device instances, or using the PGN 60928 NAME Unique Identity Numbers and do not rely on the Data instances to be globally unique.
However, there is one exception:
Raymarine MFDs may need to change the Data instance to display data properly, depending on the Lighthouse firmware version. For more information, please see the Raymarine-specific NMEA 2000 chapter.
The NMEA 2000 specification specifies the following: “Data instances shall be unique in the same PGNs transmitted by a device. Data instances shall not be globally unique on the network. Field programmability shall be implemented through the use of PGN 126208, Write Fields Group Function.”.
In other words, Data instances need to be unique only within a single device. There is no requirement for them to be globally unique – the only exception is “Engine Instance” which at least for now, to cope with legacy devices, needs to be globally unique (e.g. Port = 0, Starboard = 1). For example, some of our BMV battery monitors can measure two voltages, one for the main battery and one for the starter battery, and that's where data instancing is used. Similar for multiple-output battery chargers. Note that there is no need for the installer to change those data instances, as those products are pre-configured to transmit the relevant PGNs with unique Data instances (Battery instance & DC Detailed instance, in this case).
Warning
Whilst it is possible to change the Data instances, changing them on a Victron device such as the Skylla-i battery charger will render that device impossible to read correctly by other Victron devices.
This is because the GX device expects the charger's output one to be on Battery & DC instance 0, output two on Battery & DC instance 1, and output three on Battery & DC instance 2. Changing the fluid instance, as well as other data instances for PGNs transmitted by a GX device on an NMEA 2000 network using its NMEA2000-out feature, is no problem.
A note about the Device instances: it is not necessary to assign a unique Device instance to each device on the CAN-bus. Its no problem for a battery monitor and a solar charger to both be configured with (their default) Device instance 0. Also when having multiple battery monitors or solar chargers, it is not always necessary to assign each of them a unique Device instance. If at all necessary, they only need to be unique between the devices that use the same Function.
And note that changing the Device instance on a Victron device can change its operation, see the warning above.
System instances
As per NMEA 2000 specification, this instance is a 4-bit field with a valid range from 0 to 15 that indicates the occurrence of devices in additional network segments, redundant or parallel networks, or sub networks.
The System Instance Field can be utilised to facilitate multiple NMEA 2000 networks on these larger marine platforms. NMEA 2000 devices behind a bridge, router, gateway, or as part of some network segment could all indicate this by use and application of the System Instance Field.
The ECU instance and Function instance
In some documentation and software tools, yet other terminology is used:
ECU Instance
Function Instance
Device Instance Lower
Device Instance Upper
Here is how they all relate: the ECU Instance and Function Instance terminology originates from the SAE J1939 and ISO 11783-5 specification. And they do not exist in the NMEA 2000 definition. However, they all do define the same fields in the same CAN-bus messages which NMEA 2000 defines as Device instance.
In more detail: The field that J1939 defines as ECU Instance is in the NMEA 2000 specification renamed to Device Instance lower. The Function Instance is renamed to Device Instance Upper. And together they form the Device Instance, an NMEA 2000 definition.
While using different terms, those fields are the same fields in both standards. Device Instance Lower being 3 bits in length, and Device Instance Upper 5, together 8 bits. Which is the one byte being the NMEA 2000 Device Instance.
The Unique Instance
The Unique Instance is one more word used to describe almost the same information. It's used by Maretron and can be made visible in their software by enabling the column. The Maretron software itself chooses between Device Instance and Data Instance.
14.8.5. NMEA 2000 Changing Instances
As the NMEA 2000 protocol prescribes commands to change an instance by sending commands to a device, there are various ways of changing instances. The most commonly used methods are described below. In addition to the methods described here, there are others, for example, some MFDs also allow instances to be modified.
Commonly used methods to change instances:
Remote Console on a GX device: Device instances only
Actisense NMEA-Reader software + NGT-1 USB: Device and Data instances
Maretron software + USB adapter: Unknown (see Maretron documentation)
Commandline of a GX device: Device and Data instances. Note that this required advanced Linux skills; and is listed here only for the benefit of experienced software developers
Notes on changing Data and Device instances
Data instance:
Even though we recommend not changing Data instances (see the explanation and WARNING above), it is possible to change them.
Venus OS has no option to change them - a third-party tool is required and the only tool we know can do is the Actisense NMEA 2000 Reader.
Device instance:
WARNING: these (Victron-)features depend on the Device instance:
For an ESS system with Solar chargers connected to a VE.Can network, those Solar chargers must remain to be configured to their default Device instance (0) for proper operation. This does not apply to VE.Direct-connected Solar chargers made available on the CAN-Bus as a Virtual-device, using the NMEA 2000-out function. Unless the Device instance of the GX device is re-configured to another Device instance. Which is technically possible but not advised and also never required. But in that situation, the chargers must be configured to the same instance as the GX device.
For systems with managed batteries, the same.
For both, Solar chargers, as well as AC-connected battery chargers, when connected in a VE.Can network, they will synchronise their operation, charge state and such. All chargers must be configured to the same Device instance for that function to work.
In summary, for most systems, we recommend leaving the Device instance to its default, 0.
Remote Console on a GX device: Changing the Device instance:
The VE.Can devices submenu gives access to a list showing all detected devices on the VE.Can / NMEA 2000 network:
Each entry first shows the name - either the product name as in our database, or when configured, the custom name as configured during installation.
Then, between the square brackets, the Unique Identity Number is shown.
On the right you can see the VE.Can Device Instance, which is the same as the NMEA 2000 Device Instance.
Press Enter to edit the specific Device Instance or press the spacebar/right cursor key to go one step deeper in the menu structure to a page showing all the generic data available for that device:
Actisense: Changing Device instances:
Requires the Actisense NGT-1.
To change a Device instance:
Open Actisense NMEA Reader
Select the network view (tab selection is at the bottom left)
Select the product whose Device instance you want to change
Select the properties tab at the bottom right and change the Device instance
Actisense: Changing Data instances:
Requires the Actisense NGT-1.
To change a Data instance:
Open Actisense NMEA Reader
Select data view (tab selection is at the bottom left)
Right click on the PGN number
Note that this will only work on PGNs that allow changing their Data instance (first screenshot below)
And change the value (second screenshot below)
Notes:
The Battery instance and the DC instance are the same value within Victron products. Changing one of them, will also change the other one.
Since the BMV sends out two voltages, the main voltage and the aux- or starter-voltage, it comes preconfigured with two battery instances: 0 and 1. When you want to change that to 1 and 2, change the 1 into 2 first, and then the 0 into 1, as they cannot be the same.
Changing the fluid level instance using Actisense has a bug. Probably due Actisense seeing it as 8 bit number; while in the definition it is a 4 bit number. Work around: using the GX, set the fluid type to Fuel (0), then using Actisense change the fluid instance to the desired value, and then using your GX, set the type back to the desired type.
Maretron N2KAnalyzer:
Maretron uses a term called “Unique Instance” where the N2KAnalyzer software tool automatically determines if a particular device uses Device or Data instances.
Warning
WARNING: At Victron we do not understand what and how the Maretron software works with regards to this. We advise to use another tool, not Maretron, so that you know what you are doing, ie know what instance you are changing. So far, we have not been able to use Maretron software to change a Data instance. And changing the other instance, the Device instance can also be done straight from the Victron GX device its user interface. To change a Data instance, for example to fix instance conflicts as reported by the Maretron software, we recommend to use Actisense. Not Maretron.
Changing the instances from the GX command line:
Instead of using Actisense or Maretron software, it is also possible to change the VE.Can aka N2K Device instance from the GX Device shell. To get root access, follow these instructions: Venus OS: Root Access.
Once logged into the shell, follow below instructions. More back ground information of the used commands such as dbus and dbus-spy is found by reading about root access document.
Warning
WARNING: Better use an Actisense!
The procedure described in the following paragraphs is not normally recommended. Use an Actisense instead, see the Actisense method explained earlier.
New method - changing a Device instance:
All devices available on the canbus are enumerated under the com.victronenergy.vecan service. And for all devices that support the necessary can-bus commands, the Device instance can be changed. All Victron products support changing their Device instance; and most or all non-Victron products as well.
# dbus -y com.victronenergy.vecan.can0 / GetValue value = { 'Devices/00002CC001F4/DeviceInstance': 0, 'Devices/00002CC001F4/FirmwareVersion': 'v2.73', 'Devices/00002CC001F4/Manufacturer': 358, 'Devices/00002CC001F4/ModelName': 'Cerbo GX', 'Devices/00002CC001F4/N2kUniqueNumber': 500, 'Devices/00002CC001F4/Nad': 149, 'Devices/00002CC001F4/Serial': '0000500', 'Devices/00002CC005EA/CustomName': 'Hub-1', 'Devices/00002CC005EA/DeviceInstance': 0, 'Devices/00002CC005EA/FirmwareVersion': 'v2.60-beta-29', 'Devices/00002CC005EA/Manufacturer': 358, 'Devices/00002CC005EA/ModelName': 'Color Control GX', 'Devices/00002CC005EA/N2kUniqueNumber': 1514, 'Devices/00002CC005EA/Nad': 11, 'Devices/00002CC005EA/Serial': '0001514', 'Devices/00002CC005EB/CustomName': 'SmartBMV', [and so forth]
To change them, do a SetValue call to the DeviceInstance path like below. Or, perhaps easier, use the dbus-spy tool.
These lines read it, then changes it to 1, then reads it again:
root@ccgx:~# dbus -y com.victronenergy.vecan.can0 /Devices/00002CC005EB/DeviceInstance GetValue value = 0 root@ccgx:~# dbus -y com.victronenergy.vecan.can0 /Devices/00002CC005EB/DeviceInstance SetValue %1 retval = 0 root@ccgx:~# dbus -y com.victronenergy.vecan.can0 /Devices/00002CC005EB/DeviceInstance GetValue value = 1 [note that numbers, like can0, and 00002CC005EB can ofcourse be different on your system].
New method - changing Data instance:
This applies only to the NMEA2000-out feature.
The Data instances used for the NMEA2000-out feature are stored in local settings. Here is a snippet of the lines, taken by using the dbus-spy tool that also allows changing entries (the Data instances are the “Battery-”, “DC Detailed-”, and so forth instances):
Settings/Vecan/can0/Forward/battery/256/BatteryInstance0 0 <- Data instance for main voltage measurement Settings/Vecan/can0/Forward/battery/256/BatteryInstance1 1 <- Data instance for starter or mid-voltage measurement Settings/Vecan/can0/Forward/battery/256/Description2 Settings/Vecan/can0/Forward/battery/256/IdentityNumber 15 Settings/Vecan/can0/Forward/battery/256/Instance 1 Settings/Vecan/can0/Forward/battery/256/Nad 233 <- Source address - no need, also not good, to change this Settings/Vecan/can0/Forward/battery/256/SwitchInstance1 0 <- Data instance for switchbank Settings/Vecan/can0/Forward/battery/256/SystemInstance 0 Settings/Vecan/can0/Forward/solarcharger/0/DcDataInstance0 0 Settings/Vecan/can0/Forward/solarcharger/0/DcDataInstance1 1 Settings/Vecan/can0/Forward/solarcharger/0/Description2 Settings/Vecan/can0/Forward/solarcharger/0/IdentityNumber 25 Settings/Vecan/can0/Forward/solarcharger/0/Instance 0 Settings/Vecan/can0/Forward/solarcharger/0/Nad 36 Settings/Vecan/can0/Forward/solarcharger/0/SystemInsta 0 Settings/Vecan/can0/Forward/solarcharger/1/DcDataInstance0 0 <- Battery voltage & current Settings/Vecan/can0/Forward/solarcharger/1/DcDataInstance1 1 <- PV voltage & current Settings/Vecan/can0/Forward/solarcharger/1/Description2 Settings/Vecan/can0/Forward/solarcharger/1/IdentityNumber 24 Settings/Vecan/can0/Forward/solarcharger/1/Instance 0 Settings/Vecan/can0/Forward/solarcharger/1/Nad 36 Settings/Vecan/can0/Forward/solarcharger/1/SystemInstance 0 Settings/Vecan/can0/Forward/solarcharger/258/DcDataInstance0 0 Settings/Vecan/can0/Forward/solarcharger/258/DcDataInstance1 1 Settings/Vecan/can0/Forward/solarcharger/258/Description2 Settings/Vecan/can0/Forward/solarcharger/258/IdentityNumber 23 Settings/Vecan/can0/Forward/solarcharger/258/Instance 0 Settings/Vecan/can0/Forward/solarcharger/258/Nad 36 Settings/Vecan/can0/Forward/solarcharger/258/SystemInstance 0
Old method:
List the devices:
root@ccgx:~# dbus -y com.victronenergy.bms.socketcan_can0_di0_uc10 com.victronenergy.charger.socketcan_can0_di1_uc12983
Change it, for example, to 4:
root@ccgx:~# dbus -y com.victronenergy.charger.socketcan_can0_di0_uc12983 /DeviceInstance SetValue %4 retval = 0
Wait a few seconds, and double check:
root@ccgx:~# dbus -y com.victronenergy.bms.socketcan_can0_di0_uc10 com.victronenergy.charger.socketcan_can0_di4_uc12983
Device instance changed successful!
14.8.6. PGN 60928 NAME Unique Identity Numbers
The GX device will assign an individual Unique Identity Number to each Virtual-device. The number assigned is a function of the PGN 60928 NAME Unique Identity Number block aka Unique device number for VE.Can as configured in the settings of the GX device.
This table shows how changing that setting translates into the virtual-devices as made available on the CAN-bus:
Configured Unique Identity block: | 1 | 2 | 3 | 4 |
---|---|---|---|---|
GX device | 500 | 1000 | 1500 | 2000 |
1st virtual-device (for example a BMV) | 501 | 1001 | 1501 | 2001 |
2nd virtual-device (for example another BMV) | 502 | 1002 | 1502 | 2002 |
3rd virtual-device (for example a third BMV) | 503 | 1003 | 1503 | 2003 |