Page 1 of 3
Map offsets for 32bit SUBARU DENSO ECUs (DBW & NON-DBW)

Posted:
Wed May 03, 2006 5:46 am
by xswrex
in the attachment you will find 3 seperate text files (1D,2D,3D) containing the various map offsets.
I will try to give an example how it is implemented:
offset=address in rom
[offset]=go to offset and read the actual value there
seek to [offset] to find the axis/data sizes and offsets
simple


Posted:
Wed May 03, 2006 6:55 am
by twg
THANK YOU!!!!
Now to translate this to XML files... Hmmm....
btw: I also noticed, for the USDM FXT, there are addresses in the 155XXX range... this is outside of the 512K address format, so I think the "1" in front of these addresses are typos... thoughts?
Lastly, I think it's missing some tables, such as following:
MAP Sensor Scaling - Pressure Offset
MAP Sensor Scaling - Voltage Multiplier
Mass Air Flow Reading Limit #1
Mass Air Flow Reading Limit #2
as well as ~6-10 2D tables...

Posted:
Wed May 03, 2006 6:20 pm
by WolfPlayer
This file is pretty amazing if the values are true and can be trusted. I was just asking about the '05 STI ... and wow, here it is.
I don't see the Injector Latency 2D map. But, still .... wow ... lots and lots of data there. Thank you so much for this post!!!
t

Posted:
Wed May 03, 2006 9:59 pm
by xswrex
the ones i could verify from rom posts here seemed ok (e.g. STI 06). Without a rom i cannot crosscheck offsets
surely there will be missing maps, but i think these are good enough to get you started

Posted:
Thu May 04, 2006 12:39 am
by xswrex
this is what i have come up with so far
ROM STRUCTURE
3D
offset->
1x16bit cols count
1x16bit rows count
1x32bit cols offset
1x32bit rows offset
1x32bit data offfset
3x32bit values (scalings?)
2D
offset->
1x16bit rows count
1x16bit type?? (encountered so far 0x0000, 0x0400, 0x0800)
1x32bit rows offset
1x32bit data offset
2x32bit or 4x16bit values (starting value??, increase step value??) these are present only if type??<>0000
1D
offset is pointing directly to data

Posted:
Thu May 04, 2006 3:31 am
by xswrex
more usefull info
the expressions to real world numbers for the data are stored in the ROM!!!
i am working with the 06 eu STi rom and here are the findings:
Axis data seem to be 32bit
Ignition Base Map
Offset (hex):7C3B0
Col count:19
Col offs:828012 000CA26C
Row count:18
Row ofs:828088 000CA2B8
Data ofs:828160 000CA300
rest 3 32bit entries
0x04000000
8bit data values?
0.3515625000000000 3EB40000
THIS IS THE MULTIPLIER FOR THE DATA! LOOKS FAMILIAR!
-20.0000000000000000 C1A00000
THIS IS THE ADDITION FOR THE DATA!
and another
Initial Wastegate Duty D
Offset (hex):7A6C0
Col count:8
Col offs:789164 000C0AAC
Row count:10
Row ofs:789196 000C0ACC
Data ofs:789236 000C0AF4
rest 3 32bit entries
0x08000000
16bit data values?
0.0039062500000000 3B800000
0.0000000000000000 00000000
and another
Max Wastegate Duty
Offset (hex):7A6F8
Col count:8
Col offs:789420 000C0BAC
Row count:10
Row ofs:789452 000C0BCC
Data ofs:789492 000C0BF4
0x08000000
16bit data values?
0.0039062500000000 3B800000
0.0000000000000000 00000000


Posted:
Thu May 04, 2006 3:34 am
by xswrex
twg wrote:THANK YOU!!!!
btw: I also noticed, for the USDM FXT, there are addresses in the 155XXX range... this is outside of the 512K address format, so I think the "1" in front of these addresses are typos... thoughts?
be creative, ommit the 1 and use the rest of the address

Posted:
Thu May 04, 2006 4:39 am
by swifty
Which cars have a 32 bit ecu ?

Posted:
Thu May 04, 2006 9:03 am
by Hitokiri
OMG!!!
I am sooo stoked!! thats amazing!

Posted:
Thu May 04, 2006 9:12 am
by cboles
Nice work! I should be able to add good DBW maps to EcuFlash quickly now...
Colby

Posted:
Thu May 04, 2006 4:07 pm
by Hitokiri
XMLWRITE V3!!!!!

Posted:
Thu May 04, 2006 6:49 pm
by WolfPlayer
For those reading this and not quite following the address locations, here is a quick rundown ...
Get a hex editor and go to the address listed in the document for something (lets talk about a 3D table).
The first 2 bytes represent the number of columns in hex (convert to decimal)
The next 2 bytes represent the number of rows in hex (convert to decimal)
The next 4 bytes represent the address for where the column headers start (this is the column offset).
The next 4 bytes represent the address for where the row headers start (this is the row offset).
The next 4 bytes represent the address for where the actual data starts (this is the data offset).

Posted:
Thu May 04, 2006 10:57 pm
by xswrex
struct2D :
rowcnt :2bytes Rows count
databits :2bytes Type of data (0=32bit,4=8bit,8=16 bit)
rowofs :4bytes Rows offset
datofs :4bytes Data offset
if databits <> 0x0000 (32bit data dont have scalings, this is strange....)
mult :4bytes Multiplier for data
add :4bytes Addition to data
struct3D :
colcnt :2bytes Cols count
rowcnt :2bytes Rows count
colofs :4bytes Cols offset
rowofs :4bytes Rows offset
datofs :4bytes Data offset
databits :4bytes Type of data (0=32bit,4=8bit,8=16 bit)
mult :4bytes Multiplier for data
add :4bytes Addition to data
The mult and add must be interpreted as floating point numbers (4byte single)
Expression for data in XML: [data]*mult+(add)
2 things remaining
find the axis scalings (if they are in there)
match map definitions to map names

Posted:
Fri May 05, 2006 1:26 am
by New2Scoobs
Again, which cars have a 32bit denso ECU?


Posted:
Fri May 05, 2006 4:12 am
by xswrex
New2Scoobs wrote:Again, which cars have a 32bit denso ECU?

if it matters so much, if rom size is 512kb or 1024kb then it is 32bit