Skip to main content
Firmware Stable

IGNIS: set up a starter-generator

Applies to​

A motor controller running IGNIS (swid contains _IGNIS_), which cranks a combustion engine and then loads it as a generator (IGNIS). There is no IGNIS wizard; this follows the feature pages.

Before you start​

  • The rules of the general method and the setup rules of the motor identification playbook ("Before you start") apply: propose each step, run it after the user's yes, check every result.
  • Levels: writes and save -y need Allow writes. gen starts the engine: treat it like a motor command - only after the user's explicit yes, with the engine area clear.
  • Motor identification first, and it turns the machine: it needs the machine free to turn, not coupled to the engine. If it cannot be decoupled, stop and escalate before identifying.
  • Safety, tell the user before anything runs: the kill relay is mandatory; with the start request active, the engine starts at power-up and restarts by itself after a fault; the battery (or supercapacitor) must absorb the generated current.

Steps​

1. State​

/driver/error and /common/error 0; /driver/motor/Rt not 0 (identified, see above). /app_mode and its meaning: IGNIS mode.

2. Wiring​

With the user, against wiring: the kill relay on contactor 1, wired so the engine stops whenever the contactor is unpowered; the start switch to a GPIO input; for a pair of controllers, the shared CAN, DC bus and switch.

3. Start source​

/start_sel (CAN, GPIO or both) and /IN_gen (which input starts it) (enabling). The default starts from the GPIO switch. The gen command used in step 8 needs CAN or both selected: propose that for commissioning and tell the user how to set it back.

4. Starting​

Ask for the engine's cranking and running speeds and set the starting values from starting (start_threshold between them, start and pullback levels, times, number of trials). The starter and generator currents come from the driver's iref and irefr and the battery limits.

5. Loading and DC limits​

  • Loading: warm-up and ramp times, the load command mode for the user's engine (governed or not). The engine must follow the generator's capability signal or be unable to overspeed by design - ask.
  • DC regulation: /dc/ubmax (system voltage) and /dc/ibneg_total (total generation current), both off by default; keep the driver's battery limits set as a backstop.

save -y.

6. CAN host (optional)​

If a host commands IGNIS: the start request and demand frame, the status frame and the host timeout on CAN; a pair of controllers needs different addresses and each other's address (multimaster).

7. Before the first start​

Check with the user: kill relay tested (the engine stops when the contactor is off), engine area clear, battery able to absorb the current, /driver/error 0.

8. First start​

gen 0 starts the engine with no load (gen): /app_mode goes through pullback, starting and warm-up to idle. Then gen 0.4 loads it: after the ramp it reaches generating, with /current negative. gen s stops; the request stays latched until then, also when the shell is closed. A start that keeps failing or a latched overvoltage mode: read the mode page before trying again.

Hand back​

Set /start_sel back to the user's start source if step 3 changed it, save -y, and have the user test a start with their own switch or host.

Report​

  1. Device: name, serial number, swid.
  2. Start source, starting and loading values, DC limits.
  3. The first start: the modes seen and the current while generating.

Escalate​

The machine cannot be identified decoupled, the engine does not start, or a fault repeats: a diagnostic report to siliXcon.