Skip to content

Reference ​

The identifiers a box carries ​

Every box answers with four identifiers. They are read-only.

ParameterWhat it isExample
ProductIdthe finished product — which application this box implements010010028
HardwareIdthe board990010012 (CAN/VE)
990010053 (CAN Serial/Modbus)
990010063 (CAN Serial/Modbus V2)
SoftwareIdthe application program990050010
SoftwareVersionthe version of that program; 5.x = the two earlier boards, 6.x = Serial/Modbus V26.6
sh
muxen-uds -i can0 -d <address> readconfig --only-name ProductId \
                                          --only-name HardwareId \
                                          --only-name SoftwareVersion

Product, software and version, per board ​

Product IDApplicationSoftware IDCAN/VESerial/ModbusSerial/Modbus V2
010010002VE.Direct9900500065.195.196.2
010010019Frigomar990050009—5.96.4
010010028Blue Airco990050010—5.176.6

Versions are those of the source tree at the time of writing; the box itself is always the authority. Only the Serial/Modbus and Serial/Modbus V2 columns are still built.

Released images are named <product id>-<board tag>-<application>-firmware.srec, where the board tag is MODBUS or SERIAL-V2.

How a device is addressed ​

A MUXEN device is a function (what kind of thing it is) and an instance (which one). The address used by muxen-uds -d is the two packed together:

address = function × 64 + instance

One box registers more than one device: its own generic I/O, plus one device for each serial channel that carries something. Function 17 is the generic I/O, so the I/O side of a box set to instance 0 is at 17 × 64 = 0x440. The same device can be reached by name:

sh
muxen-uds -i can0 -F 17 -I 0 readconfig

Instance numbers run 0…62. 63 and above mean "not addressed", and 255 is the factory default for the generic I/O of every box, and for every channel device that has not been configured yet.

An unaddressed box is not silent: it still answers a UID scan, giving its unique 64-bit identifier and instance 63. That is how the Brain reaches it in order to give it a real instance number.

Function codes used by this line ​

CodeDevice
5battery
6converter — charger, inverter, DC/DC
10solar regulator
17generic I/O — present on every box
21air conditioning

Which of these a given box registers depends on its application and on what is actually answering on each channel.

The generic I/O device, on every box ​

Function 17. Present whatever the application does.

ParameterDefaultMeaning
InstanceNum255the instance number — nothing is published until this is set to 62 or below
EnGenIo00 — disabled, the I/O is not published
1 — enabled, the state of the relay and the analog input is published
EnAnalogPwr1shared with other MUXEN device families; the firmware in this line does not act on it. On Serial/Modbus V2 the sensor supply is switched on at startup regardless

The VE.Direct product adds two more, which let the relay follow a condition on the bus instead of waiting for a command:

ParameterDefaultMeaning
Relay1Eqnemptythe condition that drives the relay; empty means the relay only follows commands
Relay1Latch00 — momentary, the relay follows the condition
1 — latched, each time the condition becomes true the relay changes state

A command sent over the bus overrides the condition until it is released.

What the generic I/O device publishes, when enabled: the relay state and the analog input in millivolts. It publishes on change, and at least once every half second otherwise. It also answers a request frame immediately. It accepts commands to open and close the relay; on the VE.Direct product a command with neither "on" nor "off" set hands the relay back to its condition.

The two dry-contact inputs, the second relay and the second analog input that appear in the frame are always reported as inactive — this line's hardware does not have them.

Diagnostic codes ​

Faults reported by the equipment are republished as MUXEN diagnostic trouble codes against the device that carries them, roughly once a second, so they surface in the boat's alarm list. A code clears itself when the underlying fault clears. Which codes an application produces is listed in its own reference chapter.

Maintenance routines ​

Run with muxen-uds, addressed at a device on the box.

RoutineWhat it does
1restore parameters to their defaults; a flag says whether the instance number is reset too
2locate — flash the system LED for two seconds. On the VE.Direct product routine 2 is used for something else: it reports what is currently answering on each of the four channels
4allocate the configuration of one channel and, optionally, make it reachable over the bus
5 and 6VE.Direct product only — list, and forget, the channel configurations kept in the box's memory

LED codes ​

RateMeaning
1 Hz (on 500 ms, off 500 ms)the application is running normally
≈2.5 Hz for two seconds, then back to 1 Hzanswering a locate request
steady on, or steady off, with power presentthe application is not running — stuck during startup, or still in the bootloader

Applications may add their own rates; theirs are listed in their own reference chapter.

Timings ​

System LED, normalchanges state every 500 ms
Relay and analog input sampledevery 100 ms
Generic I/O publishedon change, and at least every 500 ms
Analog input counts as changedwhen it moves by more than 50 mV
Diagnostic codes republishedabout once a second
Firmware transfer, silence allowed between blocks5 seconds, then the transfer is abandoned
Restart after a write with --reboot, or after a firmware transferat least 500 ms, so the reply reaches the bus first

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