Flex Fuel Composition Sensor

Elite Software Programmer › ESP - Main setup › FunctionsUpdated Sep 2026

A flex fuel sensor tells your Elite ECU how much ethanol is in the tank right now, so the tune can follow whatever blend came out of the pump. Here's how we set the sensor up in ESP, and how each ethanol-based table fits into a working flex fuel tune.

What the sensor is doing

Ethanol needs a lot more fuel than gasoline to hit the same air-fuel ratio, it resists knock better, and it behaves differently on a cold start. Pump E85 also varies from station to station and season to season, and anything you mix in the tank lands somewhere in between. A composition sensor sits in the fuel line and reports the ethanol percentage live, so the ECU can adjust fuel, timing, boost and more to suit.

On an Elite, that ethanol reading has three jobs:

  • Tuning: it drives the flex fuel corrections so the engine runs right on any blend.
  • Logging: you can see exactly what fuel the car was on when a log was taken.
  • Protection: sensor faults can feed Engine Protection.

The Haltech Flex Fuel Composition Sensor reports ethanol content as a frequency, not a voltage. That detail decides how you wire and configure it.

Wiring tab: input type and pin

Your sensor outputsInput Type settingWire it to
A frequency (Haltech sensor, and most OEM-style GM sensors)Digital FrequencyAn SPI
A 0-5V analog signal (some aftermarket sensors)Analogue VoltageAn AVI

For the Haltech sensor, pick Digital Frequency and assign a spare SPI under Flex Fuel Composition Input. If you're building your own loom, the plug and pins kit saves hunting for the right connector. For plumbing, -6AN adapter fittings let the sensor sit inline in an AN fuel system.

Fuel tab settings

Sampling thresholds

Turn on Enable Thresholds and the ECU only updates its ethanol reading while the engine is under a set RPM and load. Above the Max RPM Threshold or the Max Load Threshold, it stops reading and holds the value it already has.

Why would you want that? Ethanol content can't really change mid-pull, but flow, aeration and pressure swings in the fuel line at high load can make the reading wobble. Holding the value steady at high RPM and load stops the fuel and timing corrections from chasing a noisy signal right when the engine is working hardest. Set the limits so the ECU still samples plenty during normal driving, and confirm in logs that the reading updates at cruise.

Calibration

This is where the sensor's frequency-to-ethanol curve lives. It defaults to the Haltech sensor, so if that's what you're running there's nothing to do. For another brand, load a saved calibration or build a custom one from the manufacturer's data sheet, then save it so you can reuse it.

Display warnings

Warning Minimum and Warning Maximum make any ESP gauge or display showing ethanol content flash red when the reading goes outside your range. We set these just outside the blends the car is actually tuned for, so an unexpected tank of fuel is obvious the moment you connect a laptop.

Diagnostics tab

These settings catch wiring faults. Both are off by default.

SettingWhat it doesOur advice
Raw MinSets code P0178 if the raw frequency or voltage falls below your limitEnable it. Set the limit below the lowest reading a healthy sensor ever gives
Raw MaxSets code P0179 if the raw frequency or voltage rises above your limitEnable it. Set the limit above the highest healthy reading
DTC SeverityLinks either code to an Engine Protection level, if Engine Protection is activeWorth doing on high-boost or high-timing flex tunes

A broken wire or shorted signal usually sends the reading to one extreme, which is exactly what these limits look for. On a car tuned for aggressive timing on E85, losing the sensor without knowing it is a real risk, so a protection response makes sense.

Turning on flex fuel tuning

Wiring the sensor only gives you a reading. To make the tune respond to it, go to Main Setup > Engine > Fuel and change Fuel Type to Flex Fuel.

Once you do, the ECU automatically adds fuel as ethanol content rises, based on the stoichiometric ratio it calculates for the blend. That automatic step gets you most of the way. A Fuel Composition Scalar table then appears so you can shape how strongly that correction is applied across the ethanol range.

The ethanol tables, and what each is for

TableWhat it changesHow we use it
Lambda: Fuel Composition CorrTarget lambda versus ethanol contentHandy with closed loop O2 control, when you want a different target on E85 than on gasoline
Fuel: Fuel Composition CorrTrims fueling where the automatic calculation isn't quite rightStarts at 0.0 everywhere. Adjust from wideband logs on known blends
Fuel: Fuel Composition ScalarHow the automatic correction is applied as ethanol changesRefine after the base tune is solid on your two end fuels
Ignition: Fuel Composition CorrTiming correction at the highest ethanol content, typically E100Where you add the extra advance ethanol can tolerate, one step at a time with knock monitoring
Ignition: Fuel Composition ScalarHow much of that timing correction applies at in-between blendsBlends between your gasoline timing and full ethanol timing
Boost: Duty Cycle Flex Fuel Composition CorrectionFinal boost solenoid duty versus ethanol. Affects open loop duty or the closed loop base dutyLets the car make more boost only when the fuel supports it
Boost: Target Pressure Flex Fuel Composition CorrectionClosed loop boost target versus ethanol. Only available in closed loopOur preferred way to raise boost on E85. See Elite boost control

Worked example: a two-fuel street car

Say a turbo car lives on 93 octane most of the week and runs E85 at the track. We'd tune it like this:

  1. Tune the base fuel and ignition tables fully on straight gasoline, with the Fuel Type still set to gasoline.
  2. Switch Fuel Type to Flex Fuel, fill up with a known high-ethanol blend, and let the automatic correction do its work. Use Fuel Composition Corr to trim any remaining error, checking a wideband as you go.
  3. Add timing through the Ignition Fuel Composition Corr table carefully, watching knock and power on the dyno.
  4. Raise boost on ethanol with the target pressure correction.
  5. Run a mixed tank and confirm the in-between blend behaves. That's what the scalar tables are for.

Other places to use the ethanol channel

Ethanol content is available as an axis in many other tables. Two we use often:

  • Cold starts: add ethanol as an axis on the Fuel Prime Pulse and Fuel Cranking tables. High-ethanol fuel is harder to light when it's cold, and this makes starting consistent on any blend.
  • Full 4D mapping: on Elites that support it, Lambda Target, Fuel Base and Ignition Base tables can be expanded to 4D with ethanol as the extra axis, giving you full control of mapping across every blend.

For the bigger picture, read how flex fuel control works and our flex fuel tuning guide.

Troubleshooting

SymptomUsually
Ethanol reads 0% or jumps to a fixed valueWrong input type (analog chosen for a frequency sensor), wrong input assigned, or a wiring fault
Reading looks plausible but wrongCalibration doesn't match the sensor brand
Reading never changes after a fill-upSampling thresholds set so low the ECU rarely samples
Lean on a mixed tank, fine on the end fuelsFuel Composition Scalar or Corr needs work in the middle of the range
P0178 or P0179 loggedSignal wire open or shorted, or Raw Min/Max limits set too tight

Flex fuel sensor FAQ

Does the flex fuel sensor go on the feed or return line?

Anywhere it sees a steady flow of the fuel going to the engine. Most installs put it in the feed line after the filter. The key is that fuel is always moving through it.

Do I have to set Fuel Type to Flex Fuel to log ethanol content?

No. The sensor reads and logs as soon as it's wired and assigned. Changing Fuel Type is what makes the tune respond to it.

Can I use a non-Haltech sensor?

Yes. Choose the input type that matches its output and load or build a matching calibration. Not sure what you've got? Ask us.