The stock ECU has gear dependent boost control!
Since we are logging the lower byte there is no more information in that SPEED variable then. We could look at FFFF6B7A, could be that we can get a better method of measuring such as measuring the time between pulses rather than the pulses in a certain time (if this is how it is done). Need to look more at the disasm.
If they are measuring the frequency of pulses by counting over a time period, then it could be improved by measuring the period between pulses (this is how the terrible apparent resolution on the MAF is improved at idle at least on the old DSM). I think many have noticed how terrible the resolution is for speed in their logs, and you're finding that it struggles to reliably differentiate between adjacent gears.
The resolution in the AYC/ACD ECU will be much better because it uses toothed wheels and the frequency will be much higher than the gearbox sensor I think the engine ECU is using, but there is no connection we can implement in code as the engine ECU doesn't see these sensors.
I'll have a look at the disasm later on, unless someone beats me to it.
The resolution in the AYC/ACD ECU will be much better because it uses toothed wheels and the frequency will be much higher than the gearbox sensor I think the engine ECU is using, but there is no connection we can implement in code as the engine ECU doesn't see these sensors.
I'll have a look at the disasm later on, unless someone beats me to it.
Last edited by jcsbanks; Dec 1, 2008 at 04:15 AM.
well we can increase the res for the speed variable by reducing the timer used for copying over the accumulated speed counter.
but yeah like I said b4 this speed variable isn't used in the rpm/speed routine that MrFred found.
I think the problem is that speed != rpm, ie speed is a function of rpm, but not exactly - there is slack involved.
If we could gate or bracket the rpm/speed variable into something discreet then that would be much better. but also lot harder code wise.
but yeah like I said b4 this speed variable isn't used in the rpm/speed routine that MrFred found.
I think the problem is that speed != rpm, ie speed is a function of rpm, but not exactly - there is slack involved.
If we could gate or bracket the rpm/speed variable into something discreet then that would be much better. but also lot harder code wise.
You CAN bracket any variable into something discrete with a few lines of code using the stock ECU routines. Just load one register with the address of your table and make a JSR. The table has the source and destination variables with the breakpoints. Your destination variable contains your gear number-1 which you use to look up your table.
Your new table looks something like this (about 22 bytes):
Source
Destination
Number of items
Speed for gear 0
Speed for gear 1
Speed for gear 2
Speed for gear 3
Speed for gear 4
Speed for gear 5
Hope I'm not telling you how to suck eggs!
Your new table looks something like this (about 22 bytes):
Source
Destination
Number of items
Speed for gear 0
Speed for gear 1
Speed for gear 2
Speed for gear 3
Speed for gear 4
Speed for gear 5
Hope I'm not telling you how to suck eggs!
Last edited by jcsbanks; Dec 1, 2008 at 05:55 AM.
Another problem is if someone happens to have a tiny wheel setup for the track it might throw off the entire variable. Obviously not an issue 100% of the time but still a caveat to note.
Evolved Member
Joined: Mar 2008
Posts: 730
Likes: 3
From: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
well we can increase the res for the speed variable by reducing the timer used for copying over the accumulated speed counter.
but yeah like I said b4 this speed variable isn't used in the rpm/speed routine that MrFred found.
I think the problem is that speed != rpm, ie speed is a function of rpm, but not exactly - there is slack involved.
If we could gate or bracket the rpm/speed variable into something discreet then that would be much better. but also lot harder code wise.
but yeah like I said b4 this speed variable isn't used in the rpm/speed routine that MrFred found.
I think the problem is that speed != rpm, ie speed is a function of rpm, but not exactly - there is slack involved.
If we could gate or bracket the rpm/speed variable into something discreet then that would be much better. but also lot harder code wise.
Mike - yup the code will allow a custom rpm/speed... so different boxes or wheels will be ok.
John - what is the subroutine to do the table lookup, or are you just using Query_Table_2D... hrmm I didn't think of doing that with just gear numbers... wonder how well it would work... might try that! duh im donkey
John - what is the subroutine to do the table lookup, or are you just using Query_Table_2D... hrmm I didn't think of doing that with just gear numbers... wonder how well it would work... might try that! duh im donkey
Yes Dave. I think the table structure is dest, source, length, data.
I was looking a bit at some speed pulse stuff, looks like a counter in that really long and skinny interrupt called subroutine is incremented there, and perhaps reset by another interrupt. Complex!
I was looking a bit at some speed pulse stuff, looks like a counter in that really long and skinny interrupt called subroutine is incremented there, and perhaps reset by another interrupt. Complex!
man that was hard work.
axis lookup -> 2d table lookup -> axis lookup -> 3d table lookup.
hopefully it works
... test on the way to work tomorrow 
I have added a 7th column with gear 0, so that you can run 100% wgdc for launch, if thou so desires!
axis lookup -> 2d table lookup -> axis lookup -> 3d table lookup.
hopefully it works
... test on the way to work tomorrow 
I have added a 7th column with gear 0, so that you can run 100% wgdc for launch, if thou so desires!
...this also works for the people who are saying they come out too hard or want to be softer on their drivetrain. Have a lower boost until speed catches up with RPM if you so desire!Might not be so bad to halfway interpolate that one, but I think its a moot point and probably not worth the work.







