PDA

View Full Version : Early Evo map tracing


AndyF
02-04-2009, 08:37 AM
Following on from my post in the disassembly section about the logger tables and how they work, I now believe it will be possible to datalog the load and rpm column index values that are used by the ECU.

This will then give us a datalogged output showing exactly what cells in the map the ECU is looking at and therefore we will no longer be left in the dark about what those load columns translate to in terms of boost levels etc.

I should be testing it out over the weekend but I can't see any obvious reason why it shouldn't work.

Will keep you all updated.

Andy

AndyF
02-04-2009, 07:25 PM
Wooooo hooooooooooo it works :D :D

I now have datalogged exactly which row and column in my fuel maps I'm aiming for.

Just need to do the same for the ignition timing and the job is done ;)

Andy

Lee5
02-04-2009, 07:34 PM
Well done mate, now you can map it spot on :)

Lee

AndyF
03-04-2009, 07:55 PM
Oooh I think the load vs rpm stuff works :lol:

http://i64.photobucket.com/albums/h200/Andyfox21/geekmapped/maptrace1.jpg

AndyF
03-04-2009, 09:35 PM
And overlaid over my ignition timing map

http://i64.photobucket.com/albums/h200/Andyfox21/geekmapped/maptraceoverlay2.jpg

soldave
04-04-2009, 02:23 AM
Looks gibberish but I can just about understand it! What boost were you running there?

AndyF
14-04-2009, 07:03 PM
Only just realised I hadn't replied to you Dave :lol:

I was running around 1.55bar and that was in 3rd gear.

As for what it's telling me then it's basically showing me exactly which ignition cells I'm hitting when I'm coming on boost etc. so I know exactly which ones I need to change to get an improvement or to get rid of knock etc..

Andy

soldave
04-06-2009, 11:46 AM
Can you post up how we can get this working, Andy? Would be nice for making a slightly more conservative tune on my car for the summer.

AndyF
04-06-2009, 11:58 AM
Will do when I get home this afternoon Dave.

