TuneEcu Maps Explained

I plan to revisit this when my brain is working a little more logically. What I'm picking up is that you recommend disabling the O2 sensor with a custom tune on the 2.3s, which I did. How about the 2.5s using, for example, Mr. Penner's tune? Maybe it's already disabled as part of the tune- I don't recall. Enlighten us....
 
Thanks for the input. I think you've solved my question in a different kind of way than I am used to, and I just want to confirm:
1. In Tune ECU, on a Keihin Triumph, the method for eliminating closed-loop cells is NOT to simply change their value in the AFR table (like TTS), but to disable the O2 sensors using a check box. Or, said a different way, disabling the O2 sensors effectively puts the entire AFR map in open loop, is that correct?
2. Once I've disabled the O2 sensors, the values I enter in the AFR table cells should actually change the command to the ECU for injector timing (duration) for that cell.
3. If that's the case, then I need to be able to rely on my F and L table values as accurate, but I'm not planning on making any big changes or looking for performance gains here. I'm actually working on a 2014 Bonneville - my slow bike. I just REALLY don't like that lean hiccup I keep getting in the middle of a turn or leaving a stop, and I happened to find this most informative post on the R3 forum.
The other thing that I keep reminding myself is that we've gotten so used to having this super precise control over AFR that people will argue over whether 13.5/1 is better than 13.8/1, and yet, I rode bikes for years with 3 or 4 jets (or even ONE - remember Lake "Injectors"?) controlling the fuel in all kinds of weather, and we ran them somewhere between "Bog" and "Stutter". And somehow, we seemed to do okay!
 
The hiccup, like a lean stumble when transitioning from closed to low stable throttle point while cornering? This can be improved by adjusting the TPS sensor to register earlier, basically adjusting the 0% point voltage slightly higher. On the rockets, many people have had good results lifting the 0% from 0.62v to 0.68v. I'm not positive what voltage the Bonnie calls for (probably 0.60-0.62), but I'd try this first before adjusting any tables, it's free, reversible, and doesn't require guesstimation like tables without a dyno. Ensure you use the reset ISCV function before taking the voltage reading as in the TuneECU manual, the resting voltage when you've not triggered the reset ISCV function is not the voltage you want.

1: Correct.
2: No, the AFR table is ignored from then on. Use the F tables to adjust fueling, the Keihen system does zero math for you unfortunately.
3: Drag the whole column of 0 and 1 throttle percent above 1400 RPM in the F table and add 5%, see if it improves it. If not, check F/L switch, you likely have L tables enabled up to a point, if that's the case, you'll need to make a choice. Try to tune the L tables, or abandon them and use F only. Both are not great without a dyno, it's hard to get good map values due to OBD2 update rate and simply zeroing out the F/L table will be way off in the F table in the areas it was using the L table as the primary table, so requires a dyno tune.
 

EDIT: Quick search says it's a narrowband on the 2.5, NTK AZD4002-BA001, $32 from KTM Europe suppliers, $100 from triumph and US suppliers. Pinout may differ so don't go plugging a KTM sensor in without checking with multimeter first

Not sure, but if it's a narrowband sensor I would disable it, nothing wrong with the 2.5 but it didn't particularly stir my emotions, so I don't pay attention to it. Narrow bands are emission control devices designed with a sole purpose, keep the cat lighting off the unburnt fuel and stay emissions compliant by keeping the mixture centered around 1.0 lambda.

In most scenarios it's a simple check these days; if engine is NA it's narrow, if it's forced induction wideband.
 
