Skip to main content
Firmware Stable

Starting Sequence

The IGNIS application implements an automatic engine starting sequence with pullback, cranking, pause, and retry phases. The sequence is controlled by a set of configurable parameters at the root level.

info

The starting sequence can be triggered either by a GPIO digital input or automatically when the controller is powered on, depending on the IN_gen parameter.

Starting Sequence Flow

  1. Pullback — the motor briefly spins in reverse direction for pullback_tim ms at pullback_level speed
  2. Cranking — the motor drives the engine forward for up to start_tim ms at start_level speed
  3. Detection — if phase voltage exceeds start_threshold, the engine is considered started
  4. Pause — if the engine does not start, the controller pauses for pause_tim ms before retrying
  5. No-load — after a successful start, the engine runs without load for noload_tim ms
  6. Ramp-up — load is gradually increased over ramp_tim ms to full generation

If the maximum number of trials (max_trials) is reached without a successful start, the controller enters MODE_MAX_TRIALS and stops.

Parameters

IN_gen

GDIN ID for generator start input.

  • 0 — disable input, start engine automatically with the controller
  • 16–20 — GDIN0 through GDIN4
  • 32–39 — din1 through din8

start_threshold [V]

Phase voltage threshold. If voltage is higher than this value, the engine is considered as started.

start_level

Driver command during engine cranking (mode 3). Corresponds to speed. Range: 0 to 1.

pullback_level

Driver command during engine pullback (mode 3). Corresponds to speed. Range: -1 to 0.

max_trials

Maximum number of engine start attempts. Set to 0 for unlimited attempts.

pullback_tim [ms]

Duration of the pullback phase. Set to 0 to disable pullback.

start_tim [ms]

Maximum time allowed for a single engine start attempt. After this time, a pause is initiated and a new trial begins.

pause_tim [ms]

Duration of pause after an unsuccessful start attempt.

noload_tim [ms]

No-load operation duration immediately after a successful engine start.

ramp_tim [ms]

Duration for ramping up from no load to full load after startup.

hyst_tim [ms]

Overvoltage hysteresis duration. If phase voltage exceeds battery voltage for this time, the engine is stopped. Useful when the engine overspeeds or the battery is undercharged.

tip

To tune generator currents and voltages, check the driver settings:

  • Motor phase starting current: /driver/iref
  • Motor phase running current: /driver/irefr
  • Battery minimum and maximum voltage: /driver/limiter/ubmin and /driver/limiter/ubmax
  • Battery currents: /driver/limiter/ibpos and /driver/limiter/ibneg

Debug States

The following states are available under the /gen_debug folder for diagnostics.

StateUnitDescription
sstate-Starting sequence state: 0 — init/running, 1 — pullback, 2 — starting, 3 — pause, 4 — cycle done
stimmsDuration timer for pullback and pause phases
loadedmsTimer tracking engine load duration after start
started-Engine start integrator. Positive value means the engine is started
toohighmsOvervoltage condition timer
armed-Generator armed indicator: 0 — not armed, 1 — armed
trial-Current number of engine start trials