Skip to main content

Flex Fuel

Capoworks reads a Continental/GM-style flex sensor through flexSensorPin. Configure it under Sensors > Flex fuel sensor using an input suitable for a frequency signal; a slow switch input is not appropriate.

The two edges of each sensor pulse carry different information. On the falling edge, firmware measures frequency and publishes FuelEthanolPercent. The current converter targets the 50-150 Hz sensor range, reports low below 45 Hz and high above 155 Hz, converts accepted frequency to ethanol percentage with a low-pass filter, and preloads that filter from the last valid percentage stored in backup RAM. On the rising edge, pulse width is measured as fuel temperature: 1000 us represents -40 C and 5000 us represents 125 C, with values outside roughly 900-5100 us reported as invalid. If an analog fuel-temperature channel is configured, it is used instead of the flex sensor's temperature output.

The enabled correction is intentionally limited. stoichRatioPrimary applies at E0 and stoichRatioSecondary at E100; the active stoichiometric ratio is interpolated between them. flexCranking optionally blends the normal cranking coolant multiplier with crankingFuelCoefE100. When the sensor is invalid, the ECU uses the last valid percentage from backup RAM, then flexFuelFailedEthanol if no valid value has ever been stored.

This is not automatic calibration of every fuel or ignition map. VE, lambda targets, ignition, and other tables do not gain a complete E0-to-E100 calibration from enabling the sensor. If ethanol-dependent changes are required, configure them explicitly, for example as a blend axis in Multi-Dimensional Mapping or in an output-control table using Ethanol (Flex) %. Those are user-defined corrections, not an automatic tune.

Verify Flex Ethanol % and fuel temperature after installation. Missing or out-of-range frequency can raise the configured P0176, P0178, or P0179 diagnostic; use that code plus the live percentage to separate wiring, frequency, and contamination problems.

Source references​