Put simply, all you do is change the 0046 in the code that starts somewhere around 8800 (I'll get the actual value when I get home) to a value of 0178 and then log the low fuel trim via the pocketlogger and hey presto, the value that you log is which row you are hitting in the load tables. Cross reference this value with the rpm log and you can see exactly which cell you are hitting and when.

Andy

soldave
04-06-2009, 12:29 PM
Thanks. Will wait for the code as the hex addresses only go up to 7FFF!

AndyF
04-06-2009, 12:31 PM
Sorry, meant 0800 not 8800... I was talking in ECU reference terms rather than Ostrich terms

Andy

P.S. To be a real :> the 1st half of the ECU chip is written blank therefore the actual code starts at location 8000 whereas in all of the disassemblers etc. it starts at 0000 so you need to add the 8000 on to find all the relevant address jumps etc :D

soldave
04-06-2009, 12:41 PM
Don't get all technical on me! My eyes just glaze over for things more advanced than "Change xxx to xxx"! :D

soldave
04-06-2009, 12:43 PM
Think I've found the code at 0819, but will wait for confirmation. Just realised, is it possible to edit posts on here?

AndyF
11-06-2009, 09:43 PM
Hi Dave,
You're almost there.

Change 0818 to 01
Change 0819 to 78

and that will log the column index value to the low fuel trim value on the pocketlogger.

Andy

steve_s13
15-06-2009, 03:34 PM
looks impressive

when do you think you will complete this by??

AndyF
06-07-2009, 12:25 PM
Complete it in what way Steve?

I can now log the load and so I know which cells I'm hitting.

Andy

soldave
13-07-2009, 12:51 PM
Bit of an update on this one. I was playing around doing a couple of logs this weekend and I got the low fuel-trim/ignition table load worked out in a fashion. On my map, row 9 corresponds to about 0bar of boost and row 15 corresponds to about 1.65bar of boost, or thereabouts. Thought I'd got the code for the mid fuel-trim/fuelling table load put in, but looking at my logs I really hope that's not the case!

AndyF
14-07-2009, 09:10 AM
Dave,
The 'load' readings seem to tie in pretty well with the later evo maps in terms of the std ECU maps reading up to around 1.7bar (ish) which corresponds to 260 load in ECUFlash so it seems that Mitsi haven't really altered the level that the ECU is mapped up to.

As for the fuel table load then it's a bit more complicated than the ignition map but let me have a check of it this evening and get back to you.

Andy

soldave
14-07-2009, 11:43 AM
If the ignition load values are the same then I wonder if the fuel load values will be about the same too.

Don't worry about the fuel table load if you've got other stuff on. No real rush on that.

AndyF
14-07-2009, 12:05 PM
The fuel load table is only a 14 row map so will be slightly different.

The problem is that IIRC the load index isn't stored in a single memory location and so it means that it's hard to datalog it without re-writing the code to dump the value to an unused memory location (which is more than possible to do btw).

Let me check first though as it's been a while since I looked at that part of the code.

Andy

AndyF
20-07-2009, 02:32 PM
Just as a minor 'tweak' on this thread. If you log the load index as described using the low fuel trim memory location in the pocketlogger software then the value that you log in % needs to be multiplied by 0.08 to get the actual column index.

As an example, if you were seeing values of 185% as logs then the column index is 185*0.08 = 14.8 so you're between columns 14 and 15.

Likewise, if you see values of 150% then you're at column 150*0.08 = 12

Andy

AllanL
22-09-2009, 06:15 AM
Andy,

Using MMCd's datalogger and DSM addresses: http://mmcdlogger.sourceforge.net/, how would I program the .bin to allow map tracing for our Evos?

I am in the process of using an LC-1 with Logworks but do not know where to start in terms of logging nad putting it in table fo ruse with Tunerpro...

Any advice would be appreciated.

Thanks.

AndyF
29-09-2009, 10:08 PM
Hi again Allan,
You can use the code change on this thread and it will still work with MMCd as the datalogger uses the same code to look at.

If you then log the low fuel trim in MMCd you will see it will change to show the column index value as described.

Andy

AllanL
05-10-2009, 05:26 AM
Thanks Andy.

AllanL
05-10-2009, 05:34 AM
Ooops, by the way, have you done this for the ignition timing Andy?

Thanks again.

AndyF
05-10-2009, 07:14 PM
Hi Allan,
The value that you will be logging is the value for the ignition timing table.

Andy

AllanL
06-10-2009, 12:35 AM
ooops...i meant to ask about the fuel tables?
thanks.

AndyF
06-10-2009, 11:48 PM
I can do it but it requires a few more code changes because the std code uses one of the 'temporary' memory addresses for the value and this address is also used for other parts of the code and so it's not as simple as just logging it and reading off the values because they won't make sense.

You need to modify the fuel table lookup routine to store the index into a new memory location that you can then datalog.

I'll post up the code mods required tomorrow

Andy

AndyF
04-11-2009, 09:00 AM
Right then chaps.... the code for logging the fuel map 'load' is as follows:

Open up tunerpro and goto 'Tools - Advanced - Hex Editor...'

Scroll down until you see address 1960 in the left hand column.

Now moce the cursor back 2 adresses and the code should read as follows 'BD BC E0 D7 65 CD CE FF 05 BD BC D6'

What this does in 'real' terms is

BD BC E0 - jsr BCE0 - jump to a subroutine at address BCE0 (this is the subroutine that calculates the 'load' index value)

D7 65 - stab L0065 - store the result from the calculation to memory address L0065 which happens to be one of the temporary memory addresses that is used in a lot of other calculations as well. This is the reason why it isn't just as easy as logging this memory location.

CD CE FF 05 - ldy #0xFF05 - load accumulator y with the memory address used for calculating the rpm index for the fuel maps

BD BC D6 - jsr BCD6 - jump to a subroutine to calculate the rpm index for the maps

So what we need to do is now modify the code so that the result from the load calculation is stored into a new memory location on it's own so we can then datalog that value and get our map tracing.

So where the routine finishes the calculation and starts to load the routine for the rpm index, we will interrupt it and tell it to jump to a new routine of our own

Therefore, where the CD CE FF 05 is in the code, we will change it to read BD DB A0 01 - This will cause the code to jump to a new subroutine at address DB A0 (which is shown as 5BA0 in tunerpro). The 01 at the end is a no-operation code which is there to just tidy up where the old code used to be.

So we now move to address 5BA0 in tunerpro and add in the following:

F7 02 40 CD CE FF 05 39

This now does the following:

F7 02 40 - stab L0240 - stores the result from the 'load' calc to a new memory location 0240

CD CE FF 05 - same as the old code we removed. This is just so that when we return to the code where we jumped from, everything is back to normal.

39 - rts - return to previous code


So now all we need to do is setup the datalogger to log memory location 0240 and everything is sorted (hopefully :D )

In pocketlogger, the easiest way to do this is the same way as I've mentioned for logging the timing values in this thread.

Hope this helps

Andy

P.S. At the moment, this code is untested on my car and you therefore will be using it at your own risk as per all of the other code I have written ;)

AllanL
04-11-2009, 01:15 PM
So logging fuel will use the low fuel trim memory location, as with the ignition logging?

And I'll still have to do the following, along with writing the code in your post above?

Change 0818: 00 to 01
Change 0819: 46 to 78

If I write this, hook up my Palm then start the engine, I'll be able to log fuel already?

Sorry for the many questions?

Thank you very much Andy.

AndyF
04-11-2009, 10:32 PM
Allan,
Change 0818 to 02
Change 0819 to 40

That will then log memory location 0240 to the low fuel trim display on the pocketlogger.

When you have the datalog, you then just multiply the value shown by 0.08 to get which column you are in on the fuel table.

Andy

AllanL
05-11-2009, 03:38 AM
Andy,

This means that I cannot log both fuel and ignition at the same, since I'll be using the low fuel trim location on the logger, right?

Or do I have to change the code as such, everytime I will log both:

IGN:
Change 0818 to 01
Change 0819 to 78

FUEL:
Change 0818 to 02
Change 0819 to 40

Thank you very much for this.

AndyF
06-11-2009, 10:52 AM
If you want to log both Allan then change 0818 to 01, 0819 to 78, 081A to 02, 081B to 40 and you will log the ignition points on the low fuel trim and fuel points on the mid trim.

Andy

AllanL
09-11-2009, 03:51 AM
Alright Andy. Got it...quite... :blink:

But I'll still have to write the code for the fuel tracing right? :eek:

Thanks very much.

AndyF
09-11-2009, 07:54 AM
Yes, you still have to write the code for the fuel tracing because it's not in the original ROM.

Andy

AllanL
09-11-2009, 08:36 AM
goodie goodie!

thanks Andy.