Appearance
Common mistakes — MDV battery switch module
General can-mdv problems (LED codes, box invisible on the bus, firmware update) are in Common mistakes. This chapter is what goes wrong with the switch, the bus power and the battery sensor.
The module has vanished from the bus
Check the main switch first. This is almost always the answer, and it is not a fault.
When the main switch opens, the module holds the bus alive for PowerInjectionOffDelay — ten minutes by default — and then shuts itself down: it stops the battery sensor, stops the CAN controller and turns its LED off. It is no longer on the bus at all, and no muxen-uds command will reach it.
Close the main switch and the module comes straight back.
| Likely cause | How to tell | Fix |
|---|---|---|
| The switch is open and the delay has expired | LED off, nothing on the bus, and the boat is dark | close the switch |
| The feedback contact never says "closed" | the switch is visibly closed, the module is still asleep | the module goes by the contact, not by the switch. Check the contact and its wiring |
Commanding it on switches it off
The two coils are crossed. Do not rewire — set ReverseSwitchDrive to 1, see Commissioning.
The switch does not move at all
| Likely cause | How to tell | Fix |
|---|---|---|
| The module is asleep | LED off | see above |
| Not addressed | InstanceNum still 255, nothing published on device/25/… | give the switch an instance number |
| The command went to the wrong instance | another MDV moved instead | check the instance in the MQTT topic |
| Both force flags at once | a command carrying "on" and "off" together | the module refuses it deliberately and clears both. Send one or the other |
| The coil circuit is open | the module keeps driving until RemoteSwitchTimeout | check the coil wiring; the module cannot tell a broken coil from a slow switch |
The switch moves, but the module keeps driving the coil
The module drives until the feedback contact confirms, and gives up only after RemoteSwitchTimeout. Left at its default that is 300 000 ms — five minutes of continuous drive on a switch that has already moved.
Two things to fix, in this order: wire the feedback contact properly, then set RemoteSwitchTimeout to a little more than the switch's real travel time.
The boat goes off and comes back on by itself
Look at RemoteSwitchEqn. Every rising edge of that equation toggles the switch — a bouncing contact, an intermittent input or a device flickering on the bus toggles the boat with it. An equation left empty takes commands only from the bus.
The equation is read once at startup. Correcting it takes effect after a power cycle, not immediately.
No battery appears
| Likely cause | How to tell | Fix |
|---|---|---|
| Wrong sensor type | nothing at all on device/5/…, everything else normal | BatteryIbsType: 0 for a Hella IBS 12 V, 1 for a 24 V. Power-cycle afterwards — it is read only at startup |
| The sensor has been reconfigured | a known-good sensor stays silent | the module polls the IBS at its factory frame identifiers and never reprograms it. A sensor renumbered elsewhere will not answer |
| Bus power is off | power_injection_ste false in the switch frame | the battery is published only while the module is powering the bus. With EnablePowerInjection at 0 it is never published at all |
| LIN wiring | — | one master, one slave, nothing else on the pair |
The battery figures look wrong
Check BatteryIbsType first. The 12 V and 24 V Hella sensors publish different frames, coded differently, and the module decodes only the one it has been told is fitted. Then check that the sensor on the post is really that one. The parameter is read at startup: power-cycle after changing it.
The battery landed in the wrong parc
BindToParc is decided once, from the first valid voltage the module reads, and then frozen in flash. A bank read while it was deeply discharged, or a nominal voltage outside the windows in Reference — MDV battery switch module, lands in the wrong parc — or in no parc at all, which reads as standalone.
Write BindToParc by hand. The module will not revisit it on its own.
The battery reports no charge request
The charge request is derived from voltage alone, against AlertVmin and AlertVmax — the sensor supplies none of its own. It is also held off while the module has the boat down, including for a while after the main switch has just closed.
Check AlertVmin and AlertVmax against the bank's real working range first, then the feedback contact.
The injected current is wrong
It is not the boat's consumption. It is what the module is putting onto the MUXEN bus and the auxiliary output, and nothing else. If it is the right shape but the wrong scale, IMeaCoef is the scaling factor — see Commissioning.
Two MDVs, one battery
A factory module publishes battery 0. Two of them on the same bus both publish battery 0 and overwrite each other. Renumber one, then power-cycle both.
An instance number was changed and half of it did not take
The module reads its instance numbers when it starts. Writing a new one changes what it publishes straight away, but the commands and the diagnostic session still answer on the old number until the next power cycle. Change the number, then power-cycle.
muxen-uds locate does not blink the box
This firmware implements only the restore-defaults routine. locate is refused. Identify the module by its UID.
After a factory reset the boat behaves differently
Expected. The reset restores the sensor type to 24 V, the drive timeout to 300 000 ms, the off-delay to ten minutes, clears the equation and un-binds the parc. The module works; it is not configured for this boat any more. Restore it from the CSV you saved at commissioning.
