Flex Fuel Composition/Temperature Sensor

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

A flex fuel sensor tells your Haltech Elite how much ethanol is in the tank and how warm the fuel is, on a single wire. Here's how we set it up in ESP, what the diagnostics and sampling limits are for, and which tables turn that reading into fuel, timing and boost changes.

What the sensor tells the ECU

Ethanol blends at the pump are never exactly what the label says, and mixing E85 with gasoline makes it anyone's guess. A flex fuel composition sensor sits in the fuel line and measures the blend directly. The Haltech flex fuel composition sensor is a digital sensor, and it packs two readings onto one signal wire:

  • Ethanol content is carried by the frequency of the signal.
  • Fuel temperature is carried by the pulse width of that same signal.

Because both are timing-based, the sensor needs a digital input on the Elite. The ECU decodes both values and gives you two channels to log, display, tune from and protect the engine with.

Wiring and connection

On the Wiring tab, pick a free SPI for the Flex Fuel Composition Input. That's it on the ECU side. For the loom, the plug and pins for the sensor save you hunting for the right connector, and 3/8" GM spring lock fittings suit a lot of factory-style fuel lines.

Plumbing tip

Put the sensor where it sees fuel that is actually heading to the engine, and where it's easy to reach. Keep it away from exhaust heat, since the temperature reading is only as useful as the spot the sensor is mounted in.

Calibration and display tabs

There are two calibration tabs, one for composition and one for temperature. Both default to the Haltech digital sensor, so if that's what you're running there is nothing to change. If you're using a different brand, you can load a saved calibration or build a custom one from the sensor maker's data sheet.

Each channel also has a Display tab with Warning Minimum and Warning Maximum. When the reading goes outside that window, any gauge in ESP showing it flashes red. On composition, we find this is most useful for catching a car that's been filled with the wrong fuel. On temperature, it flags fuel that's getting heat-soaked.

Diagnostics: catching wiring faults

The Diagnostics tab lets the Elite spot a sensor that has stopped making sense, usually because of a broken or shorted wire. All four checks are off by default.

SettingWatchesCode set
Raw MinComposition signal lower than your limitP0178
Raw MaxComposition signal higher than your limitP0179
Temperature Raw MinTemperature pulse width lower than your limitP0182
Temperature Raw MaxTemperature pulse width higher than your limitP0183

If the Engine Protection function is running, you can also give each code a DTC severity so the ECU does something about it rather than just logging it. On a car that runs a lot more timing and boost on E85, we think that's worth doing. If the sensor drops out, you don't want the ECU guessing high on ethanol.

Sampling thresholds

With Enable Thresholds ticked, the ECU only updates the composition reading below a Max RPM Threshold and a Max Load Threshold. Above those, it holds the last value. The blend in the tank doesn't change during a pull, so there's no need for the reading to move there, and holding it off keeps fuel and timing from shifting mid-run. Set the limits so the sensor still updates freely during normal cruising.

Turning the reading into a tune

Once the sensor reads correctly, go to Main Setup > Engine > Fuel and set the Fuel Type to Flex Fuel. The Elite then adjusts fueling automatically as the stoichiometric ratio changes with ethanol content, and a set of related tables becomes available:

TableWhat it doesOur advice
Fuel > Fuel Composition ScalarShapes how the automatic fuel correction is applied across the ethanol rangeStart with it as-is and change it only when logs show a clear trend
Fuel > Fuel Composition CorrExtra fuel trim for where the automatic math isn't quite right. Starts at all 0.0Tune it on real blends, not guesses
Lambda > Fuel Composition CorrChanges the lambda target with ethanol contentUseful with closed loop O2 if you want a different target on E85
Ignition > Fuel Composition CorrThe timing change for the highest ethanol blend, normally E100Add timing carefully, with knock monitoring
Ignition > Fuel Composition ScalarHow much of that timing correction applies at each blendKeep it smooth. Big steps between blends make the car feel inconsistent
Boost > Duty Cycle Flex Fuel Composition CorrectionChanges boost duty with ethanol, in open loop or on the closed loop base dutyPair it with the target correction below
Boost > Target Pressure Flex Fuel Composition CorrectionClosed loop only. Raises or lowers the boost target with ethanolThe cleanest way to run more boost only when there is enough ethanol

The boost tables tie into Elite boost control. A common approach is to make pump gas boost the baseline and add boost as the ethanol percentage climbs.

Worked example

Say a customer mostly runs E85 but sometimes has to fill up with pump gas on a road trip. We tune the base maps on straight gasoline first, since that's the conservative case. Then we fill with a known high-ethanol blend, let the sensor settle, and use the composition correction tables to add the extra fuel, timing and boost the blend supports. With both ends tuned, the scalar tables handle the blends in between, and we check a mid blend in the logs to confirm it lands where we expect.

Going further with the ethanol channel

The composition reading is a normal ECU channel, so you can use it almost anywhere:

  • Add it as an axis on the fuel prime pulse and cranking tables. High ethanol blends are harder to start cold, and this is how you fix it.
  • Expand the lambda target, fuel base or ignition base tables to 4D with ethanol as an axis, for full control across blends.
  • Build a fuel temperature correction with a generic correction table using the temperature channel.

Our flex fuel tuning guide and how flex fuel control works go deeper into the tuning strategy.

Troubleshooting

SymptomUsually
Composition reads zero or doesn't changeWrong input assigned, sensor not powered, or a broken signal wire
Reading jumps around under loadCheck the signal wiring and connector first, then consider enabling the sampling thresholds
Ethanol reads sensibly but temperature is wrongTemperature calibration doesn't match the sensor brand
Rich or lean only on some blendsFuel Composition Corr or Scalar needs work in that range

Flex fuel FAQ

Do I need a flex fuel sensor to run E85?

Not if you only ever run one fuel, but pump E85 varies from season to season. A sensor lets the tune follow the real blend instead of assuming it.

Can I use a factory GM flex sensor?

Many aftermarket and OEM sensors use the same frequency-style output. Load or build the right calibration and check the readings against a known blend.

Where should the sensor go, before or after the rail?

Anywhere it sees a steady flow of the fuel the engine is burning. On return systems we usually put it on the feed side. Ask us if you're unsure about your layout.