VE.
Direct Protocol
www.victronenergy.com
Table of contents
Introduction ............................................................................................................................................. 2
Physical interface ..................................................................................................................................... 2
Serial port configuration .......................................................................................................................... 2
Message format ....................................................................................................................................... 3
Data integrity ........................................................................................................................................... 3
Fields ........................................................................................................................................................ 3
Detailed field description ........................................................................................................................ 5
Document history .................................................................................................................................... 7
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com
Introduction
Victron products which feature the VE.Direct serial communications interface allow simple access to
detailed information of that product. This document describes how to receive and interpret this
information.
See our Data communication whitepaper for more information on other protocols and products
available: http://www.victronenergy.com/support-and-downloads/whitepapers.
The VE.Direct interface includes two modes: Text-mode and the HEX-mode. The purpose of the
Text-mode is to make retrieving information extremely simple. The product will periodically
transmit all run-time fields. The HEX-mode allows not only to read data but also write data, for
example, change settings.
On power up, a VE.Direct interface will always be in Text-mode, and continuously transmits all run-
time fields. As soon as it receives a valid HEX-message, it will switch to HEX-mode. It will stay in HEX-
mode as long as HEX-messages are frequently received. After a product has not received any valid
HEX-messages for several seconds, it will switch back to Text-mode and start to auto transmit the
run-time fields periodically again.
This document currently describes only the Text-mode. It will be expanded to include the HEX-
mode information.
Physical interface
The VE.Direct interface is accessed via a 4-pin connector. The picture below shows where the
VE.Direct connector is located on a BMV-700.
Pin Function
1 GND
2 VE.Direct-TX
3 VE.Direct-RX
4 Power +
A VE.Direct to USB interface cable can be purchased from Victron Energy (“VE.Direct to USB”, part
number ASS030530000). This interface cable provides a virtual comport through USB as well as
galvanic isolation.
Serial port configuration
Baud rate: 19200
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com
Message format
The device transmits blocks of data in 1 second intervals. Each field is sent using the following
format:
<Newline><Field-Label><Tab><Field-Value>
The identifiers are defined as follows:
Identifier Meaning
<Newline> A carriage return followed by a line feed (0x0D, 0x0A).
<Field-Label> An arbitrary length label that identifies the field. Where applicable, this will
be the same as the label that is used on the LCD.
<Tab> A horizontal tab (0x09).
<Field-Value> The ASCII formatted value of this field. The number of characters
transmitted depends on the magnitude and sign of the value.
Data integrity
The statistics are grouped in blocks with a checksum appended. The last field in a block will always
be “Checksum”. The value is a single byte, and will not necessarily be a printable ASCII character.
The modulo 256 sum of all bytes in a block will equal 0 if there were no transmission errors. Multiple
blocks are sent containing different fields.
Fields
The values sent over the serial communications interface do not necessarily use the same units as
the values on the LCD.
Note: The BMV-60xS does not have a full VE.Direct interface. There is only limited support for the
Text-mode, see Table I. More details can be found in the document BMV-60xS Text Protocol:
http://www.victronenergy.com/upload/documents/BMV-60xS Text Protocol.pdf
The units used by the serial interface are as follows:
Label Units Description BMV600 BMV700 MPPT *
V mV Main (battery) voltage • • •
VS mV Auxiliary (starter) voltage • •
VM mV Mid-point voltage of the battery bank •
DM ‰ Mid-point deviation of the battery •
bank
VPV mV Panel voltage •
PPV W Panel power •
I mA Current • • •
T °C † Battery temperature •
P W Instantaneous power •
CE mAh ‡ Consumed Amp Hours • •
SOC ‰‡ State-of-charge • •
TTG Minutes‡ § Time-to-go • •
*
The VE.Direct protocol is available in the MPPT 70/15 from firmware version v1.09 and up, and only in newer
type MPPT 70/15’s. Note that the chargers with product id 0x300 will not support the full protocol (only PID,
SER and FW).
†
When no temperature sensor is connected, “---” will be sent instead of a value.
‡
When the BMV is not synchronised, these statistics have no meaning, so “---” will be sent instead of a value.
§
When the battery is not discharging the time- to-go is infinite. This is represented as -1.
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com
Label Units Description BMV600 BMV700 MPPT *
Alarm Alarm condition active • •
Relay Relay state • •
AR Alarm reason • •
LOAD Load output state •
H1 mAh Depth of the deepest discharge • •
H2 mAh Depth of the last discharge • •
H3 mAh Depth of the average discharge • •
H4 Number of charge cycles • •
H5 Number of full discharges • •
H6 mAh Cumulative Amp Hours drawn • •
H7 mV Minimum main (battery) voltage • •
H8 mV Maximum main (battery) voltage • •
H9 Seconds Number of seconds since last full • •
charge
H10 Number of automatic • •
synchronizations
H11 Number of low main voltage alarms • •
H12 Number of high main voltage alarms • •
H13 Number of low auxiliary voltage •
alarms
H14 Number of high auxiliary voltage •
alarms
H15 mV Minimum auxiliary (battery) voltage • •
H16 mV Maximum auxiliary (battery) voltage • •
H17 0.01 kWh Amount of discharged energy •
H18 0.01 kWh Amount of charged energy •
H19 0.01 kWh Yield total (user resettable counter) • **
H20 0.01 kWh Yield today •**
H21 W Maximum power today •**
H22 0.01 kWh Yield yesterday •**
H23 W Maximum power yesterday •**
ERR Error code •
CS Converter state •
BMV Model description • •
FW Firmware version • • •
PID Product ID • •
SER# Serial number •
HSEi Last error (i=0..3) •
HSYU 0.01 kWh Yield total (user resettable counter) •
HSYS 0.01 kWh Yield total (non resettable counter) •
HSVPV mV Maximum panel voltage •
HSV mV Maximum battery voltage •
HSDS Day sequence number (0..364) •
HDnY 0.01 kWh Yield (n=day) •
HDnC 0.01 kWh Consumed (n=day) •
HDnV mV Maximum battery voltage (n=day) •
HDnVL mV Minimum battery voltage (n=day) •
HDnEi Last error (i=0..3, n=day) •
HDnTB Minutes Time in Bulk (n=day) •
HDnTA Minutes Time in Absorption (n=day) •
HDnTF Minutes Time in Float (n=day) •
HDnPPV W Maximum power (n=day) •
**
Deprecated since version 1.15, use the HSYU, HD0Y, HD0PPV, HD1Y, HD1PPV equivalents instead.
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com
Label Units Description BMV600 BMV700 MPPT *
HDnI mA Maximum battery current (n=day) •
HDnVPV mV Maximum panel voltage (n=day) •
Table I Supported Text-mode fields
Detailed field description
Alarm
This shows the buzzer alarm state of the BMV. During normal operation, this will be “OFF”. When a
buzzer alarm occurs the value will change to “ON”.
Note: This refers to the value of the alarm condition, and not the buzzer itself. This means that
once a condition has occurred, the value will be “ON” until all alarm conditions have cleared;
regardless of whether or not a button has been pressed to silence the buzzer.
Relay
This shows the relay alarm state of the BMV. During normal operation, this will be “OFF”. When a
relay alarm occurs the value will change to “ON”.
Note for both Alarm and Relay: BMV-600’s with firmware v2.09 or lower used to send “On” and
“Off” instead of “ON” and “OFF”. It is therefore recommended to use a case-insensitive string
comparison in your implementation, for example stricmp().
FW
The firmware version of the device. The version is reported as a whole number, e.g. 208 for firmware
version 2.08.The value C208 means release candidate C for version 2.08.
Note: This field is available in the BMV since version 2.08
AR
Alarm reason; this field describes the cause of the alarm. Since multiple alarm conditions can be
present at the same time the values of the separate alarm conditions are added. The value total is
sent in decimal notation.
Low Voltage 1
High Voltage 2
Low SOC 4
Low Starter Voltage 8
High Starter Voltage 16
Low Temperature 32
High Temperature 64
Mid Voltage 128
E.g. a value of 5 would indicate the presence of a low SOC alarm and a low Voltage.
Note: This field is available in the BMV since version 2.08
LOAD
This shows the load output state of the MPPT charger. When the load output is active it will show
“ON”, when the load is switched off (e.g. short circuit or battery voltage too low) it will show “OFF”.
Note that the LOAD item is only available on charger models that have a load output.
Note: This field is available in the MPPT charger since version 1.12
PID
The product id:
BMV-700 0x203
BMV-702 0x204
BMV-700H 0x205
MPPT 70/15 0x300
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com
MPPT 75/15 (*) 0xA042
MPPT 100/15 0xA043
MPPT 100/30 0xA044
MPPT 150/35 0xA041
MPPT 75/50 0xA040
MPPT 100/50 0xA045
(*)The difference between 0x300 and 0xA042 is the memory size of the microcontroller. The 0xA042
has more memory.
CS
The converter state of the charger. See the table below for the possible values.
Off 0
Fault 2
Bulk 3
Absorption 4
Float 5
ERR / HSEi / HDnEi
The error code of charger (relevant when the charger is in the fault state). See the table below for
the possible values.
No error 0
Battery temperature too high 1
Battery voltage too high 2
Charger temperature too high 17
Charger over current 18
Charger current reversed 19
Bulk time limit exceeded 20
Current sensor issue (sensor bias/sensor broken) 21
Input voltage too high (solar panel) 33
Input current too high (solar panel) 34
Factory calibration data lost 116
Invalid/incompatible firmware 117
User settings invalid 119
Note for HS* and HDn* fields: The n index in the HDn fields is used to indicate the day, where
0=today, 1=yesterday up to 30 days ago. The i index in the HSEi and HDnEi is used to indicate the
error event history, where 0=the most recent error up to 3 errors ago.
SER#
The serial number of the charger. The notation is LLYYMMSSSSS, where LL=location code,
YYWW=production datestamp (year, week) and SSSSS=unique part of the serial number.
Example: HQ1328Y6TF6
BMV (deprecated)
This field contains a textual description of the BMV model, for example 602S or 702.
Note: This field is available in the BMV since version 2.08. It is also deprecated, refer to the field PID
instead.
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com
Document history
Version Date Changes
1 24 April 2008 Document created.
1.1 05 May 2008 Added historical information for the starter battery.
Added alarm and relay state information.
1.2 16 May 2008 Added the part number for the serial to TTL cable.
2.0 16 June 2008 Added a checksum field to the protocol, and removed the ETX
framing character.
2.1 05 May 2009 Added details on which RS232 connections must be
implemented by the monitoring application.
2.2 24 June 2009 Updated to reflect the change in product naming.
2.3 01 December 2009 Added BMV-600S and field BMV, FW and AR
2.4 12 April 2011 Renamed the protocol and document to BMV Text Protocol
2.5 16 October 2012 Added details on On/Off vs ON/OFF for Relay and Alarm state
3.0 31 June 2013 Document changed to be the VE.Direct specification document
3.1 16 August 2013 Added BMV-70x alarms
Added detailed field description paragraph
Description of release candidates in FW field
3.2 7 February 2014 Removed fields H13 and H14 from BMV-70x
3.3 24 March 2014 Added history fields (HS* and HDn*) for the MPPT chargers.
3.4 22 May 2014 Updated product id list (PID)
3.5 3 July 2014 Added error 119 in the error code table (ERR)
3.6 30 July 2014 Changed HDnYP> HDnY, HDnYC> HDnC, added HSDS
Victron Energy B.V. | De Paal 35 | 1351 JG Almere | The Netherlands
General phone: +31 (0)36 535 97 00 | Fax: +31 (0)36 535 97 40
E-mail:
[email protected] | www.victronenergy.com