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 outputs | Input Type setting | Wire it to |
|---|---|---|
| A frequency (Haltech sensor, and most OEM-style GM sensors) | Digital Frequency | An SPI |
| A 0-5V analog signal (some aftermarket sensors) | Analogue Voltage | An 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.
| Setting | What it does | Our advice |
|---|---|---|
| Raw Min | Sets code P0178 if the raw frequency or voltage falls below your limit | Enable it. Set the limit below the lowest reading a healthy sensor ever gives |
| Raw Max | Sets code P0179 if the raw frequency or voltage rises above your limit | Enable it. Set the limit above the highest healthy reading |
| DTC Severity | Links either code to an Engine Protection level, if Engine Protection is active | Worth 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
| Table | What it changes | How we use it |
|---|---|---|
| Lambda: Fuel Composition Corr | Target lambda versus ethanol content | Handy with closed loop O2 control, when you want a different target on E85 than on gasoline |
| Fuel: Fuel Composition Corr | Trims fueling where the automatic calculation isn't quite right | Starts at 0.0 everywhere. Adjust from wideband logs on known blends |
| Fuel: Fuel Composition Scalar | How the automatic correction is applied as ethanol changes | Refine after the base tune is solid on your two end fuels |
| Ignition: Fuel Composition Corr | Timing correction at the highest ethanol content, typically E100 | Where you add the extra advance ethanol can tolerate, one step at a time with knock monitoring |
| Ignition: Fuel Composition Scalar | How much of that timing correction applies at in-between blends | Blends between your gasoline timing and full ethanol timing |
| Boost: Duty Cycle Flex Fuel Composition Correction | Final boost solenoid duty versus ethanol. Affects open loop duty or the closed loop base duty | Lets the car make more boost only when the fuel supports it |
| Boost: Target Pressure Flex Fuel Composition Correction | Closed loop boost target versus ethanol. Only available in closed loop | Our 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:
- Tune the base fuel and ignition tables fully on straight gasoline, with the Fuel Type still set to gasoline.
- 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.
- Add timing through the Ignition Fuel Composition Corr table carefully, watching knock and power on the dyno.
- Raise boost on ethanol with the target pressure correction.
- 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
| Symptom | Usually |
|---|---|
| Ethanol reads 0% or jumps to a fixed value | Wrong input type (analog chosen for a frequency sensor), wrong input assigned, or a wiring fault |
| Reading looks plausible but wrong | Calibration doesn't match the sensor brand |
| Reading never changes after a fill-up | Sampling thresholds set so low the ECU rarely samples |
| Lean on a mixed tank, fine on the end fuels | Fuel Composition Scalar or Corr needs work in the middle of the range |
| P0178 or P0179 logged | Signal 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.



