Interpolation vs Resolution
Interpolation vs Resolution
With the addition of finer maps, how does this affect your actual end tune?
For example, with "coarse" maps, if you stepped timing up one degree (say from 10 to 11 degrees) over 500 RPM (6000 to 6500 RPM), does the interpolation in the ECU run the car at 10.5 degrees at 6250 RPM? Or can the ECU only run in full increments, either 10 or 11 degrees, but not 10.5?
Now say we increased our resolution in this area so we had sites at 6000, 6250, and 6500 RPM. We can't program 10.5 degrees , so there is no way to get a smooth transition across this 500RPM step, correct? Our only option is to step timing up 1 full degree in 250 RPM now? 6250 is getting either 10 degrees or 11 degrees.
The begs the question, would it be possible to improve timing resolution? Instead of 128 = 0, 0=-128, and 255=128 degrees, can we rescale this to get 0.5 degree increments,giving a range of -64 to 64 degrees of advance, still more then enough to properly map an engine.
Edit, forgot the 20 offset...
Hex 0=-108 degrees, Hex 128 = 20 degrees, and Hex 255=148 degrees
Rescaled, possibly using a different adder?
Hex 0=-54 degrees, Hex 128 = 10 degrees, and Hex 255=74 degrees
For example, with "coarse" maps, if you stepped timing up one degree (say from 10 to 11 degrees) over 500 RPM (6000 to 6500 RPM), does the interpolation in the ECU run the car at 10.5 degrees at 6250 RPM? Or can the ECU only run in full increments, either 10 or 11 degrees, but not 10.5?
Now say we increased our resolution in this area so we had sites at 6000, 6250, and 6500 RPM. We can't program 10.5 degrees , so there is no way to get a smooth transition across this 500RPM step, correct? Our only option is to step timing up 1 full degree in 250 RPM now? 6250 is getting either 10 degrees or 11 degrees.
The begs the question, would it be possible to improve timing resolution? Instead of 128 = 0, 0=-128, and 255=128 degrees, can we rescale this to get 0.5 degree increments,giving a range of -64 to 64 degrees of advance, still more then enough to properly map an engine.
Edit, forgot the 20 offset...
Hex 0=-108 degrees, Hex 128 = 20 degrees, and Hex 255=148 degrees
Rescaled, possibly using a different adder?
Hex 0=-54 degrees, Hex 128 = 10 degrees, and Hex 255=74 degrees
Last edited by 03whitegsr; Oct 6, 2009 at 03:49 PM.
I think I remember talking about this before, but I don't know if anyone ever looked into it.
I think I recall that the code in the ECU for knock references pulling 90/256 degrees of timing per knock count, for example. So, that would infer that the ECU has control of fractions of a degree of timing. But I don't know if anyone ever verified if this was actually the case or not. I would be interested if it were.
Anyway, the point you bring up is sort of why I don't think you need that much resolution in RPM. Maybe for a trouble area or something, but if we are only dealing with whole numbers for timing, 500 rpm increments should suffice, especially with interpolation. Tephra's big maps will allow for higher RPM control for people needing proper control to 10-11k for example.
I think I recall that the code in the ECU for knock references pulling 90/256 degrees of timing per knock count, for example. So, that would infer that the ECU has control of fractions of a degree of timing. But I don't know if anyone ever verified if this was actually the case or not. I would be interested if it were.
Anyway, the point you bring up is sort of why I don't think you need that much resolution in RPM. Maybe for a trouble area or something, but if we are only dealing with whole numbers for timing, 500 rpm increments should suffice, especially with interpolation. Tephra's big maps will allow for higher RPM control for people needing proper control to 10-11k for example.
Yeah, I'm in agreement with you and why I have to disagree with people saying we need 35x35 maps. All they will do is get you in trouble.
I'm still very interested in how fine of resolution the ECU actually delivers and if we could tap into the unused bit's we'd never need. Even using 1/3 degree increments, you could still fully map the motor pretty easily with just offset adjustments. Figure -20 to 45 degrees will get you anything you ever hoped for. I've ran anti-lag more retarded then -20 degrees and it's not a good idea and the EVO doesn't need more then 45 degrees even with full EGR function.
I'm still very interested in how fine of resolution the ECU actually delivers and if we could tap into the unused bit's we'd never need. Even using 1/3 degree increments, you could still fully map the motor pretty easily with just offset adjustments. Figure -20 to 45 degrees will get you anything you ever hoped for. I've ran anti-lag more retarded then -20 degrees and it's not a good idea and the EVO doesn't need more then 45 degrees even with full EGR function.
I think I recall that the code in the ECU for knock references pulling 90/256 degrees of timing per knock count, for example. So, that would infer that the ECU has control of fractions of a degree of timing. But I don't know if anyone ever verified if this was actually the case or not. I would be interested if it were.
The Main Loop uses the 1 degree scaling, the Big CAS Interrupt routine starts using the 1/3 degree scaling, thats where the knock retard is done.
The ecu has 10+ different Timing scalings, using different offsets and references, and the 1 and 1/3 degree units.
I guess a lot of members on here have never tuned a large resolution ECU before. Having the larger maps most defnitely helps a great deal with timing. The best gain is the ability to HOLD a certain timing amount until YOU want it to increase. With interpolation, you are forced to only choose 2 points and have to let interpolation do its thing. Now with more resolution you can choose a halfway point and either HOLD the first timing point longer before it ramps up, or you can have timing jump up SOONER. It really is nice to have that control, especially in the touchy areas where timing needs to start really ramping up in the taper area. Once you've tuned the AEM maps, you feel so limited with the stock ECU maps.
The begs the question, would it be possible to improve timing resolution? Instead of 128 = 0, 0=-128, and 255=128 degrees, can we rescale this to get 0.5 degree increments,giving a range of -64 to 64 degrees of advance, still more then enough to properly map an engine.
Actually Jcbanks had talked about this previously. The subys i believe can tune to the 1/3rd degree, it would be nice to have at least 1/2 degree timing. Something maybe we could see in the future.
Trending Topics
I guess a lot of members on here have never tuned a large resolution ECU before. Having the larger maps most defnitely helps a great deal with timing. The best gain is the ability to HOLD a certain timing amount until YOU want it to increase. With interpolation, you are forced to only choose 2 points and have to let interpolation do its thing. Now with more resolution you can choose a halfway point and either HOLD the first timing point longer before it ramps up, or you can have timing jump up SOONER. It really is nice to have that control, especially in the touchy areas where timing needs to start really ramping up in the taper area. Once you've tuned the AEM maps, you feel so limited with the stock ECU maps.
There is no free lunch, it leaves a lot of stuff that you have to tune, but its worth it. With Megasquirt on my volvo, way back in the day we had a pair of 8x8 maps for fuel and timing.. so we would compress the driveability part of the map down to about 3 rows and 3-4 columns (with 800 rpm breakpoints although it never really worked out quite that way), you could get something that worked well, but always left a bit to be desired.
They re-coded it to have 12x12 maps around four years ago, and now suddenly you can map out to 25psi or so with reasonable kpa breakpoints and a nicer grouping of rpm breakpoints, but it would still leave some things to be desired (say, if you have a 4 bar map sensor and want to map out to 35psi), esp if you have a map that's already tuned.. you can shrink things down and re-scale, but you end up having to go back and 'touch' everything anyway.
Now they've got 16x16 fuel maps (and hopefully timing soon to follow), and I've got the same granularity I had before, but my map goes all the way up to 350 or 400kpa, so when I crank the boost on the ebc.. I just have to address the stuff that hasn't been tuned yet, and don't have to worry about all the stuff that's good to go.
I think it's a great idea, right now at full bore i'm tuning off of maybe 10-15 cells on the maps, and I would like a bit more resolution there, however I can't get that without munging up everything else (which has been good to go for a while)
I guess a lot of members on here have never tuned a large resolution ECU before. Having the larger maps most defnitely helps a great deal with timing. The best gain is the ability to HOLD a certain timing amount until YOU want it to increase. With interpolation, you are forced to only choose 2 points and have to let interpolation do its thing. Now with more resolution you can choose a halfway point and either HOLD the first timing point longer before it ramps up, or you can have timing jump up SOONER. It really is nice to have that control, especially in the touchy areas where timing needs to start really ramping up in the taper area. Once you've tuned the AEM maps, you feel so limited with the stock ECU maps.
But you are missing the point. Say you have a trouble spot at 4000 RPM at lower loads, so you drop two extra sites in there at 3750 and 4250 RPM. You fix your low load issues by having more control at the break point. However, at high load, you are now forced to use those sites too. Where before, the ECU may have smoothly interpolated across this range, now because there are sites at 3750 and 4250 that can only increment by 1 degree, you get much more abrupt timing advance changes.
Upping resolution in the map axis does little unless you up the resolution in the table values as well.
I do agree though, the biggest benefit is not going to be from increased resolution with the bigger maps. It's simply going to be from extended range. The stock map already has good resolution any finer and I feel it's going to cause choppy timing and possibly fueling. Luckily, we have control and I'll likely only extend the range of the maps.
I bring this topic up though to discuss if finer resolution in the timing maps may be possible.
Lets think about it for a second.
Say you have 4* @ 3500rpm and 5* @ 4000rpm
Now the ECU will continue to run 4* up until 3750rpm
If you suddenly add in a 3750rpm row, then you have to choose either 4* or 5* in there, meaning the switch point would either be 3625 or 3875.
So if you get knock by using 5* @ 3750 then you will need to use 4* instead.
I don't really see how having bigger maps detracts from the ECU. Yes it would be nice to be able to say run 3.5* but I think that's going to require a lot of code changing
Say you have 4* @ 3500rpm and 5* @ 4000rpm
Now the ECU will continue to run 4* up until 3750rpm
If you suddenly add in a 3750rpm row, then you have to choose either 4* or 5* in there, meaning the switch point would either be 3625 or 3875.
So if you get knock by using 5* @ 3750 then you will need to use 4* instead.
I don't really see how having bigger maps detracts from the ECU. Yes it would be nice to be able to say run 3.5* but I think that's going to require a lot of code changing
Lets think about it for a second.
Say you have 4* @ 3500rpm and 5* @ 4000rpm
Now the ECU will continue to run 4* up until 3750rpm
If you suddenly add in a 3750rpm row, then you have to choose either 4* or 5* in there, meaning the switch point would either be 3625 or 3875.
So if you get knock by using 5* @ 3750 then you will need to use 4* instead.
I don't really see how having bigger maps detracts from the ECU. Yes it would be nice to be able to say run 3.5* but I think that's going to require a lot of code changing
Say you have 4* @ 3500rpm and 5* @ 4000rpm
Now the ECU will continue to run 4* up until 3750rpm
If you suddenly add in a 3750rpm row, then you have to choose either 4* or 5* in there, meaning the switch point would either be 3625 or 3875.
So if you get knock by using 5* @ 3750 then you will need to use 4* instead.
I don't really see how having bigger maps detracts from the ECU. Yes it would be nice to be able to say run 3.5* but I think that's going to require a lot of code changing
That's basically how I used the larger maps with AEM EMS. Its nice because I can force the ECU to hold a specific degree of timing until "I" want it to advance more (or vise versa). That is what I hate about the stock maps, especially as boost/load drops in the peak HP RPM range. I'm sure there are plus' and minus' to it but I feel there are more plus'.
So, in short:
- the timing resolution is already 'blocky' since while interpolation is used (as far as where in the RPM range timing adjustments occur), the actual timing value can only be set / adjusted in full 1 degree increments, and
- with more timing cells (Tephra big map), and configurable RPM switchover points (by configuring the RPM values for the cells above and below the desired RPM switchover point), one has more accurate control over where each instance of 1 degree of timing adjustment occurs
- the timing resolution is already 'blocky' since while interpolation is used (as far as where in the RPM range timing adjustments occur), the actual timing value can only be set / adjusted in full 1 degree increments, and
- with more timing cells (Tephra big map), and configurable RPM switchover points (by configuring the RPM values for the cells above and below the desired RPM switchover point), one has more accurate control over where each instance of 1 degree of timing adjustment occurs
Last edited by SoCal Rally; Oct 7, 2009 at 03:24 PM.
So, in short:
- the timing resolution is already 'blocky' since while interpolation is used (as far as where in the RPM range timing adjustments occur), the actual timing value can only be set / adjusted in full 1 degree increments, and
- with more timing cells (Tephra big map), and configurable RPM switchover points (by configuring the RPM values for the cells above and below the desired RPM switchover point), one has more accurate control over where each instance of 1 degree of timing adjustment occurs
- the timing resolution is already 'blocky' since while interpolation is used (as far as where in the RPM range timing adjustments occur), the actual timing value can only be set / adjusted in full 1 degree increments, and
- with more timing cells (Tephra big map), and configurable RPM switchover points (by configuring the RPM values for the cells above and below the desired RPM switchover point), one has more accurate control over where each instance of 1 degree of timing adjustment occurs




