|
|
#351 | |
|
Senior Member
Join Date: Jul 2013
Drives: Toyota 86
Location: Gold Coast, Australia
Posts: 311
Thanks: 44
Thanked 361 Times in 145 Posts
Mentioned: 60 Post(s)
Tagged: 0 Thread(s)
|
Quote:
Looks like both addresses are the same in A01C and A01G ROMS. FFF848FE returns 16 bit data, but I can't get math to match MAF data. FFF8490E returns 0 Short log attached - start, couple of blips and shut down. Last edited by ztan; 12-29-2013 at 04:55 AM. |
|
|
|
|
|
|
#352 |
|
Generally Well Liked
Join Date: Aug 2013
Drives: '08 STi Hatch, '11 Outback 3.6R
Location: Ontario
Posts: 419
Thanks: 43
Thanked 197 Times in 125 Posts
Mentioned: 9 Post(s)
Tagged: 0 Thread(s)
|
Thanks for that.
I've been able to add the following from your list and tested successfully: Code:
paramname = accel_pedal_angle paramid = 0xFFF8922C isfloat = 1 paramname = IAM paramid = 0xFFF816F4 isfloat = 1 paramname = throttleplate_angle paramid = 0xFFF89030 isfloat = 1 paramname = requested_torque paramid = 0xFFF8B490 isfloat = 1 paramname = knock_advance paramid = 0xFFF8B0AC isfloat = 1 paramname = fine_knock_correct paramid = 0xFFF8B14C isfloat = 1 paramname = feedback_knock_correction paramid = 0xFFF8B0B0 isfloat = 1 paramname = engine_load_4byte paramid = 0xFFF89148 isfloat = 1 |
|
|
|
|
|
#353 | |
|
Garden variety obsessive
Join Date: Oct 2013
Drives: 2009 Sti Hatch; 2015 Audi RSQ3
Location: South Africa
Posts: 532
Thanks: 54
Thanked 448 Times in 245 Posts
Mentioned: 74 Post(s)
Tagged: 2 Thread(s)
|
Quote:
|
|
|
|
|
|
|
#354 |
|
Garden variety obsessive
Join Date: Oct 2013
Drives: 2009 Sti Hatch; 2015 Audi RSQ3
Location: South Africa
Posts: 532
Thanks: 54
Thanked 448 Times in 245 Posts
Mentioned: 74 Post(s)
Tagged: 2 Thread(s)
|
Hmm.. Ztan, can you have a look at the following code - normally, the SSMGet routines fetch a float direct parameter, run it through a makeuint 8 or makeuint16 subroutine, and pop out the SSM parameter - this is the way MAF voltage is pulled in the SH7058 roms.
This one pulls another subroutine, which I have not had the patience to pull apart in understanding Maybe you can have a look?here is the SSMGet routine: Code:
ROM:000842BC SsmGet_Mass_Airflow_Sensor_Voltage_P18: ; DATA XREF: ROM:00097234o ROM:000842BC movmu.l r14, @-r15 ; Move Multi-register Upper part ROM:000842BE mov r4, r14 ; Move Data ROM:000842C0 mov.l #sub_12FCC, r2 ; Move Immediate Long Data ROM:000842C2 jsr @R2 ; sub_12FCC ; Jump to Subroutine ROM:000842C4 mov #h'2C, r4 ; ',' ; Move Immediate Byte Data ROM:000842C6 extu.w r0, r6 ; Extend as Unsigned (Word) ROM:000842C8 lds r6, fpul ; Load to System Register ROM:000842CA float fpul, fr4 ; Floating-point convert from integer ROM:000842CC mova flt_84464, r0 ; Move Effective Address ROM:000842CE fmov.s @r0, fr8 ; Floating-point move single precision ROM:000842D0 fmul fr8, fr4 ; Floating-point multiply ROM:000842D2 mov.l #ConvertTo_uint8, r2 ; Move Immediate Long Data ROM:000842D4 fldi0 fr6 ; Floating-point load immediate 0.0 ROM:000842D6 mova flt_84468, r0 ; Move Effective Address ROM:000842D8 jsr @R2 ; ConvertTo_uint8 ; Jump to Subroutine ROM:000842DA fmov.s @r0, fr5 ; Floating-point move single precision ROM:000842DC mov.b r0, @r14 ; Move Byte Data ROM:000842DE movmu.l @r15+, r14 ; Move Multi-register Upper part ROM:000842E0 rts/n ; Return from Subroutine with No delay slot Code:
ROM:00012FCC sub_12FCC: ; CODE XREF: sub_2A822+18p ROM:00012FCC ; sub_2AD74+Cp ... ROM:00012FCC ROM:00012FCC var_8 = -8 ROM:00012FCC var_7 = -7 ROM:00012FCC ROM:00012FCC sts.l pr, @-r15 ; Store System Register Long ROM:00012FCE add #-4, r15 ; Add binary ROM:00012FD0 mov.w r4, @r15 ; Move Word Data ROM:00012FD2 movu.b @(0,r15), r0 ; Move Structure Byte Data as Unsigned ROM:00012FD6 tst r0, r0 ; Test Logical ROM:00012FD8 bt loc_12FE6 ; Branch if True ROM:00012FDA cmp/eq #1, r0 ; Compare: Equal ROM:00012FDC bt loc_12FF2 ; Branch if True ROM:00012FDE cmp/eq #2, r0 ; Compare: Equal ROM:00012FE0 bt loc_12FFE ; Branch if True ROM:00012FE2 bra loc_1300A ; Branch ROM:00012FE4 nop ; No Operation ROM:00012FE6 ; --------------------------------------------------------------------------- ROM:00012FE6 ROM:00012FE6 loc_12FE6: ; CODE XREF: sub_12FCC+Cj ROM:00012FE6 mov.b @(1,r15), r0 ; Move Structure Byte Data ROM:00012FE8 mov.l #sub_129C4, r1 ; Move Immediate Long Data ROM:00012FEA jsr @r1 ; sub_129C4 ; Jump to Subroutine ROM:00012FEC mov r0, r4 ; Move Data ROM:00012FEE bra loc_1300C ; Branch ROM:00012FF0 mov r0, r2 ; Move Data ROM:00012FF2 ; --------------------------------------------------------------------------- ROM:00012FF2 ROM:00012FF2 loc_12FF2: ; CODE XREF: sub_12FCC+10j ROM:00012FF2 movu.b @(1,r15), r0 ; Move Structure Byte Data as Unsigned ROM:00012FF6 mov.l #unk_FFF848FE, r5 ; Move Immediate Long Data ROM:00012FF8 shll r0 ; Shift Logical Left ROM:00012FFA bra loc_1300C ; Branch ROM:00012FFC mov.w @(r0,r5), r2 ; Move Word Data ROM:00012FFE ; --------------------------------------------------------------------------- ROM:00012FFE ROM:00012FFE loc_12FFE: ; CODE XREF: sub_12FCC+14j ROM:00012FFE movu.b @(1,r15), r0 ; Move Structure Byte Data as Unsigned ROM:00013002 mov.l #unk_FFF8490E, r6 ; Move Immediate Long Data ROM:00013004 shll r0 ; Shift Logical Left ROM:00013006 bra loc_1300C ; Branch ROM:00013008 mov.w @(r0,r6), r2 ; Move Word Data ROM:0001300A ; --------------------------------------------------------------------------- ROM:0001300A ROM:0001300A loc_1300A: ; CODE XREF: sub_12FCC+16j ROM:0001300A mov #0, r2 ; Move Immediate Byte Data ROM:0001300C ROM:0001300C loc_1300C: ; CODE XREF: sub_12FCC+22j ROM:0001300C ; sub_12FCC+2Ej ... ROM:0001300C add #4, r15 ; Add binary ROM:0001300E lds.l @r15+, pr ; Load to System Register Long ROM:00013010 rtv/n r2 |
|
|
|
|
|
#355 | |
|
Senior Member
Join Date: Jul 2013
Drives: Toyota 86
Location: Gold Coast, Australia
Posts: 311
Thanks: 44
Thanked 361 Times in 145 Posts
Mentioned: 60 Post(s)
Tagged: 0 Thread(s)
|
Quote:
12FCC looks like a routine where eventually r0 gets tested and if: 0 - goes to 129C4 and loads FFF842A0 into r5 1 - goes to 12FF2 and loads FFF848FE into r5 2 - goes to 12FFE and loads FFF8490E into r6 result from subroutine gets returned in r2 I'll need a lot more time to learn how these things work... Is there any way to trace RAM addresses from their map locations? Code:
010E00: 000D0560 pointer to MAF scaling table info 0D0560: 00360000 ?2D table with 0x36 (54) values 0D0564: 0011FCD4 pointer to 54 MAF_Volt float values 0D0568: 0011FDAC pointer to 54 MAF_G/S float values |
|
|
|
|
|
|
#356 |
|
Garden variety obsessive
Join Date: Oct 2013
Drives: 2009 Sti Hatch; 2015 Audi RSQ3
Location: South Africa
Posts: 532
Thanks: 54
Thanked 448 Times in 245 Posts
Mentioned: 74 Post(s)
Tagged: 2 Thread(s)
|
MAF Sensor scaling in A00C is referenced at 10E00 - there is a large array / table that is erroneously converted to code by IDA - should be Long Word.
|
|
|
|
|
|
#357 |
|
Garden variety obsessive
Join Date: Oct 2013
Drives: 2009 Sti Hatch; 2015 Audi RSQ3
Location: South Africa
Posts: 532
Thanks: 54
Thanked 448 Times in 245 Posts
Mentioned: 74 Post(s)
Tagged: 2 Thread(s)
|
I'm beginning to wonder whether that's the SSMGet routines location... There's another location in the vicinity of this table: 362BC
|
|
|
|
|
|
#358 |
|
Senior Member
Join Date: Jul 2013
Drives: Toyota 86
Location: Gold Coast, Australia
Posts: 311
Thanks: 44
Thanked 361 Times in 145 Posts
Mentioned: 60 Post(s)
Tagged: 0 Thread(s)
|
Had another look at logging data at FFF848FE.
Looks like smoothed Engine Coolant Temp or possibly oil temp data - plotting ECT from FFF8D24C against -FFF848FE (axes scaled differently): Last edited by ztan; 12-30-2013 at 03:26 AM. |
|
|
|
|
|
#359 |
|
Senior Member
Join Date: Jul 2013
Drives: Toyota 86
Location: Gold Coast, Australia
Posts: 311
Thanks: 44
Thanked 361 Times in 145 Posts
Mentioned: 60 Post(s)
Tagged: 0 Thread(s)
|
I've finally found MAF voltage call. Many thanks to td-d, NSFW, and dschultz for their disassembly posts on the RomRaider forum.
Address is the same on A00C and A01G ROMs, is a 16 bit parameter called indirectly, gets scaled, and then indirectly references the MAF scaling table: paramname = MAF_V paramid = 0xFFF842AC databits = 16 scalingrpn = x,0.000076293945,* It is very indirectly referenced and took a lot of puzzling to find. For those interested in finding out how this ECU works, derivation of this RAM address and indirect referencing headaches posted in the Romraider forums: http://www.romraider.com/forum/viewt...p=96956#p96956 Last edited by ztan; 01-13-2014 at 02:43 AM. |
|
|
|
|
|
#360 | |
|
Senior Member
Join Date: Apr 2013
Drives: frs
Location: nj
Posts: 723
Thanks: 237
Thanked 348 Times in 232 Posts
Mentioned: 58 Post(s)
Tagged: 0 Thread(s)
|
Quote:
Code:
type = obd protocolid = 6 ; ISO15765 mode23txaddrwidth = 4 ; mode23 req format info mode23txlenwidth = 1 ; mode23 req format info mode23rxaddrwidth = 0 ; mode23 req format info mode23uds = 1 ; lets OBD channels know you are using mode23 UDS sortpids = 1 ; sort these PIDs by value to potentially make for fewer requests (=faster) calcsampinterval = 1000 ; timing parameter - leave as is - will make default for release version ; here are some known RAM addresses for ROM ZA1JA00C ; addresses are likely different for other ROMs ; you can comment out ones you don't need, but keep in mind that with ; the block read nature of UDS, reading extra parameters that have ; adjacent addresses comes at very little bandwidth (=sample rate) cost paramname = LOAD paramid = 0xFFF8DB6C isfloat = 1 paramname = COOL_TEMP paramid = 0xFFF8DB70 isfloat = 1 paramname = STFT paramid = 0xFFF8DB74 isfloat = 1 paramname = LTFT paramid = 0xFFF8DB78 isfloat = 1 paramname = MAP paramid = 0xFFF8DB7C isfloat = 1 paramname = RPM paramid = 0xFFF8DB80 isfloat = 1 paramname = SPEED paramid = 0xFFF8DB84 isfloat = 1 paramname = ADVANCE paramid = 0xFFF8DB88 isfloat = 1 paramname = IAT paramid = 0xFFF8DB8C isfloat = 1 paramname = MAF paramid = 0xFFF8DB90 isfloat = 1 paramname = TPS paramid = 0xFFF8DB94 isfloat = 1 paramname = FUEL_PRESS paramid = 0xFFF8DBA0 isfloat = 1 paramname = LAMBDA paramid = 0xFFF8DBA4 isfloat = 1 paramname = O2_VOLT paramid = 0xFFF8DBA8 isfloat = 1 paramname = EVAP paramid = 0xFFF8DBAC isfloat = 1 paramname = FUEL_LEVEL paramid = 0xFFF8DBB0 isfloat = 1 paramname = AMB_PRESS paramid = 0xFFF8DBB4 isfloat = 1 paramname = O2_CURR paramid = 0xFFF8DBB8 isfloat = 1 paramname = CAT_TEMP paramid = 0xFFF8DBBC isfloat = 1 paramname = ECU_VOLT paramid = 0xFFF8DBC0 isfloat = 1 paramname = ABS_LOAD paramid = 0xFFF8DBC4 isfloat = 1 |
|
|
|
|
|
|
#361 | |
|
Garden variety obsessive
Join Date: Oct 2013
Drives: 2009 Sti Hatch; 2015 Audi RSQ3
Location: South Africa
Posts: 532
Thanks: 54
Thanked 448 Times in 245 Posts
Mentioned: 74 Post(s)
Tagged: 2 Thread(s)
|
Quote:
Keep in mind that I did mention that these are early Alpha parameters - there may well be some that I posted that may not be correct. Only way to check, in the absence of me having a BRZ is for you guys to log and verify ![]() Ztan did some nice work in trawling through the painful routine that indirectly calls various sensor raw data (it's not just MAF voltage, but others such as intake temp voltage, coolant temp voltage, manifold pressure, oil temps etc. Should help pick up some more params. |
|
|
|
|
| The Following User Says Thank You to Td-d For This Useful Post: | vgi (01-13-2014) |
|
|
#362 | |
|
Senior Member
Join Date: Jul 2013
Drives: Toyota 86
Location: Gold Coast, Australia
Posts: 311
Thanks: 44
Thanked 361 Times in 145 Posts
Mentioned: 60 Post(s)
Tagged: 0 Thread(s)
|
Quote:
I think Colby's params come from the OBD call routines, and the data comes out ordered similarly to an OBD mode 01 list. When I was chasing the MAF_V parameter, I found somewhere between 6-8 MAF (g/s) parameters, some of which were used for IAT and ECT compensation, some of which just sat as duplicates. There were also a few 8 and 16 bit MAF values that had been reconverted from float values sitting around memory. |
|
|
|
|
|
|
#363 | |
|
Garden variety obsessive
Join Date: Oct 2013
Drives: 2009 Sti Hatch; 2015 Audi RSQ3
Location: South Africa
Posts: 532
Thanks: 54
Thanked 448 Times in 245 Posts
Mentioned: 74 Post(s)
Tagged: 2 Thread(s)
|
Quote:
![]() All the SH7055 and SH7058 roms had a so-called engineering parameters routine that converted certain key parameters into 2 byte or 1 byte parameters (this allowed for more parameters to be logged in days gone by, when bandwidth was more constrained with respect to logging, i.e. before fast poll or the mode 23 patch) |
|
|
|
|
|
|
#364 | ||
|
Senior Member
Join Date: Jul 2013
Drives: Toyota 86
Location: Gold Coast, Australia
Posts: 311
Thanks: 44
Thanked 361 Times in 145 Posts
Mentioned: 60 Post(s)
Tagged: 0 Thread(s)
|
Quote:
Quote:
Can either of you provide a quick how-to on getting port/DI fueling right? Is it worth re-scaling MAF first, or trying to balance fueling first with the stock MAF scale? |
||
|
|
|
|
|
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Close | iJason | Member's Car Journals | 1 | 08-04-2013 09:26 PM |
| Close | pche | Engine, Exhaust, Bolt-Ons | 3 | 08-04-2013 03:04 AM |
| Sorry. please close. | finch1750 | Scion FR-S / Toyota 86 GT86 General Forum | 1 | 07-31-2013 02:00 AM |
| please close | abutterman | Wheels and Tires | 0 | 07-05-2013 10:40 AM |