NMEA 2000 in Detail¶
Everything the regulator does on the boat network, message by message: what it puts on the bus and what that looks like on a chartplotter, a Victron GX or a Signal K server; what it reads back off the bus and what it does with that; and how it follows charge limits from a managed battery. The short version is the NMEA 2000 page.
Three independent switches govern all of it — transmit, receive, and charge-limit follow — and all three ship off. Until you turn one on, the regulator is a silent listener and nothing on this page is happening on your bus.
The first half of this page is what the regulator sends, which needs the transmit switch.
How it introduces itself¶
| Product name | Xregulator |
| Device class | 35 — Electrical Generation |
| Device function | 141 — DC Generator / Alternator |
| Source address | Claimed at power-up, remembered, re-offered at boot (starts at 22) |
| Also published | Heartbeat, product information, configuration information, and the list of PGNs it transmits and receives |
That is a normal, well-behaved node. Any MFD, Signal K server or gateway that enumerates the bus will list it.
On a chartplotter or MFD¶
Add it to a data page like any other DC source.
| What you see | Message | Default instance | Ships |
|---|---|---|---|
| Battery bank — voltage, current, temperature, state of charge | 127508 + 127506 | 0 | on |
| The alternator as its own DC source — voltage, output current, temperature | 127508 + 127506, DC type Alternator | 1 | on |
| Alternator temperature on a dedicated temperature instance | 130312 | 4, source Engine Room | on |
| Charge stage — bulk, absorption, float, not charging | 127507 | charger 0 | on |
| Field drive percentage — how hard the field is being driven | 127510 | charger 0 | on |
| Battery configuration — chemistry, capacity, nominal voltage | 127513 | 0 | off |
| Engine RPM, from the alternator W-terminal | 127488 | 0 | off |
| Standard engine warning bits — over-temperature, low voltage, not charging | 127489 | 0 | off |
The last three ship off on purpose. Engine RPM and engine parameters collide with a real engine gateway on the same instance, and a battery monitor already on the bus usually owns the bank's configuration. Turn them on only if nothing else is publishing them.
The alarm you actually want is a temperature alarm on the regulator's temperature instance. If the sensor fails or goes stale the regulator stops sending that message rather than publishing a stale number, which trips the data-lost alarm every major MFD offers. A silently failed temperature sensor is how alternators cook.
On a Victron GX¶
A GX shows it as a generic alternator, with no Victron-side support for this specific product and nothing to configure on their end.
Victron's requirements for that, from the Cerbo GX manual, and what the regulator does:
| Victron requires | Regulator |
|---|---|
| Device Class 35 — Electrical Generation | yes |
| Device Function 141 — DC Generator | yes |
| DC type set to Alternator in PGN 127506 | yes, on the alternator instance |
| PGN 127508 carrying voltage, current and temperature | yes, on the same instance |
Connect the GX to the backbone the normal way — its CAN ports are RJ45, so it needs Victron's VE.Can-to-NMEA 2000 cable. The regulator's own port is the standard NMEA 2000 Micro-C connector; no adapter and no crossover cable are involved on our end.
Two limits, stated plainly because they matter:
- Victron's own wording is that this data is used for display, not for system calculations or control functions. The alternator appears; the GX does not fold its output into DVCC current sharing. Being sent a charge-current allocation requires Victron to write support for a specific product, which they have done for three alternator regulators and not for this one.
- This path is documented by Victron but has not yet been confirmed on our own bench against a real GX. If you run one, we would like to hear what you see.
Charge limits travel the other way and do work today: the charge voltage set-point a GX broadcasts is followed, if you turn that on — see Following charge limits from a managed battery, below.
On Signal K¶
Nothing to configure. A Signal K server reading the NMEA 2000 bus picks up everything in the table above, where you can set threshold alarms, push notifications to a phone, and build dashboards.
Instance numbers, and the one collision worth knowing¶
Every instance above is user-settable in Setup → Integrations → NMEA 2000. Two devices sharing an instance talk over each other, and the symptom is a reading that flickers between two values or vanishes.
- Give the alternator a different instance from the battery bank. They ship different.
- If the boat also has a Wakespeed regulator, avoid alternator instances 48 to 55. That block is what a Wakespeed uses for its alternator, and 48 is where a default one lands.
- If a shore charger or solar controller already claims charger instance 0, move ours.
What is deliberately not sent¶
- Nothing is fabricated. A value with no live source is transmitted as the NMEA "not available" code, never as a stale or invented number, and the single-value temperature message is skipped entirely while its probe reads nothing.
- Alternator shaft speed has no standard NMEA 2000 message. The regulator computes it from engine speed and the pulley ratio for the bearing-life estimate, but there is nowhere standard to publish it, and putting it in the engine-speed message would misreport engine RPM.
- AC ripple, and the alternative charger-status message (127750). Ripple is measured as a current ripple, and there is no voltage-ripple figure to publish honestly. 127750 is the newer stand-in for 127507, and it duplicates what 127507 and 127510 already carry.
What it reads from the network¶
Receiving is its own switch, separate from transmitting, and it also ships off. With it on, the bus becomes a sensor input:
| What it reads | Message | What it is for |
|---|---|---|
| Battery voltage, current, temperature, state of charge and health | 127508 + 127506 | Display and telemetry only. The instance is selectable (ships 0), which is how you point it at a shunt, a battery monitor, or the "virtual shunt" a Victron GX bridges onto the bus |
| Position and satellite count | 129029 + 129540 | Anchorage and trip records |
| Course and speed over ground | 129026 | Sailing performance, speed records, distance run |
| Heading | 127250 | True-wind maths — the regulator uses the reference frame and the magnetic variation the message itself carries rather than assuming either |
| Apparent wind speed and angle | 130306 | Sailing performance. A sender that reports wind in an earth frame instead is converted to a boat-relative angle |
| Speed through water | 128259 | Preferred over speed over ground for sailing performance, because it excludes current |
| Depth | 128267 | Anchorage comfort scoring |
| GPS time | 126992 | The preferred clock source whenever it is arriving |
| Charge limits from a managed battery | below | The only received data that can influence charging, behind its own switch |
Two things worth stating plainly. No received value moves the alternator field — apart from the charge limits below, everything here is display, records and performance maths, and received battery data never feeds the regulator's own state-of-charge count, its targets or its protections. And a chatty bus cannot swamp the regulator: heading, wind, position and course/speed are each throttled to roughly one update every couple of seconds, and messages the regulator does not use are dropped at the door.
Following charge limits from a managed battery¶
Its own switch again, also off out of the box. Turned on, the regulator follows the charge voltage limit and charge current limit published by a managed battery system — a Victron system on VE.Can, or an RV-C battery master.
What arrives differs by dialect. An RV-C battery master broadcasts both limits, and both are followed. On a Victron system the charge voltage set-point is broadcast to the whole bus and is followed today; the per-device current allocation a GX hands out goes only to regulators Victron has integrated into its own software.
The rules, in order of importance:
- Every local protection outranks anything on the bus, at all times.
- A received limit can only lower the regulator's charge targets, never raise them past what the regulator itself considers safe.
- A published charge-current limit of zero is obeyed as stop-charging.
- If the authority goes silent, or starts publishing values that do not make sense, the regulator reverts to its own targets and says so in the header rather than obeying a frozen number.
- Until you enable it, limits are decoded and displayed but never acted on. That is the intended way to start: watch the decoded numbers, confirm they match what the battery system itself is showing, then turn it on.
One thing to understand about a Victron system: the limit on the bus is the GX's number, not the battery's. A GX takes what the battery reports and rewrites it according to the brand of battery it is talking to, and what reaches the bus is the result. That is the GX doing its job — but it is why a limit read off the bus should never be described as "the battery is asking for this".
If you do not see it¶
- Is the master NMEA 2000 Transmit switch on? It ships off.
- Is the individual message switched on? Three of them ship off, listed above.
- Is the backbone terminated at both ends and powered? The regulator's CAN side is powered from the backbone, not from the regulator.
- Did the address claim succeed? The claimed address and the transmit and dropped frame counts are on the diagnostics page. Dropped frames are normal and expected on a bench with no backbone attached.
- Instance collision — see above.