Skip to content

Reference — J1939 gateway ​

The MUXEN devices this gateway publishes ​

DeviceFunctionInstanceWhat it carries
Generator group4the genset's own J1939 instance, then InstanceNumone per discovered genset: state, engine speed, AC voltage, current, power, temperature, alarms
Generic I/O17configured (InstanceNum)the box's own relays, inputs and analog inputs

MQTT topics on the Brain follow device/<function>/<instance>/<frame>:

TopicDirectionContents
device/4/<n>/lifepublished, 1 sstate, stateCode, voltage, temperature, noStart, noCutOff
device/4/<n>/statepublished, 1 srpm, voltage, current, power
device/4/<n>/error/<code>published, 500 msone topic per active alarm
device/4/<n>/commandacceptedstartRequest, stopRequest, ForceCmd, clearError
device/17/<n>/lifepublishedthe box's own inputs and relays

Genset states: off, contact, starting, on, stopping, error, plus codes 5 (engine only) and 6 (test mode), which carry no label.

Parameters — generator group (function 4) ​

ParameterDefaultMeaning
InstanceNumthe genset's J1939 instancethe MUXEN instance; changing it needs a restart
BindToParclatched to 255 (stand-alone) at first sightthe battery zone this genset charges. Required for automatic start; read once at discovery
SocToStart15state of charge, in %, below which the genset is started
MaxCurrentPercent40share, in %, of the zone's maximum discharge current above which the genset is started to assist
SocToStopAfterCurrentHelp90state of charge, in %, above which an assist run may end
ChargeCurrentToStop−100battery current, in 0.1 A, at which a full bank counts as charged
GensetModelset by discoveryread-only: 1 = Fischer Panda, 2 = Cummins Onan
MinSocToStop, VmaxToWork5, 248in the list, not used by this firmware
ProductId, HardwareId, SoftwareId, SoftwareVersionread-onlysee Reference

Every threshold above concerns a Fischer Panda only.

Parameters — generic I/O (function 17) ​

The common ones (InstanceNum, EnGenIo, EnAnalogPwr) are in Reference. This firmware adds four:

ParameterDefaultMeaning
Relay1Eqn, Relay2Eqnemptya MUXEN equation driving that relay from what it hears on the bus
Relay1Latch, Relay2Latch01 = each time the equation goes true, the relay toggles instead of following it

A relay command from the bus overrides the equation until released.

Routines ​

RoutinePayloadEffect
10001restore the instance number to its default
1any bit above bit 0restore every other parameter of that device
2—reserved; does nothing, including no LED "locate"

What is read from the J1939 bus ​

Fischer Panda — manufacturer-specific frames:

PGNFeeds
65281genset state, and the genset's own auto-start mode
65300AC voltage, current, power
65303engine speed
65285engine temperature

Cummins Onan:

PGNFeeds
65280genset status → the MUXEN state
61444engine speed
65030AC line-to-neutral RMS voltage
65262temperature
65226, 65227active and previously active diagnostic codes → MUXEN alarms
65242, 65253, 65263, 65266, 65270, 65271accepted and decoded, but nothing is published from them today

Everything else is ignored; an unknown sender is asked once to introduce itself so the gateway can decide whether it knows it.

What is written to the J1939 bus ​

Only for a Fischer Panda:

FramePurpose
PGN 61184remote start and stop; and re-enabling the genset's auto-start mode whenever it is found off
PGN 65305charge parameters taken from the bound battery zone: state of charge, maximum charge voltage, maximum charge current

The gateway claims source address 0x53 (83) for itself and answers address-claim requests.

Timings ​

Genset life and state framesevery 1 s, starting 1 s after discovery
Alarms republishedevery 500 ms
A Fischer Panda is forgotten after120 s without a single J1939 frame from it
A Cummins Onan is reported off after5 s without a single J1939 frame from it (CUMMINS_ONAN_ASLEEP_TIMEOUT_MS); it is never forgotten
Generic I/O publishedon change, and at least every 500 ms
Second CAN bus bitrate250 kbit/s, forced at every start

Known limitations ​

  • A diagnostic code the gateway does not recognise clears the whole alarm list, including alarms belonging to other devices.
  • The temperature published for a Cummins Onan is derived from its fuel temperature and its offset is wrong. Indicative only.
  • Charge parameters are sent to J1939 address 0 rather than to the genset's own address; a Fischer Panda that does not sit at address 0 never receives them.
  • clearError is accepted and ignored.
  • Current and power are never published for a Cummins Onan.
  • InstanceNum and BindToParc take effect only after a restart.

Versions ​

HardwareVersionImage
CanCan v15.3010010034-app_j1939-firmware.srec
CanCan v26.4010010034-V2-app_j1939-firmware.srec

Source: workspace/muxen/cancan/app_j1939/, overlay boards/arm/<board>/010010034.overlay.

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