Last edited:
Wow, VERY helpful. This is definitely different.
Okay, so we know that F and L are Volumetric Efficiency (VE) tables measured by throttle position and Manifold Absolute Pressure (MAP) respectively. Their values are milligrams of air x 20.
The ECU has to have some point of reference to tell it injector timing (fuel) for a given volume of air, so I would think that the AFR table is probably not ignored, but is used as a non-variable standard regardless of inputs from Intake Air Temperature (IAT), Coolant Temperature (CLT) etc. SOME non-variable fuel table is being compared to VE table cells somewhere.
If that's true (?), then I should be able to find my (non-active) closed-loop cells on the AFR table and mathematically calculate the additional air volume needed in the VE tables to richen up those cells to my 13.8/1 goal at cruise and low throttle.
In the meantime, I will try the TPS adjust, but I've done this on my BMWs, and honestly, the TPS is so sensitive, the difference between .62v and .68v is the tap of a finger on the TPS housing. Is the net effect of this to cause the ECU to think the throttle is slightly more open, and add slightly more fuel? If so, the closed loop function should bring things back to stoich in short order. Or does moving the TPS help for some other reason?
 
There may be ECU functionality differences between 2.3 rockets and your bonnie, they are, I think, two whole EURO emissions standards apart in age but it seems for the most part, no major changes were actually required until EURO 5 standards. I get what you're looking for, a way to manipulate it to correct fueling to a more appropriate fuel amount without manually adjusting the fueling table. I expect you'll find no such ability exists within the ECU unfortunately, and if you do it's a difference between the Rocket and Bonnie. Depending on your ability with circuit design though... an Arduino can do it

I'm extremely confident there is no fueling lookup table hidden and that it's doing the injector pulse width math on the fly for a number of reasons, omitting for brevity. This is the point where it goes into speculation because I don't have access to the raw firmware but from behavior I've seen I expect the ECU derives injector pulse timing like this:

(Airmass (F/L Table Value) * 0.071429 (if targeting 14.7 AFR, but this value can be anything) * environmental correction factor * acceleration enrichment factor * injector flow/second (hardcoded constant)) - (injector dead time * voltage correction value) = target pulse width. Basically exactly how non-VE tuning standalones do it.

As I recall, the AFR table is fully ignored when the o2 box is unchecked. 14.7 as the default target fueling constant makes sense based on working values used in the F tables when custom tuning bikes with relatively mild modification. With o2 active, the AFR table acts only as a enable or disable closed loop switching table, any value that's outside the narrow range it accepts to trigger closed loop is treated as a binary; if it's outside, it ignores it and goes into open loop. This is the entry point for manipulation via a controller, ESP32 or Arduino. By accepting the analogue input from the O2 sensor, you can manipulate it to output a different signal to the ECU, essentially tricking it into self-tuning to the value you set in the external board, disclaimer: It's a felony as you're tampering with emissions control devices (I have to say it, and no I won't program it since the EPA has been attacking people lately), but an ESP32 would be better than an Arduino as it's much much faster.

Also, just a pedantic point, it's definitely not a VE table, it's raw air mass, but VE could be derived from it with some math.
 
Last edited:
Excellent, THANK YOU for taking so much time to detail this all out! -Jon
 
At the risk (certainty?) of resurrecting on old thread, this is one of the most useful TuneECU sources I've found. Many thanks to the ones in the know who take the time to explain.

I run a 2012 Roadster with Jardines but otherwise stock (I think), which I'd like to run a little rich to reduce both the overrun popping and my right thigh cooking temperature, even a little. I'm not chasing any power increase, at my age this thing is quite fast enough. I'm based in Abu Dhabi where the ambient reaches 50+ degC. From what I've seen in this thread, I need to disable the O2 sensor, and increase the numbers in the F & L tables, but is this best done by changing the F&L tables themselves, or can I simply add a few percentage points into the F Trim Table?

OR - do I set the AFR table to 13.50 globally (except the extreme top right, where the base map goes as low as 13.25) and leave the O2 sensor connected?

Any suggestions gratefully received.
 
Last edited:
If your bike still has the stock map then with the Jardines it is running mad lean.
This would explain the heat and the decel popping.
Assuming you don't know what map is on it then best first step will be to download a map (from a trusted site like either here or the TuneECU site) for a 2010 to 2013 Roadster with Jardines or other free flowing exhaust - and you'll be a lot closer to correct.

Nothing beats a dyno tune or second best get a PC5 and Autotune.
How do you survive 50°C!!