Skip to content

Reference — Bloc 8 power module ​

The device this module publishes ​

DeviceFunctionInstanceWhat it carries
Power outputs, Bloc 81the configured InstanceNum, 0…62the whole module: outputs, inputs, currents, voltage

The module publishes one device and one only. Its instance is the InstanceNum parameter; the factory value is 255, which means not addressed — the module then parks at instance 63, answers requests there, and publishes nothing periodic.

Its address on the bus, the -d of muxen-uds, is function × 64 + instance — instance 3 is device id 67. On the Brain its topics are device/1/<instance>/….

Frames ​

FrameBroadcast idTopicSent
Bootcommon—once at startup, with the count of software restarts
UIDcommon—on request
Life1lifeevery 500 ms, and on every output change
I/O2ioon a digital-input change, on an analog change of 100 mV or more, and at least every GenIoMaxSendingPeriod
Current 1 (outputs 1…4)4current1every 500 ms while current publication is on
Current 2 (outputs 5…8)5current2every 500 ms while current publication is on
Voltage7voltageevery second
Level10levelonce at startup, then on change, at most every 500 ms — see below

Each of them is also sent on request, so a screen coming up does not have to wait for the next period.

Nothing periodic is sent while the module has no instance number of its own. Requests are still answered.

Output levels, in the level frame ​

Eight bytes, level0 to level7 for outputs 1 to 8: the level each output is driven at right now, 0…100 %, a ramp in progress included. An output that does not dim reads 0 or 100.

ValueMeaning
0…100the output's level
255no level to give: the output tripped (short-circuit or not-connected), or the module is parked at 63

A change goes out at once. Changes within the next 500 ms are held back, and the latest one is sent when that window ends — so a ramp is seen twice a second, and its final level always arrives. The frame is not repeated periodically: a listener that starts later asks for it.

Output states, in the life frame ​

CodeMeaning
0power-off
1power-on
2short-circuit — the overcurrent tripped
3not-connected — the open-load detection tripped

Commands ​

One point-to-point frame, addressed to function 1 and the module's instance. On the Brain: device/1/<instance>/command.

FieldValuesEffect
channel0…7the output, 0 being output 1
requestOntrueswitch that output on
requestOfftrueswitch that output off
dimming1…100dimming level, clamped into the output's range. Ignored on an output that is not dimmable. 0 and anything above 100 leave the level alone
channel8the frame carries the two flags below instead of an output command
requestOnPublishCurrenttruestart the per-output current frames
requestOffPublishCurrenttruestop them

The current publication asked for this way is not saved: it is off again after a restart, unless EnCurrentPeriodic says otherwise. The publication period is fixed at 500 ms.

On a non-latching output a command is a hold of 5 seconds, not a switch: after that the output follows its pad and its equation again. On a latching or monostable output it acts like a press.

How an output behaves ​

Three inputs reach every output: its pad on the front panel, commands from the bus, and its own equation. They are equivalent — any of them triggers the output.

What wins, from the top:

  1. Safety — the supply outside VBatMin…VBatMax, or no instance number: every output is held at 0.
  2. Overcurrent — the output is forced to 0 and reports short-circuit until it is commanded off.
  3. Open load — same, reporting not-connected.
  4. A command from the bus — an override on a non-latching output, a press like any other on a latching or monostable one.
  5. The pad and the equation.

The three modes ​

LatchOut<n>ModeBehaviour
0non-latchingon while something asks for it, off when nothing does. Holding the pad for 5 s locks it on until the next press
1latchingeach press toggles it. The default
2monostableeach press starts a pulse of OffDelayOut<n>. MonoOutRetrigger<n> says what a second press during the pulse does: 0 — restart the pulse
1 — cancel it

Delays ​

ParameterLatching and non-latchingMonostable
OnDelayOut<n>delay between the request and the output coming ondelay before the pulse starts
OffDelayOut<n>delay between the request and the output going offlength of the pulse

Both delays are cancelled by a new request during the delay. They are ignored on a dimmable output.

Dimming ​

Only on a latching output with Dimmable<n> = 1. The level lives between DimmingMiniLvl<n> and DimmingDfltLvl<n>; a long press — longer than GlobOutLongPushDly — ramps it up and down over that range, one full sweep taking GlobOutDimRamp, and releasing freezes it. The level is remembered until the next restart, when it starts again at the maximum.

A minimum above the maximum is refused: see Common mistakes — Bloc 8 power module.

Flashing ​

FlashOutput<n> set to a duration makes a latching output flash while it is on, half the period on and half off. It is ignored on a dimmable output.

At switch-on ​

Every time an output goes from off to on, the module checks it after 10 ms. On a fault it pulses the output off for 20 ms and on again, up to 256 times, before declaring the overcurrent — an output into a real short chatters briefly, then latches off as short-circuit.

Parameters ​

Written with muxen-uds writeconfig. The supply window, the sensor supply, the I/O period and the two current-reporting settings take effect at once; everything that decides how an output behaves is read at startup, so write the last one of a batch with --reboot.

The module ​

