The engine stopped by itself, or would not start
What ArduPilot says:
- Engine max crank attempts reached
- Uncommanded engine stop
“Uncommanded engine stop”: the engine should be running and the RPM sensor chosen by ICE_RPM_CHAN reads below ICE_RPM_THRESH (100 by default) or gives no reading. ArduPilot waits ICE_START_DELAY and cranks again. “Engine max crank attempts reached”: it has tried ICE_STRT_MX_RTRY times and gives up; the message repeats while the start is still being asked for.
What to do, most likely first
The engine did stop in flight: fuel, ignition, or too low an idle.
FixFly it as a glider: keep the airspeed, turn for a place to land, and let the restart run. On the ground find the cause before the next flight; raise the idle (
ICE_IDLE_PCT) if it dies when the throttle is closed.The engine runs, but the RPM sensor lost its signal.
CheckYou hear the engine while the RPM in the ground station reads zero.
FixRepair the RPM sensor's wiring: while the reading is below
ICE_RPM_THRESH, ArduPilot keeps engaging the starter on a running engine.The start settings do not suit the engine: starter time, throttle during the start, choke.
FixOn the bench, with the plane tied down, adjust
ICE_STARTER_TIMEandICE_START_PCTuntil it starts on the first attempts.
Parameters to look at
| Parameter | What it is |
|---|---|
ICE_RPM_CHAN | RPM instance channel to use |
ICE_RPM_THRESH | RPM threshold |
ICE_START_DELAY | Time to wait between starts |
ICE_STRT_MX_RTRY | Maximum number of retries |
ICE_STARTER_TIME | Time to run starter |
ICE_START_PCT | Throttle percentage for engine start |
ICE_IDLE_PCT | Throttle percentage for engine idle |
The code that sends it
Engine max crank attempts reached
libraries/AP_ICEngine/AP_ICEngine.cpp AP_ICEngine::update() · Open in ArduPilot Copter-4.7.1
Uncommanded engine stop
libraries/AP_ICEngine/AP_ICEngine.cpp AP_ICEngine::update() · Open in ArduPilot Copter-4.7.1