Skip to content

Common mistakes — NMEA 2000 gateway ​

General CanCan problems (LED codes, box invisible on the bus, firmware update) are in Common mistakes. This chapter is what goes wrong with the NMEA 2000 side specifically.

Nothing at all appears ​

Ask the gateway first — it lists what it has seen, and an empty list means nothing is reaching CAN 2:

sh
muxen-uds -i can0 -F 17 -I <io-instance> routine --action 1 --routine 2
Likely causeHow to tellFix
The backbone runs at another speedtotal silence, no errorsthe gateway is fixed at 250 kbit/s and cannot be changed. A backbone that is not at 250 kbit/s is not an NMEA 2000 backbone
Termination60 Ω across the powered-down backbone; anything near 120 Ω is wrong120 Ω at each end, nowhere else
The backbone is not poweredthe other equipment is silent tooNMEA 2000 equipment talks only on a powered backbone
Wrong sideCAN 1 is the MUXEN bus, CAN 2 the backboneswap the connectors

The list shows devices, but they do not appear on the boat ​

Likely causeHow to tellFix
The equipment is not one the gateway knowsit is on the backbone but never in the routine 2 listcheck the family list in Reference — NMEA 2000 gateway. Unknown equipment is ignored, silently and on purpose
The identifying frame has not arrived yetthe device is listed with instance 63wait. A battery is identified by its status frame, an alternator by its DC status frame, a thruster by its control frame — silent equipment is never identified
More than 32 translated devicesthe newest devices stay at 63 foreverthe gateway holds 32 configurations. Reduce the backbone, or split it across two gateways

Two devices, one MUXEN device ​

Two NMEA 2000 devices left on the same instance collide. For Victron converters and MPPTs the gateway reacts: it asks the newcomer to move to a free NMEA 2000 instance, chosen between 0 and 7. If all eight are taken, or if the equipment refuses, the second device stays inert.

The alternator and the bow thruster cannot be moved at all — the gateway reads their instance and lives with it.

Fix it where it belongs: give each Victron device a distinct instance in its own configuration, then power-cycle the gateway.

A battery appears, but with no state of charge ​

This is the NMEA 2000 battery-instance convention, and it catches everyone.

The gateway reads the MUXEN instance as the NMEA 2000 battery instance divided by 32, and accepts state of charge only from an instance that is an exact multiple of 32.

NMEA 2000 instanceWhat the gateway does with it
0, 32, 64 …main battery data — becomes MUXEN battery 0, 1, 2 …
1, 33, 65 …minimum cell voltage and temperature of that battery
2, 34, 66 …maximum cell voltage and temperature of that battery
anything elsevoltage and current only, no state of charge

A battery monitor left on instance 5 therefore lands on MUXEN battery 0 with no SoC, and quietly overwrites a real battery 0. Number the batteries 0, 32, 64 on the NMEA 2000 side.

The battery's charge and discharge limits look invented ​

They are — for a shunt. The gateway asks each battery device whether it is a managed BMS or a plain shunt (BMV, SmartShunt, Lynx Shunt). A BMS announces its own limits and they are used as they are; a shunt announces none, so the gateway falls back to the limits written in that device's configuration and derives the charge request from voltage alone, using AlertVmin / AlertVmax and their hysteresis. If a shunt-based parc behaves oddly, that is where to look — not at the equipment.

The equipment is gone but still on the screens ​

A device that stops talking is dropped after 2 minutes of silence, and its MUXEN device disappears with it. The delay is deliberate: it rides out a busy backbone. A device that flickers in and out of the screens is one whose frames are not arriving reliably — suspect the backbone, not the gateway.

The Zeus alternator does not charge, or charges at nothing ​

Likely causeHow to tellFix
A curve is configured but interpolates to zerothe alternator is limited to 0 A at that engine speedthe three curves are read once, when the alternator is discovered — correct the curve, then power-cycle the gateway
No curve at allthe alternator runs at its own maximumthat is the intended fallback, not a fault
The alternator never announced its capacityboost and generator mode are refusedthe gateway offers them only once the alternator has answered with its maximum current

Two masters on the backbone ​

By default the gateway publishes the boat's battery voltage, current, state of charge and charge limits onto the NMEA 2000 network for the Arco Zeus alternator and for a Victron Cerbo GX (N2K_EmitTarget = 1). If a Cerbo GX with its own BMS, or another charge master, is already doing that, the two disagree and the charge limits jump. Decide who is in charge; to make the gateway read-only for a device:

sh
muxen-uds -i can0 -F 27 -I <n> writeconfig --name N2K_EmitTarget --value 0

A device shows up as the wrong kind of thing ​

Every Victron device that announces itself as a battery charger is published as a MUXEN solar charger, function 10. For an MPPT that is right; for a mains-fed charger it is misleading but harmless, its panel side simply reads nothing.

A charger from another brand does nothing useful ​

The profiles are written against Victron, MG, Arco Zeus and Vetus/Maxwell. Equipment of another manufacturer announcing itself as an inverter, a charger or a DC/AC converter is not supported by this firmware. Keep it off the gateway's backbone.

On this firmware the routine that normally blinks the LED returns the list of NMEA 2000 devices instead. Identify the box by its UID, not by locate.

After a factory reset, everything came back with different numbers ​

Expected. The gateway rediscovers the equipment on its own, but the instance numbers you chose, the parc bindings and the alternator curves are gone, and the automatic numbering starts again from whatever the NMEA 2000 network says. Restore them from the CSV you saved at commissioning.

Integration of multiplexed solutions
MUXEN and the MUXEN logo are trademarks of MUXEN SAS.