ParameterTypeDefaultMeaning
InstanceNum0…62255the module's instance; 255 means not addressed
EnAnalogPwr0/11supply of the analog sensors: 0 — off
1 — on
VBatMaxmV32000above this, every output is held off
VBatMinmV9000below this, every output is held off
EnCurrentPeriodic0/10publish the per-output currents from every start
GenIoMaxSendingPeriodms5000longest silence on the I/O frame; 0 — only on change
StartupDlyms0delay between power-up and the outputs starting
GlobOutLongPushDlyms3000press longer than this is a long press
GlobOutDimRampms1000one full dimming sweep, minimum to maximum
BindToParc—autodetectdeclared for the family; not used by this firmware
ProductId, HardwareId, SoftwareId, SoftwareVersionread-onlysee Reference

Each output, <n> = 1…8 ​

ParameterTypeDefaultMeaning
EqnOut<n>text, 255emptythe output's own rule, over the boat's signals. Empty means no rule
LatchOut<n>0/1/210 — non-latching
1 — latching
2 — monostable
DefaultSteOut<n>0/10state taken at every start: 0 — off
1 — on
MonoOutRetrigger<n>0/10monostable, press during the pulse: 0 — restart
1 — cancel
OnDelayOut<n>ms0see the delay table above
OffDelayOut<n>ms0see the delay table above
MaxCurrentOut<n>mA5000overcurrent threshold; 0 disables the protection
MinCurrentOut<n>mA0open-load threshold; 0 — disabled
AlertDelayOut<n>ms200how long either threshold must be exceeded before the output trips
Dimmable<n>0/100 — disabled
1 — enabled, latching outputs only
DimmingDfltLvl<n>%100top of the dimming range
DimmingMiniLvl<n>%10bottom of the dimming range. Must stay below the top
FlashOutput<n>ms0flash period while on; 0 — steady
DegradedMode<n>0…2550load-shedding level: the output is shed when the boat's degraded level rises above it, and comes back only if DefaultSteOut<n> is 1. 0 — never shed
NomCurrentOut<n>mA0nominal current reported when the output is on and the measurement falls below it
IMeaCoef<n>—17converts the measurement into milliamps. Factory value; changing it changes every current this output reports, and its two thresholds with them

Each virtual signal, <n> = 1…4 ​

Four more equations that switch nothing and are published in the life frame as VirtualSig0 … VirtualSig3 — useful to publish a state the rest of the boat needs without spending an output on it.

ParameterTypeDefault
EqnVsig<n>text, 255empty
LatchVsig<n>0/1/20
DefaultSteVsig<n>0/10
MonoOutRetriggerVsig<n>0/10
OnDelayVsig<n>ms0
OffDelayVsig<n>ms0

Routines ​

RoutinePayloadEffect
10001restore the instance number to its default
1any bit above bit 0restore every other parameter — erases the equations and the trip settings
2—locate: the eight cells of the front panel flash three times
16built by muxen-uds legendwrite one label image to a zone of the front panel

The front panel ​

The panel is a slave of the module: it has no address, no configuration and no bus of its own, and everything it shows comes from the module.

Linkinternal, 20 kbaud
Output states senton every output-processing pass
Instance, module status, inputsone of them every second, in rotation, so each is refreshed about every 4 s
Panel refreshan output cell is repainted when its state changes; a page, or a new label, repaints the whole screen
At starta waiting screen for 5 s, then the output page
On silenceafter 500 ms with nothing from the module, a POWER OFF page with every output shown off

The pages ​

#PagePads
1the eight outputs: name and stateswitch their output
2trip settings: maximum current and delay per output—
3fault codes — reserved, empty in the panel firmware that ships today—
4the six digital inputs—
5the three analog inputs—
6identity: product, software, version, UID8 then 1 opens the instance screen

The two arrows walk the ring. On any page other than the first, the numbered pads switch nothing.

The label zones ​

One image per zone, 155 × 40 pixels, black and white. The zone number is what muxen-uds legend --zone takes.

ZoneLabels
16…23outputs 1…8
24the module's own name, in the header
25the digital-input page title
26…31digital inputs 1…6
32the analog-input page title
33…35analog inputs 1…3

Images are stored in the panel and survive a power cut; they are only replaced when they are pushed again. A transfer takes the module about a second, during which it answers neither the pads nor another image.

Diagnostic codes ​

CodeMeaning
0x0001supply voltage above VBatMax
0x0002supply voltage below VBatMin
0x<n>01output <n>: its equation would not parse
0x<n>02output <n>: overcurrent
0x<n>03output <n>: open load

<n> is the output number, 1…8 — output 3's overcurrent is 0x0302. They are published once a second.

Timings ​

Life frame500 ms
Voltage frame1 s
Current frames500 ms, when on
Diagnostic codes1 s
Voltage debounce, in and out of safetyabout 1 s
A command from the bus holds a non-latching output for5 s
A pad held on a non-latching output locks it on after5 s
The boat's degraded level is forgotten after5 s without news
System LEDone blink a second; five a second when the supply is out of range

Versions ​

Product ID010020008
Hardware ID990010072
Software ID990050032
Software version6.0
Image010020008.srec

Updating the image is the same on every BLOC 8 v2: Loading and updating a firmware. The outputs go off when the module restarts to install it and come back on their DefaultSteOut<n>; the settings and the panel's labels are kept.

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