Skip to main content
Firmware Stable

Starting

The IGNIS application starts the engine automatically with a pullback, cranking, pause and retry cycle. The sequence runs whenever the system is enabled and the engine is not yet running. The sequence parameters live in the /starting directory.

Starting sequence​

  1. Ignition — once the engine is at rest, the ignition relay closes (wiring).
  2. Pullback — the motor briefly spins the engine in reverse for pullback_tim ms at pullback_level speed, to position the crank before cranking.
  3. Cranking — the motor drives the engine forward at start_level speed for up to start_tim ms.
  4. Detection — when the engine speed exceeds start_threshold rpm, the engine is considered started.
  5. Pause / retry — if the engine does not catch within start_tim, the controller pauses for pause_tim ms and retries; after max_trials unsuccessful attempts it locks out in MODE_MAX_TRIALS.
  6. Warmup — after a successful start the engine warms up with no generation load. The starter assist stays engaged during the warmup: it delivers no torque while the engine runs above the cranking speed, but catches the engine if it chokes right after the start.

What happens after the warmup depends on the generation demand — see Loading.

In a multi-master system the two motors on the common shaft perform the sequence in lockstep — the leader times the sequence and the other controller follows it exactly.

Parameters (/starting)​

start_threshold [rpm]​

Engine speed at which the engine is considered started. Set it above the cranking speed and below the engine's lowest (cold) idle speed. The detection has a built-in hysteresis: a started engine is considered stopped again only after staying below the threshold for about hyst_tim.

rest_threshold [rpm]​

Engine speed below which the engine is considered at rest. A start attempt waits for it in MODE_PAUSE — no pullback into a turning engine. Keep it above the speed reading at standstill.

start_level​

Motor speed command during cranking, relative (0 to 1).

pullback_level​

Motor speed command during pullback, relative (-1 to 0).

max_trials​

Maximum number of start attempts. 0 means unlimited attempts.

pullback_tim [ms]​

Duration of the pullback phase. 0 disables the pullback.

start_tim [ms]​

Maximum cranking time of one attempt. After this time a pause is initiated and a new attempt begins.

pause_tim [ms]​

Pause after an unsuccessful attempt.

hyst_tim [ms]​

Started-detection hysteresis: a running engine is considered stopped only after staying below start_threshold for this time (a start is detected immediately).

tip

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

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