Thread: Gearshift Maps
View Single Post
  #8  
Old 10-20-2008, 08:30 AM
b3lha's Avatar
b3lha b3lha is offline
Phil & Belha
 
Join Date: Aug 2001
Location: Alcyone Limited, Buckinghamshire UK
Posts: 2,671
Re: Gearshift Maps

Quote:
Originally Posted by SuberNatural View Post
I would be interested in experimenting with this. Let me know what i need
OK. Here's a quick howto:

1. First you need to grab a spare TCU and modify it as per the instructions on my website. Unsolder the ROM chip and solder in a socket. If you aren't good at soldering, go find a TV repair shop. You are also going to need an eprom programmer and a blank eprom. A select monitor interface and some datalogging software would be useful for debugging your modified maps.

2. Then you need to download Nomake Wan's TCU file from my website. 1992 USDM model, RomID 705404. Or you can extract your own using my tcudump program.

3. Find the map you want to change:
Open the file in a hex editor and scroll down to address 0x0000CFAD. For those who don't know, writing 0x in front of a number indicates that it is a hexadecimal number. At address 0xCFAD is a list of 16 bit pointers to the maps. ie. It holds the start address of each map. The first map is at location 0xD16D, the second at 0xD17C, the third at 0xD17F etc.

Code:
0000CFA0   xx xx xx xx xx xx xx xx xx xx xx xx xx D1 6D D1
0000CFB0   7C D1 7F D1 8E D1 9A D1 A9 D1 B8 D1 BB D1 CA D1
0000CFC0   D9 D1 DC D1 EB D1 F7 D1 FD D2 0C D2 0F D2 15 D2
0000CFD0   24 D2 27 D2 2D D2 39 D2 3F D2 45 D2 48 D2 4E D2
0000CFE0   54 D2 57 D2 5D D2 63 D2 69 D2 6F D2 72 D2 78 D2
0000CFF0   87 D2 8A D2 99 D2 A5 D2 B4 D2 C3 D2 C6 D2 D5 D2
0000D000   E4 D2 E7 D2 F6 D3 02 D3 08 D3 17 D3 1A D3 20 D3
Decide which map you want to modify and work out its position in the list:
Map Number=(Mode*32)+(Stick*8)+(Gear*2)+Direction
where:
Mode: Normal=0, Power=1, Manual=2, Cruise=3, LowPres1=4, LowPres2=5, Overheat=6.
Stick: PosD=0, Pos3=1, Pos2=2, Pos1=3
Gear: 1st=0, 2nd=1, 3rd=2, 4th=3
Direction: Upshift=0, Downshift=1

This should give you a Map number between 0 and 223 (decimal). The Pointer address is 0xCFAD + (Map Number * 2).
For example: The map for Power-Stick3-Gear2-Upshift: Map Number=(1*32)+(1*8)+(1*2)+0=42. Pointer Address=0xCFAD+(42*2) = 0xD001

Look in the list at address 0xD001 and you will see the address of the map is 0xD2E7. Now scroll down to 0xD2E7 and look at the map itself:

Code:
0000D2E0   xx xx xx xx xx xx xx 28 00 80 51 0C AC 7E 18 F0
0000D2F0   8B 00 F0 FF 00 FF xx xx xx xx xx xx xx xx xx xx
4. Here is how you decode the map:

Arrange the data into columns of three bytes like so, label them K, M and T
Code:
K  M  T
28 00 80
51 0C AC
7E 18 F0
8B 00 F0
FF 00 FF
Convert them all to decimal and then subtract 128 from each number in column T.
Code:
K   M  T
40  00 00
81  12 44
126 24 112
139 00 112
255 00 127
K is a speed in km/h. The TCU will use the first row for speeds up to 40km/h, the second row for speeds up to 81km/h, the third for speeds up to 126km/h and so on.

T is a TPS signal between 0 and 127. Zero represents no thottle, 127 represents full throttle. In the previous posts I have converted this figure to a percentage.

The tricky bit, M is the gradient, in 16th's of the line running back from point (K,T) on the graph.

Expressed algebraically, the formula for the graph is: y=T-((M/16)*(K-x)).
where
x is the speed in km/h that you want to know the tps value for.
K,M and T are taken from the appropriate line of the table that corresponds to the speed x.
y is the tps value from 0 to 127.

As an example:
Suppose we want to know the tps value of the change point at 100km/h.
We use the third line of the table: x=100, K=126, M=24, T=112.
y=112-((24/16)*(126-100))=73
Converted to a percentage (73*100)/127)=57% thottle.

5. To modify the map, work out where you want the shift points to be, then work backwards through step 4 to find what the new values should be and update them in your hex editor.

6. Now use my checksum program to update the checksum in the modified TCU file. I'm pretty sure the TCU never checks this, but better safe than sorry.

7. Write the modified TCU file to an eprom chip and insert it into the socket on the TCU.
__________________
Subaru ECU and TCU Website
1992 Alcyone SVX Version L
1992 Alcyone SVX Version L
1994 Alcyone SVX S40-II
2004 Subaru Legacy 2.5 SE Sports Tourer
1996 Subaru Legacy 2.2 GX Wagon
1988 Subaru Justy J12 SL-II

Last edited by b3lha; 10-20-2008 at 09:04 AM.
Reply With Quote