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.
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.
| Setting | Watches | Code set |
|---|---|---|
| Raw Min | Composition signal lower than your limit | P0178 |
| Raw Max | Composition signal higher than your limit | P0179 |
| Temperature Raw Min | Temperature pulse width lower than your limit | P0182 |
| Temperature Raw Max | Temperature pulse width higher than your limit | P0183 |
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:
| Table | What it does | Our advice |
|---|---|---|
| Fuel > Fuel Composition Scalar | Shapes how the automatic fuel correction is applied across the ethanol range | Start with it as-is and change it only when logs show a clear trend |
| Fuel > Fuel Composition Corr | Extra fuel trim for where the automatic math isn't quite right. Starts at all 0.0 | Tune it on real blends, not guesses |
| Lambda > Fuel Composition Corr | Changes the lambda target with ethanol content | Useful with closed loop O2 if you want a different target on E85 |
| Ignition > Fuel Composition Corr | The timing change for the highest ethanol blend, normally E100 | Add timing carefully, with knock monitoring |
| Ignition > Fuel Composition Scalar | How much of that timing correction applies at each blend | Keep it smooth. Big steps between blends make the car feel inconsistent |
| Boost > Duty Cycle Flex Fuel Composition Correction | Changes boost duty with ethanol, in open loop or on the closed loop base duty | Pair it with the target correction below |
| Boost > Target Pressure Flex Fuel Composition Correction | Closed loop only. Raises or lowers the boost target with ethanol | The 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
| Symptom | Usually |
|---|---|
| Composition reads zero or doesn't change | Wrong input assigned, sensor not powered, or a broken signal wire |
| Reading jumps around under load | Check the signal wiring and connector first, then consider enabling the sampling thresholds |
| Ethanol reads sensibly but temperature is wrong | Temperature calibration doesn't match the sensor brand |
| Rich or lean only on some blends | Fuel 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.



