Fuel Level Sensor

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

Once the factory ECU and cluster are gone, fuel level is one of those small things you suddenly miss. An Elite ECU can read your tank sender, log it and pass it to a dash. Here's how we set up the Fuel Level Sensor function in ESP and get a reading you can trust.

What it's for

The Fuel Level Sensor function reads your tank's level sender so the value can be logged and sent to a display dash. It isn't used for fueling calculations, so a rough calibration won't hurt the tune. But a fuel gauge that reads wrong is worse than useless, so it's worth ten minutes to get it right.

Most tank senders are a float on an arm driving a variable resistor. That's a two-wire resistive sensor, which matters for the pull-up setting below.

Wiring tab

Choose the input

Use an AVI (Analogue Voltage Input) whenever one is free. If you've run out, an SPI (Synchronised Pulsed Input) can stand in.

Pull-up on an AVI

On an AVI, enabling the pull-up connects a 1k resistor to 5V inside the ECU. How to set it:

  • Enable it for a plain two-wire resistive sender. The sender needs that reference to create a voltage the ECU can read.
  • Disable it if the sender has its own powered electronics and outputs a voltage directly.
  • Disable it if the sender is still connected to a factory ECU or cluster that's reading it too. That device is almost always supplying the reference already, and a second pull-up will skew both readings.

Using an SPI instead

For analog use, set the SPI's Sensor Type to Hall Effect. Its pull-up is a weaker 10k resistor to 5V, and the same enable or disable rules apply. Because the resistor value is different from an AVI's, a calibration made on an AVI won't read the same on an SPI, so calibrate on the input you're actually using.

Calibration tab

This is where you load a saved calibration or build and save your own. Tank senders vary so much between vehicles that we almost always make a custom one. The easy way:

  1. Start with the tank as close to empty as you can safely get it, key on, and note the raw voltage on the fuel level input.
  2. Add a known amount of fuel, let the float settle, and note the voltage again.
  3. Repeat in equal steps until the tank is full.
  4. Enter those voltage and level pairs into the calibration table and save it.

Most tanks aren't a simple box, so the voltage rarely changes by the same amount for each step. Taking several points is what makes the gauge accurate in the middle, not just at the ends.

If your sender's output is awkward to read directly, the Fuel Level Sender Signal Conditioner is worth a look. We also have a sender-specific write-up for Subaru fuel level sensors, and a general fuel level sensor calibration guide.

Display tab

SettingWhat it doesOur advice
Warning MinimumFuel level items in ESP flash red when the level drops below thisSet it where you'd want to start looking for a gas station, with enough margin to avoid fuel starvation in corners
Display MaximumThe highest level the system accepts, and the full-scale value for any ESP gauge showing this channelMatch it to your tank's usable capacity, or to 100 if you calibrated in percent

Diagnostics tab

These optional checks look for voltages a healthy sender circuit shouldn't produce, which points to a wiring problem.

  • Raw Min: sets code P0462 when the voltage falls below your chosen value, typically a short to ground.
  • Raw Max: sets code P0463 when the voltage goes above your chosen value, typically an open circuit or broken wire.

Both are disabled by default. If the Engine Protection function is active you can assign each one a DTC severity, though for a fuel level fault we'd simply log it rather than limit the engine. Set the limits a little outside the voltages you recorded at empty and full, so normal readings never trip them.

Troubleshooting

SymptomUsually
Stuck at one end of the scale and never movesAn open circuit, a short, or a bad sender ground. Check which Raw code is set and follow that wire
No sensible reading from a two-wire senderPull-up disabled, so the sender has no reference to work with
Reading moved after swapping inputsAVI and SPI pull-ups differ; recalibrate on the new input
Factory gauge and ECU both read wrongTwo pull-ups fighting; disable the ECU's pull-up
Level bounces in cornersNormal fuel slosh; use the logged value as a trend

Setting up a whole car's worth of sensors? Browse the rest of the Haltech knowledge base, or see how to handle the fuel temperature sensor on an Elite. Nexus owners can find the NSP version under Fuel Level.