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
- Ignition — once the engine is at rest, the ignition relay closes (wiring).
- Pullback — the motor briefly spins the engine in reverse for
pullback_timms atpullback_levelspeed, to position the crank before cranking. - Cranking — the motor drives the engine forward at
start_levelspeed for up tostart_timms. - Detection — when the engine speed exceeds
start_thresholdrpm, the engine is considered started. - Pause / retry — if the engine does not catch within
start_tim, the controller pauses forpause_timms and retries; aftermax_trialsunsuccessful attempts it locks out inMODE_MAX_TRIALS. - 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).
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/ubminand/driver/limiter/ubmax - Battery currents:
/driver/limiter/ibposand/driver/limiter/ibneg