Data Communication with Victron Energy Products
Matthijs Vader
Introduction
Many of our customers integrate our products into their own systems, using data communication protocols. There are several options to establish data communication. The purpose of this document is to explain the different options, and help you choose one.
Communicating to a complete system? Use Modbus-TCP
Rather than going for direct communication with Inverters, battery monitors or Solar chargers, consider using Modbus-TCP. This has two advantages:
- Modbus-TCP is easier than most other protocols
- Retrieve pre-calculated system data, as available on the Color Control GX
Looking for internet related protocols? Use the JSON API or MQTT
Once uploaded to the VRM Portal by a Color Control GX, or another device running our Venus OS, the data can be requested via our VRM JSON API: https://vrmapi.victronenergy.com/v2/docs
Besides that API, MQTT is also available. More information here: https://github.com/victronenergy/dbus-mqtt/blob/master/README.md
Integrating into a Marine NMEA 2000 network?
See our integration guide: https://www.victronenergy.com/live/ve.can:nmea-2000:start
More information
As a developer, make sure to also have a look at these two pages:
Products with Data Communication
The following product lines have a data communication port, with protocol information available for 3rd parties:
| Product range | Products in that range | Onboard comm. port | 3rd party protocol | How to connect |
|---|---|---|---|---|
| Color Control GX | Gateway to almost all Victron products that have a data communication port | Ethernet | Modbus-TCP | Modbus-TCP |
| Battery monitoring | BMV-600S, BMV-602S and BMV-600HS BMV-700 and BMV-700H |
BMV-60xS Text (TTL) VE.Direct |
CAN and BMV Text VE.Direct |
VE.Direct |
| Inverters | Phoenix Inverter models from 1200 to 5000VA Phoenix Inverter 250, 375 and 500VA |
VE.Bus VE.Direct |
CAN and MK2/MK3 VE.Direct |
Via interface Direct or via interface |
| Multi Inverter/chargers | Complete range: all Multis and Multi compacts | VE.Bus | CAN and MK2/MK3 | Via interface |
| Quattro's | Complete range | VE.Bus | CAN and MK2/MK3 | Via interface |
| Skylla-i/-IP44 battery chargers | Complete range | VE.Can | CAN | Direct |
| BlueSolar Chargers | BlueSolar MPPT 150/70 and 150/85 (VE.Can) BlueSolar MPPT 75/10 to 150/100 (VE.Direct) |
VE.Can VE.Direct |
CAN VE.Direct |
Direct Direct or via interface |
| Lynx Ion (Lithium Ion BMS) | Lynx Ion, Lynx Ion + Shunt and Lynx Ion BMS | VE.Can | CAN | Direct |
| Lynx Shunt 1000A VE.Can | Only the Canbus version. | VE.Can | CAN | Direct |
| Peak Power Pack | Complete range | VE.Direct | VE.Direct | Direct or via interface |
Protocol Overview
At Victron Energy we have the following protocols:
| Protocol | 3rd party connections allowed | Topology | Physical | International standard | More information |
|---|---|---|---|---|---|
| Modbus-TCP | Yes (preferred) | TCP/IP | Ethernet | Modbus-TCP | Further down in this document |
| VE.Direct | Yes (preferred) | Point to point | RS232 / TTL | Proprietary | On our website, see next page for link www.victronenergy.com |
| VE.Can / NMEA2000 | Yes | Drop cables / Daisy chain | CANBUS | J1939 & NMEA2000 | www.nmea.org |
| VE.Bus | No | Daisy chain | RS485 | Proprietary | See MK2/MK3 protocol on request |
| MK2/MK3 Protocol | Yes | Point to point | RS232 | Proprietary | On our website, see next page for link |
| BMV Text | Yes | Point to point | RS232 | Proprietary | On our website, see next page for link |
| VE9bit RS485 | No | Point to point | RS485 | Proprietary | Deprecated |
| VE.Net | No | Daisy chain | RS485 | Proprietary | Deprecated |
And then there are JSON and MQTT, see introduction.
NMEA2000 Certified Products
This table lists all Victron products that have an NMEA2000 or VE.Can communication port, and the status of NMEA2000 certification. Note that the mentioned NMEA2000 database version number is the database version used by the latest firmware of each product.
| Part number | Product | NMEA2000 Certified? | NMEA2000 DB |
|---|---|---|---|
| ASS030520000 | BMV-60xS to NMEA2000 interface | Yes | v1.301 |
| ASS030520100 | VE.Bus to NMEA2000 interface | Pending a firmware update due to the new AC PGN's | |
| LYN040102100 | Lynx Shunt VE.Can | Yes | v1.301 |
| LYN040301000 | Lynx Ion | No | |
| LYN010100100 | Ion Control | No | v1.301 |
| SCC010070000 | BlueSolar MPPT 150/70 (12/24/36/48V-70A) | No | v2.000 |
| SKI024080000 | Skylla-i battery charger 24V/80A (1+1) | Yes | v2.000 |
| SKI024080002 | Skylla-i battery charger 24V/80A (3) | No | v2.000 |
| SKI024100000 | Skylla-i battery charger 24V/100A (1+1) | Yes | v2.000 |
| SKI024100002 | Skylla-i battery charger 24V/100A (3) | No | v2.000 |
Make sure to read our NMEA 2000 & MFD integration guide.
Details per Protocol
VE.Can / NMEA2000
CANbus is the preferred protocol for third parties to communicate with our products. Our CANbus protocol is based on the NMEA2000 and J1939 protocols.
Further down in this document is a list per product with supported NMEA2000 PGNs. All data and settings that are not covered by the NMEA2000 standard PGNs are available through proprietary PGNs. More information is in the manuals of the Canbus-enabled products on our website, and in the document "VE.Can registers - public.docx". Look for it on the Whitepapers page on our website.
Detailed information on the NMEA2000 PGN's is available for purchase on the NMEA website (www.nmea.org). See the NMEA 2000® Appendix B POWER SUBSET.
VE.Direct
VE.Direct is a combination of what we used to call the HEX protocol and the BMV text protocol. It combines the advantages of both: in text-mode the products automatically transmit all important parameters every second. To implement code which reads and interprets this data is extremely simple. If more functionality is needed, such as changing settings, one can switch to the HEX protocol. Communication ports on new Victron products will always be either VE.Can or VE.Direct ports. The VE.Direct port is for products where a full Canbus connection adds to much cost. VE.Direct documentation is available on our website. Look for the VE.Direct Protocol document on: http://www.victronenergy.com/support-and-downloads/whitepapers/. And see also the VE.Direct FAQ: https://www.victronenergy.com/live/vedirect_protocol:faq.
Modbus TCP
The industry standard Modbus TCP is a well-known and open communication protocol, used in many PLCs and SCADA systems. The Victron Color Control GX acts as a Modbus-TCP gateway. Connect it to the Victron products that you want to monitor, and then communicate from your PLC to the Ethernet LAN port on the Color Control GX. It allows reading information, and writing operational parameters, such as Multi on/off and input current limiter settings. Changing configuration settings, such as battery capacity or float or absorption voltages, is not yet possible.
Check the Color Control GX Datasheet to find out which products are supported by the Color Control GX.
We use the default Modbus TCP port number, which is 502. The unit id, sometimes called 'slave address', specifies what product connected to the CCGX needs to be addressed. See the tab 'Unit ID mapping' in the Modbus-TCP excel sheet. The register addresses are listed on the first tab of the excel sheet, in column C. There are two data types, uint16 and int16. After receiving the value, divide it by the Scale factor to get the value in the unit as specified in column G.
Download the list of registers from our website, look for the CCGX Modbus-TCP register list on http://www.victronenergy.com/support-and-downloads/whitepapers/.
The FAQ page as well as a commenting system to put questions is available on Victron Live: http://www.victronenergy.com/live/ccgx:modbustcp_faq
Diagram: Modbus-TCP Connection
A diagram illustrates the Modbus-TCP connection. An Ethernet LAN switch is shown, connected via Ethernet to a Victron Color Control GX device. The Color Control GX is then connected via VE.Bus to a Victron Multi device and via VE.Direct to a Victron Battery Monitor (BMV). This setup demonstrates how the Color Control GX acts as a gateway for Modbus-TCP communication to other Victron devices.
VE.Bus Protocol
VE.Bus is our proprietary protocol used by the Inverters to synchronize their AC outputs. There are VE.Bus communication ports on our Inverters, Multi's and Quattro's. The synchronization feature is mission-critical. Direct third-party connections are not allowed. All interfacing has to be done via Modbus TCP (preferred), "VE.Bus to CANbus/NMEA2000 interface", or via the MK2/MK3:
MK2/MK3 Protocol
The MK2.2 and MK3 provide a galvanically isolated connection to VE.Bus, and it translates the VE.Bus protocol into the "MK2/MK3 Protocol". The MK2/MK3 Protocol allows reading information, turning the device on and off, changing the current limits and configuring a device. To download the document, look for the 'Interfacing with VE.Bus products – MK2/MK3 protocol' on: http://www.victronenergy.com/support-and-downloads/whitepapers/
Note that implementing the MK2/MK3 protocol is a task which is not to be underestimated. It is a complicated protocol, and unless there is a huge commercial interest, we cannot give any support or help during the implementation(!). Make sure to have a look at Appendix 2 in that document, which is an annotated example for a typical UI.
Note that there is no difference in protocol between the MK2 and MK3 interfaces.
BMV-60xS Text Protocol (deprecated)
All of our BMV-600's feature a serial communication interface which allows simple access to detailed battery status information. This protocol only allows reading information from the battery monitor. Setting parameters or 'synchronizing' the BMV is not possible. Documentation is available on our website, look for the BMV60xS Text protocol: http://www.victronenergy.com/support-and-downloads/whitepapers/. Note that this Text protocol is now part of the VE.Direct protocol. The successor of the BMV-600, the BMV-700, works with the VE.Direct protocol. See earlier in this document for more information on the VE.Direct protocol.
VE.Net (deprecated)
VE.Net is a proprietary protocol used by some of our control panels. Third party connections are not possible. New products will not be equipped with VE.Net. They are equipped with VE.Can or VE.Direct instead.
VE 9bit RS485 (deprecated)
This protocol was used to communicate to our Multi's and Quattro's before they had paralleling and three phase capabilities. This protocol is no longer maintained. Documentation is not available.
Accessories
Accessories to communicate with VE.Bus (Inverter, Multi, Quattro)
| Partnumber | Product name | RS-232 | Canbus | SMS | Web | Ethernet | SNMP |
|---|---|---|---|---|---|---|---|
| ASS030120200 | Victron Interface MK2.2b – RS232 | X | |||||
| ASS030130000 | Victron Interface MK2-USB | X1 | |||||
| ASS030140000 | Victron Interface MK3-USB | X2 | |||||
| ASS030520100 | VE.Bus to NMEA2000 interface | X3 | |||||
| ASS030520105 | VE.Bus to VE.Can interface | X3 | |||||
| BPP000300100R | Color Control GX | X | X | X | |||
| VGR000200000 | Victron Global Remote 2 | X | X | X | X | ||
| VGR200100000 | Victron Ethernet Remote | X | X | X |
1 The Victron Interface MK2-USB is an MK2.2b with built-in RS232 to USB Converter.
2 The Victron interface MK3-USB also has a built-in RS232 to USB Converter. There is no RS232 version of the MK3 available.
3 The VE.Bus to VE.Can interface is the same as the VE.Bus to NMEA2000 interface. The only difference is the canbus connection. The VE.Bus to VE.Can interface has two RJ-45 sockets; the other one has the NMEA2000 Micro-c plug.
Accessories to communicate with a VE.Direct product
| Partnumber | Product name | RS-232 | Canbus | SMS | Web | Ethernet | SNMP |
|---|---|---|---|---|---|---|---|
| ASS030530000 | VE.Direct to USB interface | X | |||||
| ASS030520500 | VE.Direct to RS232 | X | |||||
| ASS030520300 | VE.Direct to NMEA2000 interface | X4 | |||||
| ASS030520400 | VE.Direct to VE.Can interface | X4 | |||||
| BPP000300100R | Color Control GX | X5 | X | X |
4 The VE.Direct to VE.Can interface is the same as the VE.Direct to NMEA2000 interface. The only difference is the canbus connection. The VE.Direct to VE.Can interface has two RJ-45 sockets; the other one has the NMEA2000 Micro-c plug.
5 Data, including historic data, can be accessed via https://vrm.victronenergy.com. All data is stored in our database. Logs can be downloaded, see chapter "Getting the data from VRM".
FAQ
General
Q1: Do I need an MK2 or MK3 for each product in a system with multiple VE.Bus products in parallel or three-phase?
A1: No. Per VE.Bus system you need only one of those interfaces.
Q2: Do I need a VE.Bus to NMEA2000 interface for each product in a system with multiple VE.Bus products in parallel or three-phase?
A2: No. Per VE.Bus system you need only one of those interfaces.
Q3: Why is it not possible that my application directly communicates with the Victron via VE.Bus messages?
A3: VE.Bus is our proprietary protocol used by the Inverters to synchronize their AC outputs. It is not possible to connect directly because as soon as other people are on that bus we cannot guarantee the proper working of paralleled and three-phase operations. Note that even in all our own display and control products that talk to VE.Bus, for example the Color Control GX and the VE.Bus to NMEA2000 interface, we have an MK2/MK3 IC. So even at Victron we are not talking directly to VE.Bus.
Canbus communication
Q10: Which version of J1939 is actually implemented (J1939/11, J1939/15, J1939/14...)?
A10: We are using the NMEA2000 protocol, which is based on ISO 11783-3 (Datalink Layer) and ISO 11783-5 (Network management). ISO 11783-3 is virtually identical to the SAE data link layer SAE J1939-21. The network layer (ISO 1183-5) is based on SAE J1939-81. For more information, see also http://www.nmea.org/content/nmea_standards/white_papers.asp.
Q11: Is the bus speed 250kbps?
A11: Yes, the bus speed is 250kpbs
Q12: Is the identifier extended (29-bits)?
A12: Yes, the ISO11783 standard defines the use of the extended identifier (29-bits).
Q13: Are the data fields always 8 bytes long?
A13: Yes, the data fields are always 8 bytes long.
Q14: Can you send us the PGN definition?
A14: This detailed documentation has to be bought from the NMEA website. You can buy the Power PGN's at http://www.nmea.org/store/index.asp?show=pdet&pid=322&cid=7. The product name is "NMEA 2000® Appendix B POWER SUBSET PGN (NMEA Network Messages) - Electronic", USD 500,= for non-members. Note that for the VE.Bus AC messages you need some SAE documentation as well. More information on the used PGN's is further down below in this document.
Q15: Are all the messages broadcasted or do they have to be requested/polled?
A15: The important messages (AC status, Battery status, etc.) are broadcasted. Others have to be polled.
Q16: Do I need to terminate the canbus?
A16: Yes you do. Use one 120Ohm 0,25W 5% resistor at both ends of the canbus. Connect it between CAN-H and CAN-L. Victron Energy sells a set of VE.Can terminators with part number ASS030700000.
Q17: Do I need to power the canbus?
A17: That differs per product. Some products power the canbus themselves others don`t. To power the canbus, supply anywhere between 9 and 36Volts to V+ and V-. See also the pin outs below. A small list at the time of writing:
- Skylla-i: Powers the canbus, isolated
- Skylla-IP44: Powers the canbus, non-isolated
- Lynx Shunt VE.Can: Powers the canbus, isolated
- Lynx Ion BMS: Powers the canbus, isolated
- Lynx Ion + Shunt: Powers the canbus, isolated
- Lynx Ion: Does not power the canbus, depends on the Lynx Shunt VE.Can to power both the VE.Can and the BMS canbus
- Color Control GX: Does not power the canbus, and needs a powered canbus to operate
- VE.Bus to NMEA2000 interface: Does not power the canbus, and needs a powered canbus to operate
- VE.Bus to VE.Can interface: Does not power the canbus, and needs a powered canbus to operate
- BMV-60xS to NMEA2000 interface: Does not power the canbus, and needs a powered canbus to operate
- VE.Direct to NMEA2000 interface: Does not power the canbus, and needs a powered canbus to operate
- VE.Direct to VE.Can interface: Does not power the canbus, and needs a powered canbus to operate
- BlueSolar MPPT 150/70: Does power the canbus, not isolated. See manual for info on a resistor that is mounted to prevent ground loops.
The mentioned 9 to 36Volt is conform the NMEA2000 standards. Most of our products accept an input voltage from 7 to 70VDC, see the datasheets.
Q18: What is the difference between NMEA2000 and VE.Can?
A18: The only difference is in the physical connection and the isolation:
| VE.Can | NMEA2000 | |
|---|---|---|
| Physical connector | RJ-45 | Micro-C |
| Isolation | Differs per product, see Q17 above and/or datasheet | Always |
Q19: What is the pin out of VE.Can?
The two RJ-45 sockets on each product that has VE.Can are paralleled. Note that we use RJ-45 also for VE.Bus or VE.Net connections, see the datasheet to make sure that your product has a VE.Can connection.
- 1: Not connected
- 2: Not connected
- 3: NET-C (V-)
- 4: Not connected
- 5: Not connected
- 6: NET-S (V+)
- 7: CAN-H
- 8: CAN-L
Q20: What is the pin out of NMEA-2000?
- 1 (brown): Shield
- 2 (red): NET-S (V+)
- 3 (black): NET-C (V-)
- 4 (white): NET-H (CAN-H)
- 5 (blue): NET-L (CAN-L)
Q21: I do not want to implement the full ACL procedure, what fixed source address shall I use?
A21: Address 0xFE is reserved for when you cannot perform an ACL (Address Claim) procedure. You are free to use this address. See also Q24.
Q22: What is Victron's NMEA2000 manufacturer code?
A22: It is 358 (0x166)
Q23: Instances: I have multiple BMV's (or another canbus product) in the same network, how do I address them?
A23: You need to use instances to differentiate between multiple similar products in the same network. There are different types of instances within NMEA2000:
- Device instance: The device instance is sent in PGN 0xEE00, ISO Address Claim, as a combined field of Device Instance Lower (ISO ECU Instance) and Device Instance Upper (ISO Function Instance). The Device instance is used by Victron chargers (Skylla-i/-IP44, VE.Can MPPTs) to configure them in the same group and synchronize them.
- Data instances (Battery Instance, DC Detailed Instance, Switch bank instance, etc.): These instances are embedded in the different PGN's. All Victron products support changing these instances through a complex write, PGN 0x1ED00, Complex Request Group Function Code 5, write fields.
- System instance: The system instance is also sent in PGN 0xEE00, field 8. It is not used. All Victron products do support changing this instance by sending a complex command.
Instance conflicts: If you have connected multiple products sending out the same PGN with the same data instance number, you might encounter a data instance conflict. Typically this can be seen on display's showing an alternating value. E.g. The VE.Direct to NMEA2000 interface and VE.Bus to NMEA2000 interface are both sending out PGN 127508 with Battery instance 0. To solve this issue one of the Battery instances needs to be changed to another (unique) number. We recommend to change the Battery instance of the VE.Bus to NMEA2000 instance to 5.
More information about changing instances is here: http://www.victronenergy.com/documentation/ve.can:changing_nmea2000_instances.
Display manufacturers: The display manufacturers may use different types of instances to show data for multiple batteries, inverters or chargers. For more information about MFD integration, please visit https://www.victronenergy.com/live/ve.can:nmea-2000:start.
Q24: Do the Victron VE.Can and NMEA2000 products used fixed network address or do they support NMEA address claim ISO 602928?
A24: All our products have implemented the address claim procedure. See also Q21.
Q25: I want to read the State of Charge (0 to 100%) as calculated by the Multis and Quattros. I do understand that this SOC is only reliable if there are no DC loads or other battery chargers in the system (almost impossible on a boat, but in a self-consumption system this is very possible). And I cannot find the SOC in the PGNs.
A25: Correct, the information is in PGN 127506, but transmission of that PGN is disabled by default, because it is not valid in all systems. To enable transmission of this PGN, change the transmission interval. To do this at protocol level, see NMEA2000 documentation, PGN 126208 - NMEA - Request group function (field 1 = 0x00). And then field 3, transmission interval. To do this at PC level, use Actisense NMEA Reader or other PC software that has this functionality.
Q26: Which products have a bag of VE.Can RJ-45 terminators included?
These products are shipped with two pieces of VE.Can RJ-45 terminators:
- Color Control GX
- MPPT 150/70 and MPPT 150/85 Solar Charge Controllers
- Lynx Ion + Shunt all models
- Lynx Ion BMS all models
- Lynx Shunt VE.Can
- VE.Bus to VE.Can interface
- VE.Direct to VE.Can interface
- Skylla-i control
- CANUSB
These products are shipped without:
- Ion Control (not necessary since terminators are included with the Lynx Ion + Shunt)
- BMV-60xS to VE.Can interface
- VE.Can to NMEA2000 Micro-C male cable
- VE.Can resistive tank sensor (not necessary, terminators are included with the CCGX)
Note that it will normally not be necessary to purchase the terminators separately.
Canbus PGN Overview per Product
Use below tables to see where to find what data. There is a freely available PDF file on the NMEA2000 website that also gives a good overview. Go to http://www.nmea.org/content/nmea_standards/downloads.asp, and then the link called "NMEA2000 Parameter Group Descriptions (Messages) with Field Description". To get the detailed information in order to decode the PGNs, see Q14 in the FAQs.
VE.Bus products (Multi's, Quattro and Inverters)
| Data | PGN Name | PGN dec | PGN hex | Field | Remarks |
|---|---|---|---|---|---|
| Battery voltage | Battery Status | 127508 | 0x1F214 | 2 | This PGN is disabled by default, since the reported value is only valid in systems with no other chargers or dc loads. Use the proper NMEA method to enable it, which is a complex request. |
| Battery current | Battery Status | 127508 | 0x1F214 | 3 | |
| State of Charge (%) | DC Detailed Status | 127506 | 0x1F212 | 4 | |
| Battery temperature | Battery Status | 127508 | 0x1F214 | 4 | |
| Charger on/off switch | Charger Status | 127507 | 0x1F213 | 5 | Off, bulk, absorption, float etcetera. |
| Charge state | Charger Status | 127507 | 0x1F213 | 3 | |
| Inverter on/off switch | Inverter Status | 127509 | 0x1F215 | 5 | Off, inverting, etcetera. |
| Inverter Operating State | Inverter Status | 127509 | 0x1F215 | 4 | |
| L1 AC input voltage | J1939-75 PGN | 65014 | 0xFDF6 | AC input information is sent from a different network address than all other PGNs. To distinguish, use the device function code from the ACL PGN, which is "154 AC Input monitor" for the AC input information. All other PGN's are sent with device function code "153 Inverter". See manual for more information. | |
| L1 AC input current | J1939-75 PGN | 65014 | 0xFDF6 | ||
| L1 AC input frequency | J1939-75 PGN | 65014 | 0xFDF6 | ||
| L1 AC input power | J1939-75 PGN | 65013 | 0xFDF5 | ||
| L1 AC output voltage | J1939-75 PGN | 65014 | 0xFDF6 | These parameters are sent per phase, see manual for information about all phases. | |
| L1 AC output current | J1939-75 PGN | 65014 | 0xFDF6 | ||
| L1 AC output frequency | J1939-75 PGN | 65014 | 0xFDF6 | ||
| L1 AC output power | J1939-75 PGN | 65013 | 0xFDF5 | ||
| Warnings and alarms | Binary Switch Bank Status | 127501 | 0x1F20D | Switch bank instance 0 | |
| LED states | Binary Switch Bank Status | 127501 | 0x1F20D | Switch bank instance 1. This message is by default not enabled, see manual on how to enable it. |
The Battery instance from PGNs 127508 (field 1), DC Instance from PGN 127506 (field 2) and PGN 127509 (field 3) and Charger Instance from PGN 127507 (field 1) are the same number. Changing one of the instances will change all of the mentioned instances. See the VE.Bus to NMEA2000 interface manual for more details.
Skylla-i/-IP44 battery charger family
| Data | PGN Name | PGN dec | PGN hex | Field | Remarks |
|---|---|---|---|---|---|
| Battery voltage | Battery Status | 127508 | 0x1F214 | 2 | The 3-output model has 3 instances of PGN 0x1F214, one for each output. Field 1 of this PGN, Battery Instance is used to distinguish between them. |
| Battery current | Battery Status | 127508 | 0x1F214 | 3 | |
| Battery temperature | Battery Status | 127508 | 0x1F214 | 4 | |
| Relay and alarms | Binary Switch Bank Status | 127501 | 0x1F20D | ||
| Charger state | Converter Status | 127750 | 0x1F306 | 3 | Off, bulk, absorption, float etcetera. |
| AC input current | AC Power / Current Phase | 127744 | 0x1F300 | 3 | AC RMS Current |
| Charger on/off | Charger Status | 127507 | 0x1F213 | 5 | DEPRECATED: PGNs 127507 and 127503 are deprecated in favor of 127750 and 127744 |
| Charge state | Charger Status | 127507 | 0x1F213 | 3 | |
| AC input current9 | AC Input Status | 127503 | 0x1F20F | 7 | |
| Equalization pending | Charger Status | 127507 | 0x1F213 | 6 | They are not being transmitted by default. They can still be requested though, and also they can be configured to be transmitted on an interval. |
| Equal. time remaining | Charger Status | 127507 | 0x1F213 | 8 |
Note that the Skylla-i/-IP44 will switch off when there is no mains available. It will therefore also stop sending and responding to Canbus messages.
9 The AC Input Status PGN 127503 is not present on the Skylla-IP44
BlueSolar MPPT 150/70 and 150/85
| Data | PGN Name | PGN dec | PGN hex | Field | Remarks |
|---|---|---|---|---|---|
| Battery voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 0 |
| Battery current | Battery Status | 127508 | 0x1F214 | 3 | Battery instance 0 |
| Battery temperature | Battery Status | 127508 | 0x1F214 | 4 | Battery instance 0 |
| PV voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 1 |
| PV current | Battery Status | 127508 | 0x1F214 | 3 | Battery instance 1 |
| Relay and alarms | Binary Switch Bank Status | 127501 | 0x1F20D | Off, bulk, absorption, float etcetera. | |
| Charger state | Converter Status | 127750 | 0x1F306 | 3 | DEPRECATED: PGN 127507 is deprecated in favor of 127750. |
| Charger on/off | Charger Status | 127507 | 0x1F213 | 5 | They are not being transmitted by default. They can still be requested though, and also they can be configured to be transmitted on an interval |
| Charge state | Charger Status | 127507 | 0x1F213 | 3 | |
| Equalization pending | Charger Status | 127507 | 0x1F213 | 6 | |
| Equal. time remaining | Charger Status | 127507 | 0x1F213 | 8 |
The Battery instance for PGNs 127508 can be changed. After you did that, you can still distinguish between the Battery and PV information by looking at the DC detailed status PGN, 127506 0x1F212. It will report the DC Type, field 3, as Battery or Solar Cell. Field 2, DC Instance, equals the Battery instance in the Battery Status PGN for battery and solar information.
BMV-60xS and BMV-700 Battery Monitors
| Data | PGN Name | PGN dec | PGN hex | Field | Remarks |
|---|---|---|---|---|---|
| Battery voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery Instance 0 |
| Battery current | Battery Status | 127508 | 0x1F214 | 3 | Battery Instance 0 |
| State of Charge (%) | DC Detailed Status | 127506 | 0x1F212 | 4 | DC instance 0 |
| Time Remaining | DC Detailed Status | 127506 | 0x1F212 | 6 | DC instance 0 |
| Consumed Ah | Proprietary VREG 0xEEFF | 61439 | 0xEFFF | Signed 32-bit integer in steps of 0.1 Ah Is also broadcasted at 1.5 seconds interval, see manual of VE.Direct to NMEA2000 interface. | |
| Starter battery voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery Instance 1. Only sent for BMV-602/702. |
| Relay and alarms | Binary Switch Bank Status | 127501 | 0x1F20D | See manual for more information |
Notes:
- Battery instance 0 and DC Instance 0 are the same instance number, only the name is different in the NMEA2000 documentation.
- Above table is valid for the latest firmware version of the VE.Direct to NMEA2000 interface cable, v1.06. Previous firmware versions used PGN 127502 instead of 127501 to report relay and alarm status.
See the manual of the VE.Direct to NMEA2000 Interface for more details.
Lynx Shunt VE.Can
| Data | PGN Name | PGN dec | PGN hex | Field | Remarks |
|---|---|---|---|---|---|
| Battery voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 0. This voltage is measured before the main fuse. |
| Fused voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 1. This voltage is measured after the main fuse. |
| Battery current | Battery Status | 127508 | 0x1F214 | 3 | Battery instance 0 |
| Battery temperature | Battery Status | 127508 | 0x1F214 | 4 | Battery instance 0 |
| State of Charge (%) | DC Detailed Status | 127506 | 0x1F212 | 4 | DC instance 0 |
| Time Remaining | DC Detailed Status | 127506 | 0x1F212 | 6 | DC instance 0 |
| Consumed Ah | Proprietary VREG 0xEEFF | 61439 | 0xEFFF | Is also broadcasted at 1.5 seconds interval. | |
| Relay and alarms | Binary Switch Bank Status | 127501 | 0x1F20D | Switch instance 0 |
Note that Battery instance 0 and DC Instance 0 are the same instance number, only the name is different in the NMEA2000 documentation.
Lynx Ion, Lynx Ion + Shunt and Lynx Ion BMS
| Data | PGN Name | PGN dec | PGN hex | Field | Remarks |
|---|---|---|---|---|---|
| Battery pack voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 0 |
| Battery pack current | Battery Status | 127508 | 0x1F214 | 3 | Battery instance 0 |
| Battery pack highest temperature | Battery Status | 127508 | 0x1F214 | 4 | Battery instance 0 |
| State-Of-Charge (SOC) | DC detailed Status | 127506 | 0x1F212 | 4 | DC instance 0 |
| Time-To-Go (TTG) | DC detailed Status | 127506 | 0x1F212 | 6 | DC instance 0 |
| Lowest cell voltage in pack | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 1 |
| Highest cell voltage in pack | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 2 |
| Battery voltage | Battery Status | 127508 | 0x1F214 | 2 | Battery instance 10 t/m 25 |
| Battery temperature | Battery Status | 127508 | 0x1F214 | 4 | Battery instance 10 t/m 25 |
Notes:
- Both the Lynx Ion and the Lynx Shunt VE.Can are sending Battery pack voltage and Battery pack current. Distinction can only be made on product id.
- Battery instance 0 and DC Instance 0 are the same
- One or more 24V 180Ah batteries together in one system are a Battery pack.
- One 24V 180Ah battery, consisting of 8 cells is a Battery.
Links to Interesting Products
Note that we have not tested all these products, and they are not affiliated to Victron Energy in any way. We do not take any responsibility.
Consider using our own Color Control GX as the Victron to ModbusTCP converter, instead of below products.
- NMEA2000 to Modbus RS485 converter by Offshore Systems (UK) Ltd: http://www.osukl.com/3155.htm
- Converters from NMEA2000 to a variety of protocols, one of them is Modbus: http://www.adfweb.com/home/products/NMEA2000_Conveters.asp?frompg=nav14_2
- RS232 to Ethernet/LAN Converter. Works well with the BMV Text Protocol. With the MK2/MK3 Protocol it is not very stable. The ATOP SE5001-S2 http://www.atop.com.tw/en/productList2.php?pl1_id=2
Document History
| Rev. | Date | Name | Details |
|---|---|---|---|
| 1 | Matthijs Vader | Initial version | |
| 2 | Matthijs Vader | Changed 9bit protocol from Daisy Chain to point to point. | |
| 3 | Matthijs Vader | Added FAQ section for the Canbus communication. | |
| 4 | 2012-jan-24 | Matthijs Vader | Added names of the VE.Bus and BMV protocol documents. And added link to Canbus manuals on our website. |
| 5 | 2012-may-3 | Matthijs Vader | Canbus is the preferred protocol. Added list of products, and how to connect via Canbus. Added information on the HEX protocol. BMV Protocol is now available on our website. Various rewording and layout changes. Added 'Staying-up-to-date'. Added several items to the FAQ. |
| 6 | 2012-june-29 | Matthijs Vader | Added Q3 to the FAQ (29 bits identifier) Changed Q7 (termination resistors) Inserted Q8 (powering the Canbus) |
| 7 | 2012-nov-19 | Matthijs Vader | Added Q12 (network address without ACL procedure) Added chapter "Canbus PGN overview per product" Renumbered Canbus FAQ |
| 8 | 2012-nov-21 | Matthijs Vader | Added NMEA2000 to Modbus RS485 converter by Offshore Systems (UK) Ltd |
| 9 | 2013-feb-2 | Matthijs Vader | Changed the colors mentioned at Q20, NMEA 2000 cable pin out Added PGN DC Detailed Status 127506 0x1F212 to the VE.Bus PGNs Changed PGN Number 127502 to 127501 in the VE.Bus PGNs Added 7 to 70VDC to Q17 Remarked that VE.Bus Switch bank instance 1 is by default not enabled. Added column to product table: onboard comm. Port Added PGN 127501 to list of Skylla-i and BlueSolar MPPT 150/70 PGNs Added information about instances, Q23 Changed the information in Getting the data from VRM with information for the new VRM website Replaced HEX with VE.Direct |
| 10 | 2013-apr-20 | Matthijs Vader | Added comment about Consumed Ah for BMV-60xs and Lynx Shunt VE.Can Added Q24 Added table on certified products. |
| 11 | 2013-july-7 | Matthijs Vader | Added note that Battery instance and DC instance are the same to BMV-60xS, Lynx Ion and Lynx Shunt VE.Can Updated BMV Canbus table, binary switch bank status instead of control. |
| 12 | 2013-august-7 | Matthijs Vader | Added note that Battery instance and DC instance are the same to BMV-60xS, Lynx Ion and Lynx Shunt VE.Can Updated BMV Canbus table, binary switch bank status instead of control. Fixed typo: a VE.Net to BMV2000 interface was mentioned. Should have been BMV-60xS to NMEA2000. |
| 13 | 2013-august-13 | Matthijs Vader | Added info to Q16, termination |
| 14 | 2014-february-3 | Matthijs Vader | Added part number of our terminators to Q16 Updated VE.Can/NMEA2000 protocol section Added new interfaces (.... to VE.Can interface) Added Modbus-TCP |
| 15 | 2014-March-24 | Matthijs Vader | Added NMEA2000 database version numbers Added new interfaces such as VE.Direct to RS232 interface Updated getting data from VRM with wget section Added VRM JSON API link |
| 16 | 2014-May-30 | Matthijs Vader | Added (JUICE) on page 10. Updated Modbus-TCP: available Added new solar chargers |
| 17 | 2014-May-31 | Matthijs Vader | Added more information and example on Modbus-TCP |
| 18 | 2014-Sept.-26 | Matthijs Vader | Modbustcp now also supports writing values (multi on/off and input current limit) Added Q25 on VE.Bus SOC Added link to changing NMEA2000 instances information on Victron Live. |
| 19 | 2014-Dec-04 | Matthijs Vader | Changed ModbusTCP text: it still said that it was read only in some places. Moved Modbus TCP FAQ to Victron Live. |
| 20 | 2015-Jan-27 | Matthijs Vader | Updated download links, almost all documents are now downloadable from our website instead of needing to ask us by email for one. Added link to Juice API page on Victron Live. |
| 21 | 2015-Aug-27 | Matthijs Vader | Chapter 'Getting data from VRM with wget': changed download link for 'Template to retrieve data' |
| 22 | 2016-Feb-1 | Matthijs Vader | Added Q26; products that are shipped with or without VE.Can RJ-45 terminators |
| 23 | 2016-Apr-13 | Matthijs Vader | Added Phoenix Inverters 250, 3675 and 500VA VE.Direct inverters Added link to VE.Direct protocol FAQ as well as VE.Direct RS232 interface More small cleanups and updates left and right |
| 24 | 2016-Nov-18 | Matthijs Vader | Skylla-i and Solar Charger with VE.Can connection: 127503 and 127507 are deprecated in favor of 127750 and 127744 |
| 25 | 2016-Nov-30 | Matthijs Vader | Reworded introduction, putting more focus on ModbusTCP Deprecated the Juice and wget methods of getting data from vrm. |
| 26 | 2017-May-10 | Matthijs Vader | Added info on MK3-USB |
| 27 | 2017-Sept.-21 | Martin Bosma | Added info about battery instances for VE.Bus to NMEA 2000/VE.Can interface Added Skylla-IP44 and Lynx Ion BMS Updated text of Q23 and added text about instance conflicts |
| 28 | 2020-July-16 | Martin Bosma | Added format of BMV Consumed Ah proprietary VREG Renamed BMV to NMEA2000 interface to VE.Direct to NMEA2000 interface |
| 29 | 2021-March-02 | Matthijs Vader | Deleted section Staying up to date |
| 30 | 2021-March-15 | Martin Bosma | Updated Q23, Display manufacturers section |








