Internal Combustion Engines (ICE)

Canberra UAV’s petrol powered tricopter. See blog post here

Internal combustion engines can increase flight times but care must be taken to handle the extra complexity and increased vibration.

What to Buy

Connection and Configuration

The engine’s ignition power switch and (optional) starter should be connected to the autopilot’s servo outputs, Ignition and Starter (see ICE section in Autopilot Output Functions).

To allow the pilot to directly control the ignition and (optional) starter from the transmitter, RC pass-through should be set up:

  • Set SERVOx_FUNCTION (where “x” is the autopilot’s output channel connected to the ignition or starter) to RCINy (where “y” is the transmitter channel). For example set SERVO8_FUNCTION = 59/”RCIN9” to allow the transmitter’s channel 9 to control the autopilot Output 8

Be sure to check the engine’s behavior when the transmitter is turned off to simulate what will happen during an RC failsafe.


The engine can be started and stopped in autonomous missions by using the DO_ENGINE_CONTROL mission command. This useful preceding NAV_VTOL_TAKEOFF or NAV_VTOL_LAND to start or stop the engine to prevent prop strikes while landing in wind with a low clearance prop. See Mission Commands section.

Idle and redline governors

These features rely on having a source for engine RPM. See RPM Measurement for more information.

The idle governor allows the autopilot to adjust the throttle to maintain an RPM value when the commanded throttle is low. This can be useful when the engine is waiting for takeoff and reduces the workload on the pilot during that time. Increasing the throttle command will give the expected throttle response.

ICE_IDLE_PCT This is the minimum percentage throttle output while running, this includes being disarmed, but not while outputs are disabled by the safety switch . - ICE_IDLE_RPM This configures the RPM that will be commanded by the idle governor. Set to -1 to disable. - ICE_IDLE_DB This configures the RPM deadband that is tolerated before adjusting the idle setpoint. - ICE_IDLE_SLEW This configures the slewrate used to adjust the idle setpoint in percentage points per second

The redline governor will slowly reduce the throttle if the RPM remains above the given RPM value. Generally, this RPM value is provided by the manufacturer of the engine. If the commanded throttle drops faster or lower than the point the governor started, then the governor will be released and normal control of the throttle will return to normal throttle response. A warning message will appear on the GCS. Setting:ref:ICE_OPTIONS<ICE_OPTIONS> bit 1 allows disabling the throttle actions of the redline governor, but still displays the GCS warning message.

  • ICE_REDLINE_RPM Maximum RPM for the engine provided by the manufacturer. A value of 0 disables this feature.

Vibration isolation

The high vibration from internal combustion engines means that vibration dampening is critical. It is often necessary to mount the autopilot on a plate with self-adhesive lead weights added to increase its mass.