Commissioning Control — the gen command
The gen shell command provides temporary control of the engine and the generation limit for commissioning and bench testing — without an external host and without touching the configuration.
gen is not a separate control path: it builds a real CAN control message (0x560) and broadcasts it on the bus, so both controllers of a pair act on it exactly as on a message from an external host — same latch, same timeout, same states. Anything documented for the control message applies to gen unchanged, and a real host frame simply supersedes it.
Usage
| Command | Result |
|---|---|
gen | Start, 100 % generation limit, until gen s |
gen 0.4 | Start, 40 % generation limit, until gen s |
gen 0 | Start with zero generation — the engine idles unloaded, until gen s |
gen s | Stop request (latched until it times out or the next command) — ends the repetition |
The command is non-blocking: gen [0..1] returns immediately, and the firmware keeps repeating the request every 100 ms — exactly as an external host does — until gen s requests a stop. Issuing gen again just updates the running request (for example a new generation limit).
The start request is latched in the firmware, not in the terminal — closing the shell or losing the connection does not stop the engine. Stop it explicitly with gen s (from any session), or take over with a real host 0x560 message.
Preconditions
genworks through the CAN control input, so CAN must be a selected start source:start_sel = 1or3(see Enabling). With3the GPIO input must also agree — on a bench without the switch wired, use1. The command reports this precondition instead of overriding the configuration.- A fresh start is granted only when the driver is ready (no error, no active protection, motor steady); the command reports the reason when it refuses.
genclears a pending driver-level shell override (run/stop), which would otherwise block the application. Note that the driverstopcommand stops the local controller only — usegen sto stop the whole system.
Nothing here is test-only firmware — gen exercises the production control path. Any CAN tool on the bus can do the same by sending 0x560 frames.