Skip to content

Reference ​

The identifiers a box carries ​

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

ParameterWhat it isExample
ProductIdthe finished product — which application this box implements010010005
HardwareIdthe board generation990010047 (v1), 990010061 (v2)
SoftwareIdthe application program990050004
SoftwareVersionthe version of that program; 5.x = CanCan v1, 6.x = CanCan v26.2
sh
muxen-uds -i can0 -d <address> readconfig --only-name ProductId \
                                          --only-name SoftwareVersion

Product, software and version, per application ​

Product IDApplicationSoftware IDv1v2
010010003Bell Marine9900500085.2—
010010004NMEA 20009900500025.246.5
010010005Scheiber9900500045.76.2
010010006Fischer Panda9900500185.4—
010010020Aquabase9900500125.56.2
010010026Magic Trim9900500175.2—
010010027Eco Sistems9900500115.116.2
010010032bus extender9900500235.16.2
010010034J19399900500275.36.4

Versions are those of the source tree at the time of writing; the box itself is always the authority.

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

A CanCan registers more than one device: its own generic I/O, plus one or more devices for whatever it translates. 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.

Watch out for the exceptions: a few translated device types default to instance 0, not 255 — the watermakers, the propulsion motor and the Magic Trim device. A factory-fresh box of those applications starts publishing on instance 0 immediately, so two of them on one bus collide before anyone has configured anything. Number them one at a time.

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
EnGenIo0publish the state of the inputs, outputs and analog inputs. A few applications publish regardless of it — see their manual
EnAnalogPwr1power the analog sensor supply
EnCanAuxPwr0leftover parameter — drives a signal shipped boards do not use. Leave it at 0

What it publishes, when enabled: the two dry-contact inputs, the two relay states, and the two analog inputs in millivolts. It publishes on change, and at least once every half second otherwise. It accepts commands to open and close each relay.

LED codes ​

RateMeaning
1 Hz (on 500 ms, off 500 ms)running normally
≈25 Hz (very fast flicker)the firmware could not confirm itself — power-cycle, the previous version returns
steady onstuck during startup
offnot running at all

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

Where things live in the source tree ​

Applicationsworkspace/muxen/cancan/app_<name>/
Board definitionsworkspace/muxen/cancan/boards/arm/muxen_cancan[_v2]/
Per-product settings (IDs, versions, bus speeds)boards/arm/<board>/<productid>.overlay
Signing keysworkspace/muxen/cancan/keys/
Released imagesbuilt by CI, published as <productid>[-V2]-<app>-firmware.srec

Releases are cut by tagging <productid>-v<version>, which rebuilds only that product.

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