Skip to content

Reference — bus extender ​

The MUXEN devices this box publishes ​

DeviceFunctionInstanceWhat it carries
Bus extender31configured (InstanceNum)the repeating function itself: running state, and the label given to CAN 1
Generic I/O17configured (InstanceNum)the box's own relays, dry-contact inputs and analog inputs

Both are announced on both segments, so the box is visible and configurable from either side.

MQTT topics on the Brain follow device/<function>/<instance>/<frame>. In practice you will see:

TopicWhen
device/17/<n>/lifethe box's own I/O, once EnGenIo is set to 1
device/31/<n>/boot, device/17/<n>/bootat every startup
device/31/<n>/uid, device/17/<n>/uidin answer to a scan

The extender's own status frame is broadcast on the CAN bus but is not currently published as an MQTT topic by the Brain.

Parameters — bus extender (function 31) ​

ParameterTypeDefaultMeaning
InstanceNum0…62255the extender's own instance; 255 means not addressed
CanBus1Area0…2550a label for the segment on CAN 1, reported in the box's status frame. Purely informational
CanBus2Area0…2551a label for the segment on CAN 2. Stored, and not used by anything today
ProductId, HardwareId, SoftwareId, SoftwareVersionread-onlysee Reference

Neither label changes what the box does. They exist to record which segment is which; nothing on the boat reads them yet.

A change to InstanceNum takes effect at the next restart — write it with --reboot.

Parameters — generic I/O (function 17) ​

ParameterDefaultMeaning
InstanceNum255the I/O device's instance
EnGenIo0publish the inputs, relays and analog inputs
EnAnalogPwr1power the analog sensor supply

EnCanAuxPwr is not present on this firmware, and nothing about the second CAN interface needs configuring.

What crosses between the segments ​

Repeatedevery frame received on either segment, in both directions: extended and standard identifiers, data frames and requests for data, whatever the content
Filteringnone. The box does not inspect, select, rate-limit or rewrite anything
Not repeatedconfiguration traffic addressed to this box's own two devices — it is answered on the segment it arrived on
Not repeatedbus errors and bus-off state. Each segment has its own interface; a fault on one does not put the other in fault
Emitted on both segmentsthe box's own startup and status frames
Answered on one segmenta reply to a request goes back out on the segment the request came from
Orderframes going one way keep their order; the relative order of frames arriving from opposite segments is not preserved

Timings and buffers ​

Frames buffered per direction64; the excess is dropped silently
Generic I/O publishedon change, and at least every 500 ms
Extender status frameevery second
Repeating startsat startup, before any instance number is set

Routines ​

RoutinePayloadEffect
locateblinks the system LED for 5 seconds, so the box can be identified physically
reset parameters0001restore the instance number to its default
reset parametersany bit above bit 0restore every other parameter of that device
sh
muxen-uds -i can0 -F 31 -I <n> locate

LED codes ​

The common ones only — 1 Hz is running normally, see Reference. This application adds one:

RateMeaning
≈5 Hz for 5 secondsanswering a locate request

Limits ​

Segments joined2, by one box
Speed, both segments500 kbit/s, fixed in the firmware
Terminations required2 per segment — 4 in total
Combined bus loadthat of one 500 kbit/s MUXEN bus, shared by both segments
Instance numbers0…62
Extenders between one pair of segments1. Loops are not detected

Versions ​

HardwareVersionImage
CanCan v15.1010010032-app_bus_extender-firmware.srec
CanCan v26.2010010032-V2-app_bus_extender-firmware.srec

Source: workspace/muxen/cancan/app_bus_extender/, product overlay boards/arm/<board>/010010032.overlay.

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