Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB

Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB (https://www.ft86club.com/forums/index.php)
-   Software Tuning (https://www.ft86club.com/forums/forumdisplay.php?f=88)
-   -   ROM Table Discovery & Definitions (https://www.ft86club.com/forums/showthread.php?t=90566)

Kodename47 06-24-2015 04:51 AM

ROM Table Discovery & Definitions
 
Seeing as there isn't a specific thread for this I thought I'd start one rather than tagging it in the middle of the Tactrix threads.

I decided to try WinOLS with some success, however I was wondering if those with IDA could look through and determine if these tables are of any use and what they do.

It seems that WinOLS is fairly good at determining the actual tables and has a go at formulating the expressions, as well as allowing you to view them in a table or 3D format you would be familiar with.

Below are the 10 largest tables that are not yet defined, on my definition at least, for ZA1JA02G. I haven't looked at the A01G but so far the 2 are the same.

@Td-d
@ztan

I'll post the same over on Romraider to see if they can be of any assistance.

Addresses:
Code:

<table name="Alpha 1" storageaddress="1070B8">
              <table type="X Axis" storageaddress="106FF0" />
              <table type="Y Axis" storageaddress="10703C" />
            </table>
 
<table name="Alpha 2" storageaddress="102518">
              <table type="X Axis" storageaddress="102458" />
              <table type="Y Axis" storageaddress="1024B4" />
            </table>
 
<table name="Alpha 3" storageaddress="100948">
              <table type="X Axis" storageaddress="1008A8" />
              <table type="Y Axis" storageaddress="1008D4" />
            </table>
 
<table name="Alpha 4" storageaddress="100644">
              <table type="X Axis" storageaddress="1005B8" />
              <table type="Y Axis" storageaddress="100600" />
            </table>
 
<table name="Alpha 5" storageaddress="11AC4C">
              <table type="X Axis" storageaddress="11ABC8" />
              <table type="Y Axis" storageaddress="11AC08" />
            </table>
 
<table name="Alpha 6" storageaddress="10B488">
              <table type="X Axis" storageaddress="108E48" />
              <table type="Y Axis" storageaddress="109018" />
            </table>
 
<table name="Alpha 7" storageaddress="10B274">
              <table type="X Axis" storageaddress="108E48" />
              <table type="Y Axis" storageaddress="109018" />
            </table>
 
<table name="Alpha 8" storageaddress="10AFE8">
              <table type="X Axis" storageaddress="108E48" />
              <table type="Y Axis" storageaddress="109018" />
            </table>
 
<table name="Alpha 9" storageaddress="10AD2C">
              <table type="X Axis" storageaddress="108E48" />
              <table type="Y Axis" storageaddress="109018" />
            </table>

<table name="Alpha 10" storageaddress="10AA70">
              <table type="X Axis" storageaddress="108E48" />
              <table type="Y Axis" storageaddress="109018" />
            </table>

Table Data:
Code:

<table type="3D" name="Alpha 1" category="Alpha" storagetype="uint8" endian="big" sizex="19" sizey="31" userlevel="3">
      <scaling units="Unknown" expression="x*0.392157" to_byte="x/0.392157" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Throttle Position" storagetype="float" endian="little" logparam="E52">
        <scaling units="Degrees" expression="x" to_byte="x" format="#" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="X Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 2" category="Alpha" storagetype="uint16" endian="big" sizex="23" sizey="25" userlevel="3">
      <scaling units="Unknown" expression="x*0.009321" to_byte="x/0.009321" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" >
        <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="X Axis" name="Engine Speed" storagetype="float" endian="little" >
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 3" category="Alpha" storagetype="uint16" endian="big" sizex="11" sizey="29" userlevel="3">
      <scaling units="Unknown" expression="x*0.0125" to_byte="x/0.0125" format="0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little" logparam="E52">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 4" category="Alpha" storagetype="uint16" endian="big" sizex="18" sizey="17" userlevel="3">
      <scaling units="Unknown" expression="x*0.012089" to_byte="x/0.012089" format="0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little" logparam="E52">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" logparam="P8">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 5" category="Alpha" storagetype="uint16" endian="big" sizex="16" sizey="17" userlevel="3">
      <scaling units="Unknown" expression="x*0.001907" to_byte="x/0.001907" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" logparam="E52">
        <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="X Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 6" category="Alpha" storagetype="uint16" endian="big" sizex="14" sizey="19" userlevel="3">
      <scaling units="Unknown" expression="x*0.003053" to_byte="x/0.003053" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Load" storagetype="float" endian="little" logparam="E52">
        <scaling units="g/rev" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 7" category="Alpha" storagetype="uint16" endian="big" sizex="14" sizey="19" userlevel="3">
      <scaling units="Unknown" expression="x*0.003053" to_byte="x/0.003053" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Load" storagetype="float" endian="little" logparam="E52">
        <scaling units="g/rev" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 8" category="Alpha" storagetype="uint16" endian="big" sizex="14" sizey="19" userlevel="3">
      <scaling units="Unknown" expression="x*0.12207" to_byte="x/0.12207" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Load" storagetype="float" endian="little" logparam="E52">
        <scaling units="g/rev" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 9" category="Alpha" storagetype="uint16" endian="big" sizex="14" sizey="19" userlevel="3">
      <scaling units="Unknown" expression="x*0.12207" to_byte="x/0.12207" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Load" storagetype="float" endian="little" logparam="E52">
        <scaling units="g/rev" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="3D" name="Alpha 10" category="Alpha" storagetype="uint16" endian="big" sizex="14" sizey="19" userlevel="3">
      <scaling units="Unknown" expression="x*0.12207" to_byte="x/0.12207" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Load" storagetype="float" endian="little" logparam="E52">
        <scaling units="g/rev" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>


ztan 06-24-2015 07:07 AM

I'll have a look in IDA.
Last tried to use WinOLS in 2006...

ztan 06-24-2015 09:35 AM

Unpicking "Alpha 1":

From addresses given:
Code:

ROM:00106FF0 flt_106FF0:    .float 800.0, 1200.0, 1600.0, 2000.0, 2400.0, 2800.0, 3200.0, 3600.0, 4000.0, 4400.0
ROM:00106FF0                                        ; DATA XREF: ROM:000B2EF8o
ROM:00106FF0                .float 4800.0, 5200.0, 5600.0, 6000.0, 6400.0, 6800.0, 7000.0, 7200.0, 7400.0
ROM:0010703C flt_10703C:    .float 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0
ROM:0010703C                                        ; DATA XREF: ROM:000B2EFCo
ROM:0010703C                .float 28.0, 30.0, 32.0, 34.0, 36.0, 38.0, 40.0, 42.0, 44.0, 46.0
ROM:0010703C                .float 48.0, 50.0, 52.0, 54.0, 57.0, 60.0, 65.0, 70.0, 75.0, 80.0
ROM:0010703C                .float 85.0
ROM:001070B8 byte_1070B8:    .datab.b h'13, h'FF    ; DATA XREF: ROM:000B2F00o
ROM:001070B8                .data.b h'B9
ROM:001070B8                .datab.b h'12, h'FF
ROM:001070B8                .data.b h'7F, h'DF
.....592 values

Following the xref from the x-axis (RPM) to B2EF8:

Code:

ROM:000B2EF4 stru_B2EF4:    Table_type <h'13, 0, h'1F> ; DATA XREF: sub_4FFD2+1Co
ROM:000B2EF4                                        ; ROM:off_500C4o
ROM:000B2EF8                .data.l flt_106FF0  ;x-axis
ROM:000B2EFC                .data.l flt_10703C  ; y-axis
ROM:000B2F00                .data.l byte_1070B8  ;data
ROM:000B2F04                .data.w h'400  ;data length (byte)
ROM:000B2F06                .data.w 0
ROM:000B2F08                .float 0.39215687 ;data scalar
ROM:000B2F0C                .float 0.0  ;data offset

Following the xref from the table definition to 4FFD2:

Code:

ROM:0004FFD2 sub_4FFD2:                              ; CODE XREF: sub_4FEBE+Ep
ROM:0004FFD2                movmu.l r14, @-r15      ; Move Multi-register Upper part
ROM:0004FFD4                fmov.s  fr14, @-r15    ; Floating-point move single precision
ROM:0004FFD6                fmov.s  fr15, @-r15    ; Floating-point move single precision
ROM:0004FFD8                stc.l  gbr, @-r15      ; Store Control Register Long
ROM:0004FFDA                movi20  #dword_FFF89B8C, r0 ; 20-bit immediate data transfer
ROM:0004FFDE                ldc    r0, gbr        ; Load to Control Register
ROM:0004FFE0                mov.l  #RAM_RPM, r2    ; Move Immediate Long Data
ROM:0004FFE2                fmov.s  @R2, fr14      ; Floating-point move single precision
ROM:0004FFE4                mov.l  #RAM_Throttle, r2 ; Move Immediate Long Data
ROM:0004FFE6                fmov.s  @R2, fr15      ; Floating-point move single precision
ROM:0004FFE8                mov.l  #sub_53FA0, r2  ; Move Immediate Long Data
ROM:0004FFEA                jsr/n  @R2 ; sub_53FA0 ; Jump to Subroutine with No delay slot
ROM:0004FFEC                extu.b  r0, r14        ; Extend as Unsigned (Byte)
ROM:0004FFEE                mov.l  #stru_B2EF4, r4 ; Move Immediate Long Data
ROM:0004FFF0                movi20  #Pull3D, r2    ; 20-bit immediate data transfer
ROM:0004FFF4                fmov    fr14, fr4      ; Floating-point move
ROM:0004FFF6                jsr    @R2 ; Pull3D    ; Jump to Subroutine
ROM:0004FFF8                fmov    fr15, fr5      ; Floating-point move
ROM:0004FFFA                movi20  #dword_FFF89B8C, r6 ; 20-bit immediate data transfer
ROM:0004FFFE                fmov.s  fr0, @r6        ; Floating-point move single precision

We find the x-axis is RPM, y-axis is Throttle, value pulled from the table is stored in FFF89B8C (I don't know what this is yet).

Kodename47 06-24-2015 01:30 PM

*Thanks, I've updated the code. I figured it would be something like that as the table looks like this:
https://dl.dropboxusercontent.com/u/...lub/Alpha1.jpg

Seems to have higher numbers in the lower torque areas.

As more are found I'll update the 1st post.

Kodename47 06-24-2015 09:25 PM

Some more ;)

Addresses:

Code:

<table name="Alpha 11" storageaddress="103310">
              <table type="X Axis" storageaddress="1032D0" />
              <table type="Y Axis" storageaddress="1032F4" />
            </table>

<table name="Alpha 12" storageaddress="103498">
              <table type="X Axis" storageaddress="103470" />
              <table type="Y Axis" storageaddress="103484" />
            </table>

    <table name="Alpha 13" storageaddress="104634">
      <table type="Y Axis" storageaddress="1045E8" />
    </table>
    <table name="Alpha 14" storageaddress="104B70">
      <table type="Y Axis" storageaddress="104AA8" />
    </table>

    <table name="Alpha 15" storageaddress="104D28">
      <table type="Y Axis" storageaddress="104CC0" />
    </table>

<table name="Alpha 16" storageaddress="1138A4">
              <table type="X Axis" storageaddress="113854" />
              <table type="Y Axis" storageaddress="113880" />
            </table>

<table name="Alpha 17" storageaddress="1139BC">
              <table type="X Axis" storageaddress="11396C" />
              <table type="Y Axis" storageaddress="113998" />
            </table>

<table name="Alpha 18" storageaddress="113E74">
              <table type="X Axis" storageaddress="113E24" />
              <table type="Y Axis" storageaddress="113E54" />
            </table>

<table name="Alpha 19" storageaddress="13D52C">
              <table type="X Axis" storageaddress="13D4B8" />
              <table type="Y Axis" storageaddress="13D4F8" />
            </table>

<table name="Alpha 20" storageaddress="11BCBC">
              <table type="X Axis" storageaddress="11BC3C" />
              <table type="Y Axis" storageaddress="11BC78" />
            </table>

Data:
Code:

<table type="3D" name="Alpha 11" category="Alpha" storagetype="uint16" endian="big" sizex="9" sizey="7" userlevel="3">
      <scaling units="Unknown" expression="x*0.002929" to_byte="x/0.002929" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little" logparam="E52">
        <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" logparam="P8">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="3D" name="Alpha 12" category="Alpha" storagetype="uint16" endian="big" sizex="5" sizey="5" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little">
        <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" logparam="P8">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="2D" name="Alpha 13" category="Alpha" storagetype="uint16" endian="big" sizey="19" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="2D" name="Alpha 14" category="Alpha" storagetype="float" endian="big" sizey="50" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" logparam="P8">
        <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="2D" name="Alpha 15" category="Alpha" storagetype="float" endian="big" sizey="26" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" logparam="P8">
        <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="3D" name="Alpha 16" category="Alpha" storagetype="uint16" endian="big" sizex="11" sizey="9" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" >
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="3D" name="Alpha 17" category="Alpha" storagetype="uint16" endian="big" sizex="11" sizey="9" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" >
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="3D" name="Alpha 18" category="Alpha" storagetype="uint16" endian="big" sizex="12" sizey="8" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Load" storagetype="float" endian="little">
        <scaling units="g/rev" expression="x" to_byte="x" format="0.00" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" >
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="3D" name="Alpha 19" category="Alpha" storagetype="float" endian="big" sizex="16" sizey="13" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little">
        <scaling units="Unknown" expression="x" to_byte="x" format="0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" >
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>

<table type="3D" name="Alpha 20" category="Alpha" storagetype="uint16" endian="big" sizex="15" sizey="7" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.0" fineincrement=".01" coarseincrement=".1" />
      <table type="X Axis" name="Unknown" storagetype="float" endian="little">
        <scaling units="Degrees?" expression="x" to_byte="x" format="0" fineincrement=".001" coarseincrement="0.01" />
      </table>
      <table type="Y Axis" name="Unknown" storagetype="float" endian="little" >
        <scaling units="Degrees?" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>


Kodename47 06-27-2015 05:46 AM

Rather than just picking random tables I have been overlooking the entire ROM, I found these 4 2D tables all in the same portion of the hex dump. They seem to correspond to RPM so I wonder if these are cylinder comp tables of some sort. When viewed as a chart they vary quite a bit.

Code:

    <table name="Alpha 21" storageaddress="11E61C">
      <table type="Y Axis" storageaddress="11E5E0" />
    </table>
    <table name="Alpha 22" storageaddress="11E694">
      <table type="Y Axis" storageaddress="11E658" />
    </table>
    <table name="Alpha 23" storageaddress="11E70C">
      <table type="Y Axis" storageaddress="11E6D0" />
    </table>
    <table name="Alpha 24" storageaddress="11E784">
      <table type="Y Axis" storageaddress="11E748" />
    </table>

Code:

<table type="2D" name="Alpha 21" category="Alpha" storagetype="float" endian="big" sizey="15" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="2D" name="Alpha 22" category="Alpha" storagetype="float" endian="big" sizey="15" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="2D" name="Alpha 23" category="Alpha" storagetype="float" endian="big" sizey="15" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>
<table type="2D" name="Alpha 24" category="Alpha" storagetype="float" endian="big" sizey="15" userlevel="3">
      <scaling units="Unknown" expression="x" to_byte="x" format="0.00" fineincrement=".01" coarseincrement=".1" />
      <table type="Y Axis" name="Engine Speed" storagetype="float" endian="little" logparam="P8">
        <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="50" coarseincrement="100" />
      </table>
          </table>


aagun 06-29-2015 11:45 PM

i dont know what it is but i wanna learn all about it

aagun 07-02-2015 10:06 PM

i need help here

i tried find FFF106FF0

it is same but not analyze

Code:

OM:00106FF0 dword_106FF0:  .data.l h'44480000, h'44960000, h'44C80000, h'44FA0000
ROM:00106FF0                                        ; DATA XREF: ROM:000B2EF8o
ROM:00106FF0                .data.l h'45160000, h'452F0000, h'45480000, h'45610000
ROM:00106FF0                .data.l h'457A0000, h'45898000, h'45960000, h'45A28000
ROM:00106FF0                .data.l h'45AF0000, h'45BB8000, h'45C80000, h'45D48000
ROM:00106FF0                .data.l h'45DAC000, h'45E10000, h'45E74000

Quote:

Originally Posted by ztan (Post 2297848)
Unpicking "Alpha 1":

From addresses given:
Code:

ROM:00106FF0 flt_106FF0:    .float 800.0, 1200.0, 1600.0, 2000.0, 2400.0, 2800.0, 3200.0, 3600.0, 4000.0, 4400.0
ROM:00106FF0                                        ; DATA XREF: ROM:000B2EF8o
ROM:00106FF0                .float 4800.0, 5200.0, 5600.0, 6000.0, 6400.0, 6800.0, 7000.0, 7200.0, 7400.0
ROM:0010703C flt_10703C:    .float 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0
ROM:0010703C                                        ; DATA XREF: ROM:000B2EFCo
ROM:0010703C                .float 28.0, 30.0, 32.0, 34.0, 36.0, 38.0, 40.0, 42.0, 44.0, 46.0
ROM:0010703C                .float 48.0, 50.0, 52.0, 54.0, 57.0, 60.0, 65.0, 70.0, 75.0, 80.0
ROM:0010703C                .float 85.0
ROM:001070B8 byte_1070B8:    .datab.b h'13, h'FF    ; DATA XREF: ROM:000B2F00o
ROM:001070B8                .data.b h'B9
ROM:001070B8                .datab.b h'12, h'FF
ROM:001070B8                .data.b h'7F, h'DF
.....592 values

Following the xref from the x-axis (RPM) to B2EF8:



ztan 07-03-2015 07:09 PM

Quote:

Originally Posted by aagun (Post 2308066)
i need help here

i tried find FFF106FF0

it is same but not analyze

Go to >Options>Setup data types (Alt-D)
An option box will come up with data type rotations that you want included in the data carousel - check "float". Pressing "d" in IDA will change the data type.

To change the line of numbers into an array, press "*" and enter the length of the array.

burdickjp 07-06-2015 11:50 PM

So this data is available on the CANBUS:
http://www.ft86club.com/forums/showthread.php?t=91170

I want it on my Tactrix. How do we go about getting it?

steve99 07-07-2015 01:20 AM

Quote:

Originally Posted by bur****jp (Post 2311973)
So this data is available on the CANBUS:
http://www.ft86club.com/forums/showthread.php?t=91170

I want it on my Tactrix. How do we go about getting it?

you would need to either sniff the can buss to get the data or get someone to trawl the ecu code to see if its stored in ecu ram addresses.

I suspect what the oft guys did was aquired a device that performes those read functions then sniffed the can buss data requests and coppied requests into oft.

burdickjp 07-07-2015 01:40 AM

Quote:

Originally Posted by steve99 (Post 2312071)
I suspect what the oft guys did was aquired a device that performes those read functions then sniffed the can buss data requests and coppied requests into oft.

We could do similarly by copying the OFT requests. I don't like that, though. I don't think that's a very ethical way of accomplishing it.

ztan 07-09-2015 08:48 AM

Quote:

Originally Posted by bur****jp (Post 2312088)
We could do similarly by copying the OFT requests. I don't like that, though. I don't think that's a very ethical way of accomplishing it.

Vishnu, EcuTek have all got their parameters by either disassembling the ROM or sniffing the CAN bus. Ethical would be buying the info from Toyota or Subaru, but they aren't selling.

I had a look at this briefly a couple of years ago, sniffing Techstream requests on CAN:

http://www.romraider.com/forum/viewt...8475&start=296

burdickjp 07-09-2015 10:19 AM

Quote:

Originally Posted by ztan (Post 2315033)
Vishnu, EcuTek have all got their parameters by either disassembling the ROM or sniffing the CAN bus. Ethical would be buying the info from Toyota or Subaru, but they aren't selling.

I had a look at this briefly a couple of years ago, sniffing Techstream requests on CAN:

http://www.romraider.com/forum/viewt...8475&start=296

That thread actually had this a few posts from where you linked in:
Quote:

Originally Posted by ztan
Lots of potential being seen:

ECU 0x07E8

CAN-ID 0x01
01 Calculated load
04 05 MAF
0B 0C Engine speed
0D Vehicle speed
32 Oil Temp

CAN-ID 0x03
07 Ignition advance

CAN-ID 0x37
09 0A FLKC
0B 0C FBKC

CAN-ID 0x41
06 07 Accel position

VSC module 0x07B8

CAN-ID 0x05
0B 0C Real engine torque

CAN-ID 0x47
01 Lateral G
02 Front/Rear G
03 Yaw rate
04 05 Steering wheel angle

Is it possible to get standalone engine + VSC logging with the OP2.0?


ztan 07-09-2015 06:54 PM

Quote:

Originally Posted by bur****jp (Post 2315096)
That thread actually had this a few posts from where you linked in:

Ja. The initial post was the raw data that I was seeing intially over CAN, the second post was what I had cleaned up after having a bit of time to fiddle with the CAN bus over the weekend, setting Techstream to log one parameter at a time whilst sniffing the bus.

I couldn't find a Techstream parameter for IAM anywhere, so I figured that it was likely not easily available on the CAN bus.

burdickjp 07-09-2015 09:33 PM

Quote:

Originally Posted by ztan (Post 2315776)
Ja. The initial post was the raw data that I was seeing intially over CAN, the second post was what I had cleaned up after having a bit of time to fiddle with the CAN bus over the weekend, setting Techstream to log one parameter at a time whilst sniffing the bus.

I couldn't find a Techstream parameter for IAM anywhere, so I figured that it was likely not easily available on the CAN bus.

Did you ever get the VSC logging with the openport 2.0? I'm having trouble deciphering how to get those addresses into a logcfg.txt

ztan 07-10-2015 12:07 AM

Quote:

Originally Posted by bur****jp (Post 2315967)
Did you ever get the VSC logging with the openport 2.0? I'm having trouble deciphering how to get those addresses into a logcfg.txt

No. I asked Mike and Colby a couple of years ago and again more recently.
The OP2 is configured to send its requests to 07E0 (ECU), not 07B0 (VSC). I think to get control of that, we'd need to get a firmware rewrite from Colby.

I think we would have much better CANbus access to all modules at the moment using an Arduino and CANbus shield; I haven't the time to crack it at the moment.

This CANbus talk is getting a bit off topic, but if anyone can point to where the ECU interfaces with the VSC unit; and if the VSC data is put in RAM on the ECU, we can pull the data straight off the ECU with the OP2.

burdickjp 07-10-2015 12:22 AM

Quote:

Originally Posted by ztan (Post 2316146)
This CANbus talk is getting a bit off topic, but if anyone can point to where the ECU interfaces with the VSC unit; and if the VSC data is put in RAM on the ECU, we can pull the data straight off the ECU with the OP2.

I apologize for dragging the conversation in the wrong direction. I agree on the arduino, and am in the process of doing that.
I'm eager to hear if this is in RAM in the ECU anywhere.

Sent from my XT1045 using Tapatalk

ztan 07-10-2015 12:40 AM

<Off topic> Examples of CAN requests to ECU using Drew Tech Canbus tools:

Engine on idle, requesting MAF data

OBD Mode 01:
Send:
00 00 07 e0 01 10 (mode 01, PID 10)
Response:
00 00 07 e8 41 10 03 b8 (repsonse 41 (01+40), PID 10, Data 03 B8 (7.68 g/s)

OBD Mode 23:
Send:
00 00 07 e0 23 14 ff f8 7c 70 04 (mode 23, 14:?number of parameters + data length, RAM address FFF87C70, 04:?bytes expected)
Response:
00 00 07 e8 63 41 15 e6 66 (response 63 (23+40), data 4115e666 (IEEE 754 float = 9.37 g/s)

ztan 08-03-2015 08:45 AM

1 Attachment(s)
Anyone have any idea what this (FFF884F4 for A01G) may be? I was looking at how data calls are made to get 16 bit sensor data and this one came up: a voltage value gets read from the 16 bit routine and then scaled by a table (defined at 0B1FA8) which reads like a temperature scale; 100 to -40 in 10 degree increments.

Does not match with any other temperature sensors that I log.

Kodename47 08-03-2015 01:51 PM

Not much help with yours @ztan but more of a question for those who are good at discovery.

Been trying to work out why the throttle closes under WOT and am doing some digging around. I don't suppose anyone fancies digging into the throttle angle routines. It's definitely nothing to do with requested angle, however there must be something that causes this. It seems fairly uniform between FI and NA cars too. I've tried testing Requested torque and calculated tq tables but nothing there has yet made any difference.

ztan 01-28-2016 04:30 PM

Rev limit code
 
1 Attachment(s)
Shiv asked me to look at an RPM limit problem under boost and there is something interesting in the code worth noting:

Rev Limit A and B have their cut and resume values in different directions (see disassembly pic). No reason for the engineers to do this and Rev Limit B works without hysteresis in the stock ROM which is has 7400 as the first (resume) value and 7200 as the second (cut).

A01G def:
Code:

    <table name="Rev Limit A" storageaddress="10C524" />
    <table name="Rev Limit B" storageaddress="10C52C" />

    <table type="2D" name="Rev Limit A" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="2" userlevel="1">
      <scaling units="Engine Speed (RPM)" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
      <table type="Static Y Axis" name="Rev Limit Fuel Cut" sizey="2">
        <data>On Above</data>
        <data>Off Below</data>
      </table>
      <description>These are the engine speeds at which the rev limiter is engaged and disengaged. When engine speed is equal to or exceeds the 'On' value, fuel cut is active, after which, if engine speed drops below the 'Off' value, fueling is resumed.</description>
    </table>
    <table type="2D" name="Rev Limit B" category="Miscellaneous - Limits" storagetype="float" endian="little" sizey="2" userlevel="1">
      <scaling units="Engine Speed (RPM)" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
      <table type="Static Y Axis" name="Rev Limit Fuel Cut" sizey="2">
        <data>Off Below</data>
        <data>On Above</data>
      </table>
      <description>These are the engine speeds at which the rev limiter is engaged and disengaged. When engine speed is equal to or exceeds the 'On' value, fuel cut is active, after which, if engine speed drops below the 'Off' value, fueling is resumed.</description>
    </table>



All times are GMT -4. The time now is 07:32 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
User Alert System provided by Advanced User Tagging v3.3.0 (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.


Garage vBulletin Plugins by Drive Thru Online, Inc.