MG Energy Systems batteries on NMEA 2000: PGNs, VREGs and MGREGs decoded

How an MG Master LV battery system talks on VE.Can / NMEA 2000: the MG NMEA2000 protocol's Battery Status (with min/max cell instances), DC Detailed Status and the new Electric Energy Storage PGNs, plus Victron VREGs and MG's own MGREG registers.

TTMH9 min read11 sections
Batteries
On this page
  1. Choosing the protocol
  2. Message list
  3. Address claim
  4. Battery Status — PGN 127508, three instances
  5. DC Detailed Status — PGN 127506
  6. The Electric Energy Storage PGNs
  7. VREGs: Victron's register messages
  8. MGREGs: MG's own registers
  9. Combined systems
  10. Sources
  11. Related reading

MG Energy Systems batteries on NMEA 2000: PGNs, VREGs and MGREGs

MG Energy Systems' battery systems are a common partner for Victron gear on electric and hybrid boats — the MG Master LV is what used to be sold as Victron's Lynx Ion BMS, and MG is the battery maker with VE.Can built into its Master BMS. Unusually, MG publishes exactly what it sends on the bus. This guide walks through it, with frames you can paste into the CAN frame decoder.

Everything here is from MG's Master LV Communication Guide, version 1.42.0.0 (27 August 2026) unless stated. The Master HV and SmartLink MX have their own communication guides.

Choosing the protocol

The Master LV's CAN interface — the two right-most connectors, one RJ45 and one M12 — runs one of three current protocols: MG NMEA2000, SMA, or a general BMS protocol (SMA plus extra messages), one at a time. The MG NMEA2000 protocol uses MG's own NMEA 2000 manufacturer code (1160) and is MG's recommendation for new designs; the older VE-NMEA2000 variants use Victron's code. This guide covers MG NMEA2000.

  • 250 kbit/s, 29-bit identifiers (CAN 2.0B).
  • Default source address 0x50; it can change through address claiming when more than one MG device is on the bus.
  • If Micropower chargers are enabled in the BMS settings, 11-bit CAN messages with ID 0x600 also appear; MG doesn't describe them in this guide.

For a Victron GX, MG's installation guide says to check that the external CAN bus protocol is MG NMEA2000 — the device then shows in the GX device list with a name starting with MG — and to use DVCC, selecting the MG BMS as Controlling BMS (GX firmware 3.00 or later).

Message list

PGNNameNotes
60928 (0xEE00)ISO Address Claimmanufacturer 1160, class 35, function 170
126996 (0x1F014)Product Informationmodel, e.g. MG BMS 24-48V/600A; serial MGE…
127508 (0x1F214)Battery Statusinstances: data, data + 1, data + 2
127506 (0x1F212)DC Detailed Statusfast-packet
128003 (0x1F403)Electric Energy Storage Status, Rapid Updateevery 500 ms
127491 (0x1F203)Electric Energy Storage Status, Dynamicfast-packet, every 1.5 s
127495 (0x1F207)Electric Energy Storage Informationfast-packet, every 3 s

Data instance is one number shared by all of them (it is called Battery instance, DC instance or Energy Storage Identifier depending on the PGN). It can be set in steps of 32 — 0, 32, 64 … 224 — so several MG systems can share a bus. It is stored, and falls back to 0 if invalid at boot.

Address claim

MG's own example, a SmartLink MX at address 0x50:

ID   18EEFF50
data AE 00 10 91 00 AA 46 C0

Decode it: manufacturer MG Energy Systems, function Battery, class Electrical Generation. To find out which MG product holds an address, MG sends a VREG request for the product ID (see below) and checks the answer before trusting the address.

Battery Status — PGN 127508, three instances

Every 1.5 s, single frame, the same layout three times:

Battery instanceBytes 1–2 (0.01 V)Bytes 3–4 (0.1 A)Bytes 5–6 (0.01 K)
data instancepack voltagepack current (+ = charging)highest battery temperature
data instance + 1lowest cell voltagenot implemented, FF 7Flowest cell temperature
data instance + 2highest cell voltagenot implemented, FF 7Fhighest cell temperature
19F21450  00 78 14 83 FF 3F 75 05    instance 0: 52.40 V, −12.5 A, 27 °C
19F21450  01 48 01 FF 7F B5 72 05    instance 1: lowest cell 3.28 V, 20.5 °C
19F21450  02 4E 01 FF 7F 13 74 05    instance 2: highest cell 3.34 V, 24.0 °C

Decode instance 0, 1 and 2. A generic display labels all three "battery voltage" — the instance number is what tells you a 3.28 V reading is a cell, not a flat pack. The last byte is the sequence ID shared by related messages.

The voltage field is signed 16-bit in 0.01 V steps, so it stops at 327.64 V. For high-voltage systems MG points to its own MGREG system voltage register (below), and 128003 carries voltage up to 6553.2 V.

DC Detailed Status — PGN 127506

Eleven bytes in two fast-packet frames: SID, DC instance, DC type (0 = battery), state of charge (1 %), state of health (1 %), time remaining (1 minute), ripple voltage (not implemented) and amp hours (1 Ah). It is the same layout as on a Victron Lynx BMS — see the Lithium NG guide for a byte-by-byte example.

The Electric Energy Storage PGNs

NMEA added electric-propulsion and energy-storage messages to NMEA 2000 in version 3.000. MG sends three of them. One caution first: the open-source canboat database marks its entries for these PGNs as guesses, and its field layout does not match MG's. Our frame decoder uses MG's documented layout for these three PGNs; other tools built on canboat may show different numbers.

128003 — Electric Energy Storage Status, Rapid Update

Every 500 ms, one frame:

