Tag Archives: ScoobyRom

Yet another color map for EcuFlash

Perhaps another color map for EcuFlash might be interesting? I wrote a little SageMath python script to generate a ScoobyRom-like color map file.

EcuFlash using ScoobyRom color map

EcuFlash using ScoobyRom color map

Note: Although generated color map matches ScoobyRom’s precisely, EcuFlash applies colors based on “min” and “max” specified in XML definitions.

Excerpt from EcuFlash definition file: 32BITDIESELBASE.xml


<scaling name="ChargeAirPressure" units="kPa" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>

Whereas ScoobyRom scales colors ranging from a map’s actually used mininum and maximum. For example, if you would change min="0" to min="100" in above scaling definition, low value colors would appear bluish like in ScoobyRom, effectively making map graphics cover more/most of available color range.

Install

1) Download file scoobyrom-map.odt

2) Rename downloaded file to ScoobyRom.map, since normal file extension is not allowed on wordpress.com.

3) Move file into EcuFlash’s color maps folder, i.e.

C:\Program Files (x86)\OpenECU\EcuFlash\colormaps\

4) Launch or restart EcuFlash.

5) Via EcuFlash menu: File → Options → Appearance → Default Color Map
Select “ScoobyRom.map”
(Btw., default color map directory can also be defined in Options)

Color Map File Format

Color map format is plain text ASCII file, usually 256 lines as in this case, specifying RGB values which will be applied to maps, from low to high:


153 153 255
153 154 255
153 156 255
152 157 255
...
255 110 103
255 107 102
255 105 102
255 102 102

Advertisements

ScoobyRom v0.8.2 Released

What’s new in v0.8.2:
  • Export as TunerPro XDF format.
  • Support for ROM type SH72531 (1.25 MiB = 1280 KiB size)
  • Display Reflash Count if known/available (Properties-window).

Project homepage: ScoobyRom Software

Properties

Already implemented in previous version is the ability to parse and display ROM Date (year-month-day), diesel as well as petrol type encodings. May not work for all ROM types (yet), though. AFAIK, ScoobyRom is the only software parsing this Denso specific date.

ScoobyRom 0.8.2 - Properties window, CID JZ4A211B

ScoobyRom 0.8.2 – Properties window, CID JZ4A211B

TunerPro (XDF)

Due to my intense work on BMW ECUs in recent years, I got familiar with TunerPro which is a generic ROM editor. It is quite popular in the BMW community, it can handle lots of data format options. Its definition format “XDF” is XML-based as usual. As an exercise to verify XDF knowledge I implemented XDF output in ScoobyRom.

Compared to RomRaider, reading an XDF containing hundreds of tables is very fast, almost instant. TunerPro is Windows-only and closed-source however.

TunerPro 5.00.8853 screenshot, Windows 10 x64, XDF generated by ScoobyRom

TunerPro 5.00.8853 screenshot, Windows 10 x64, XDF generated by ScoobyRom

ScoobyRom v0.8.0 Released

New in v0.8.0:
  • Navigation bar visualisation.
  • Additional columns (conversion: Multiplier & Offset or NaN if not used; Axes locations: XPos, YPos)
  • Select all/none
  • RomRaider definitions export: choose whether to export all/selected/annotated tables.
  • Roughly 3 times faster when scanning whole ROM.
  • Lots of misc improvements in code at least…

Go to homepage: ScoobyRom Software
Post software specific feedback there, please!
Also, if you find this software useful consider to “like” above page as minimum feedback and motivation for future work!

ScoobyRom v0.7.1 Released

New in v0.7.1:
  • Dynamically adjust icon size (Ctrl-+, Ctrl--, Ctrl-0)
  • Edit -> Copy Table: Can paste values into existing RomRaider table, spreadsheet (LibreOffice Calc, Microsoft Excel), text editor etc.
  • Miscellaneous improvements as always.
  • Also tested on Windows 10, no changes were necessary.

Go to page: ScoobyRom Software
Enjoy and provide software specific feedback there, please!

ScoobyRom v0.7.0 Released

Go to page: ScoobyRom Software

Enjoy and provide software specific feedback there, please!

Fuel Level

Introduction

On Euro 4 and early EU 5 (MY till including 2011) diesel models fuel level is being measured by BIU and transmitted on CAN-bus as 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 level information fluctuates a lot with fluid moving. Then the damped result is being used for LUT (Lookup table).

Euro 5 gen3 and EU 6, = MY 2012+: Fuel level is being digitized by combination meter. ECU ROM does more sophisticated damping/averaging.

Math

Did some math, using exact ROM table data (ScoobyRom, export as CSV), applying formulas, creating plots.


For above voltage divider, where:

  • Vin: Battery Voltage (assumed constant in this case)
  • R1: constant series resistor
  • R2: variable fuel level resistance (two sensors in series, one per tank half)
  • 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 [Ω] (CAN value) and volume [litre].

ROM Tables and Calculated Results

gen1 Euro 4 (MY 2008-2010)

Fuel tank capacity: 64 litres.

Fuel Tank Level, 2D table, Euro 4, ScoobyRom screenshot

gen2 Euro 5 (MY 2010-2011)

Fuel tank capacity: 65 litres.

Fuel Tank Level, 2D table, gen2 Euro 5, ScoobyRom screenshot

gen3 Euro 5 (MY 2012-2014) and gen4 Euro 6 (MY 2015+)

Fuel tank capacity: 60 litres.

There seems to be a calibration data error as the vertical step (at 19 ↔ 23 litres) does not make sense! ECU’s LUT code can handle this but technically it is a flaw. The averaging algorithm after table lookup will mitigate this issue. Same map data was found in newer Euro 5 and Euro 6 ROMs.

Fuel Tank Level, 2D table, Euro 6, ScoobyRom screenshot

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)

For some reason, above codes are not publicly exposed in Euro 6 spec models, also not available in service manual DTC listing. They are processed internally however.

Fuel Gauge

Fuel gauge and fuel warning light, Subaru Impreza diesel Euro 4. At depicted position, there are still 5 to 10 litres left in the tank.

I tested the fuel gauge by inserting a variable resistor after disconnecting a fuel level sensor connector from the wiring harness, below the rear seats. The Euro 4 fuel gauge at least reacts very slowly. It takes more than 20 seconds from empty to full and vice versa. The combination meter does its own damping obviously. Therefore, gauge hijacking, i.e. abusing the fuel gauge in order to display something fluctuating like manifold air pressure (MAP) is not feasible (without hacking combination meter ROM, of course).

Updated: ScoobyRom v0.6.1

Link to ScoobyRom page
Slight update only, no visual things…