Fuel Level


On Euro 4/5 diesel models fuel level is being measured by BIU and sent onto CAN-bus as sensor resistance value in ohms (Ω). The ECU parses this and does some processing. First it calculates artificial fuel level voltage using standard voltage divider formula. Voltage value is being damped because the source info fluctuates a lot with fluid moving. Then the damped result is being used for LUT (Lookup table).

Euro 6: fuel level is being digitized by combination meter.

Tables (2D Maps)

So far all Euro 4 diesel ROMs contain this table:

Fuel Tank Level, 2D table, Euro 4, CID: JZ2F441A, ScoobyRom screenshot

Fuel Tank Level, 2D table, Euro 4, CID: JZ2F441A, ScoobyRom screenshot

From Euro 5 ROMs, slightly different:

ScoobyRom screenshot portion, viewing 2D table, Euro 5 diesel ROM CID JZ4A211B

Fuel Tank Level, 2D table, Euro 5, CID: JZ4A211B, ScoobyRom screenshot


Did some work using GNU Octave – import table data (ScoobyRom export as CSV), applying formulas, plot (gnuplot backend) – all on GNU/Linux of course. Btw, Octave comes with built-in interpolation functions.

“The Octave language is quite similar to Matlab so that most programs are easily portable.”
Example Octave formula:

function retval = FuelLevelVoltage (R1, R2, Vin)
         retval = Vin * R2 / (R1 + R2)

For above voltage divider, where:

  • Vin: Battery Voltage (assumed const in this case)
  • R1: const series resistor
  • R2: variable fuel level resistance (two sensors in series)
  • Vout: fuel level voltage (artificial ECU value in this case)

This way I eliminated ECU’s artificial fuel level voltage, creating direct relationship between resistance [ohm] (CAN value) and volume [litre].

Results: volume [litre] vs. resistance [ohm]

Euro 4

Fuel Level vs. Resistance (Euro 4)

Euro 5

(to do…)

Diagnostic Trouble Codes

DTCs are triggered when (artificial) fuel level voltage is outside range. As usual it’s not that simple, many conditions may affect this, too – battery voltage, CAN state etc.

  • P0462 Fuel Level Sensor Circuit (Low Input)
  • P0463 Fuel Level Sensor Circuit (High Input)

7 responses to “Fuel Level

  1. do both tank sensors have the same characteristics? One might wonder whether the transfer pump completely empties one side of the tank at low fuel levels.


    • There should be two sensors in series. Haven’t measured the real thing yet.
      I wouldn’t be worried, Subaru has got many years of experience with saddle bag tanks. As in petrol models there’s probably a siphon pump that draws fuel from the other side, completely passive, powered by returned fuel flow.


  2. it’s an electric pump on diesels, you can see it above the rear differential.


    • That’s the electrical sub fuel pump for sure, powered via relay, controlled by ECU. Impreza has it, too.
      Can you tell if it has anything to do with levelling tank halves? Otherwise I’d guess it’s meant for pre-pressurizing fuel up to filter…


  3. it connects the two tank halves, has the same function as the jet-pump in gassers. Does the ECU run it all the time? It doesn’t start at key-on, and sometimes I can hear it ticking, but other times not.
    Certainly, fuel flows from one side of the tank to the engine and is returned to the other, but how much more flow the sub-pump can muster than the return supplies is an interesting question.


  4. actually, I was doubting myself and perused the service manual and parts infos again. Both the main and sub sensors have flow and return; the sub pump connects directly to the rear of the tank. In this case, does it mean the sub-pump has another purpose- circulating the fuel in the tank for cooling perhaps?


    • Levelling + cooling purpose is possible, too. ECU will reduce power at very high fuel temps.
      Yes, sub fuel pump won’t run at ignition on, needs engine starting/running. Then, according to SSM2 logs, it’s operating all the time. Also, on Impreza its relay is pretty loud, located near glovebox, so switching would be noticable…
      Either engine noise is louder than pump or it isn’t that noisy with actual fuel flow going.
      You can test this pump and other things using test connector (passenger footwell, connect when IGN off, then IGN on).
      Update: Listening carefully near rear outside, I can hear pump ticking softly, fuel level roughly 3/4. Different sound compared to ENG OFF.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s