ByteBitsField
0Energy Storage Identifier (= data instance)
10–3Battery status: 0 normal, 1 pre-charge, 2 connected, 3 storage, 4 balancing, 14 error, 15 n/a
14–5Isolation status (not implemented)
16–7Battery error: 0 normal, 1 error
2–3Battery voltage, unsigned, 0.1 V
4–5Battery current, signed, 0.1 A
6–7reserved (FF 7F)
ID   15F40350
data 00 32 0C 02 83 FF FF 7F     connected, no error, 52.4 V, −12.5 A

Decode it. Byte 1 0x32 = binary 00 11 0010: status 2 (connected), isolation 3 (n/a), error 0.

127491 — Electric Energy Storage Status, Dynamic

Every 1.5 s, fast-packet, 15 bytes. The fields you can't get elsewhere are here: usable state of charge, signed time remaining, three cell temperatures, and the BMS's live current limits.

BytesFieldEncoding
0Energy Storage Identifier
1State of charge (usable, not physical)0.5 %, 0–200 = 0–100 %
2–3Time remainingsigned, minutes: negative = time to full, positive = time to empty
4–5 / 6–7 / 8–9Highest / lowest / average cell temperature0.01 K
10–11Max discharge current0.1 A, changes with conditions
12–13Max charge current0.1 A, changes with conditions
14Cooling / heating system statusnot implemented
reassembled payload: 00 AA A6 FF 3F 75 77 74 DB 74 B8 0B DC 05 FF

Decode it: SoC 0xAA = 170 × 0.5 = 85 %; time 0xFFA6 = −90 → 90 minutes to full; cells 27 / 25 / 26 °C; limits 300 A discharge, 150 A charge.

127495 — Electric Energy Storage Information

Every 3 s, fast-packet, 19 bytes: chemistry, the four temperature thresholds where the BMS derates or shuts off, state of health and charge/discharge permission.

BytesField
0Energy Storage Identifier
1 bits 0–1Energy storage mode (not implemented)
1 bits 4–7 + byte 2Chemistry, 12 bits: 0x040 lithium, 0x041 LiFePO4, 0x044 NMC
3–4, 5–6Max temperature derating / shut-off threshold, 0.01 K
7–8, 9–10Min temperature derating / shut-off threshold, 0.01 K
11–12Usable energy, 0.1 kWh (not implemented)
13State of health, 0.5 %
14–15Cycle counter (not implemented)
16 bits 0–1Full status: 0 charge allowed, 1 no charge allowed
16 bits 2–3Empty status: 0 discharge allowed, 1 no discharge allowed
17, 18Max / min SoC threshold (not implemented)

An example payload decodes as LiFePO4, derating above 45 °C, shut-off above 55 °C, derating below 5 °C, shut-off below −10 °C, SoH 98 %, charge and discharge allowed. (The threshold values in the example are illustrative, not MG's settings.)

VREGs: Victron's register messages

MG also answers Victron's proprietary VREG messages: PGN 61184, CAN ID 1CEF<to><from> (1CEFFF<from> for broadcast), data starting 66 99, then the register ID and up to four data bytes, little endian. Registers marked periodic are broadcast every 5 s; on change within a second of a change.

Useful ones from MG's list:

VREGMeaningFormat
0x0100Product IDe.g. 0xB0C3 = MG BMS 24-48V/600A
0x0102Firmware versionidentifier + 24-bit version, 0x123456 = v12.34.56
0xED8D / 0xED8FVoltage / currentsn16, 0.01 V / 0.1 A (periodic)
0x0385Lowest : highest cell voltage2 × un16, 0.01 V (periodic)
0x0386Lowest : highest cell temperature2 × un16, 0.01 K (periodic)
0x0FFFState of chargeun16, 0.01 % (periodic + on change)
0xEEFFConsumed Ahsn32, 0.1 Ah
0x2100Status flags32 bit flags: charged, charging, contactor closed, alarms, allowed to charge / discharge …
0x0371BMS state9 running, 10 error, 14 standby, 16 pre-charging …
0x2101BMS error0 OK, 13 over-voltage, 26 contactor failure, 37 interlock …
0x0390–0x0393Charge voltage, charge current, discharge voltage, discharge current limitsun32, 0.01 V / 0.1 A (periodic + on change)

MG's own request–reply example — firmware version of the node at 0x50, asked by 0x20:

1CEF5020  66 99 01 00 02 01 FF FF    VREQ (0x0001) for register 0x0102
1CEFFF50  66 99 02 01 00 00 04 01    broadcast reply: identifier 0, v1.04
1CEF2050  66 99 02 00 02 01 00 80    …or, if unsupported: VACK with code 0x8000

Decode the request, reply and NACK. A status-flags broadcast like 66 99 00 21 90 00 00 06 decodes as charging, main safety contactor closed, allowed to charge, allowed to discharge. The frame decoder knows the registers in the table above.

MGREGs: MG's own registers

Same idea, MG's manufacturer code instead: data starts 88 9C. Two worth knowing:

  • 0x48EE System voltage — sn32, 0.001 V, every 250 ms. The way to read pack voltage above 327 V.
  • 0x2140 / 0x2141 System status external 1 and 2 — bit flags: initializing, operational, DC bus connected, warning, failure, pre-charging, charging / discharging allowed, temperature alerts and more.
1CEFFF50  88 9C EE 48 E0 CC 00 00    system voltage 52.448 V

Decode it.

Combined systems

With several MG BMSes under a SmartLink MX (or SmartLink PLC), MG recommends reading the registers sent by the combining device rather than each BMS: it combines the raw data and adjusts for the number of devices available.


Sources

Checked on 25 October 2026:

We are not affiliated with MG Energy Systems or Victron Energy.


TPublished by TMHOctober 25, 2026
About & methodology