Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

Smoothing turbo oscillations on a Mazda Skyactiv-D 2.2 -> can adjusting boost error correction be a solution?

Practical Diesel Tuning

Forum Posts



Tech Articles

Discussion and questions related to the course Practical Diesel Tuning

= Resolved threads


TL;DR: having a two stage turbo where the big one is wastegate-controlled, could it be necessary to adjust the boost error control table in order to avoid oscillations? It looks to me that, once I increased fuel injected quantities, the wastegate behavior became less precise and prone to crazy oscillations at high RPMs, where I request more fuel compared to stock tune. If adjustment to the boost error control is needed, should I reduce the values? Because to me it sounds like changes are happening faster and the wastegate should actually react with smaller adjustments.


Hi everyone, I need advice regarding the tuning of the turbo of my Mazda 3 Skyactiv-D 2.2.

It's a diesel engine with a multi-stage turbo: the first one works until 2600 RPMs and then it switches to the second. The transition should be completed at 3000 RPMs.

From what I know, and after some empirical tests with the tables, I can say that the first turbo is a VNT while the second is controlled via a closed loop wastegate.

The problem with the Skyactiv-D platform is that it's not very popular among tuners and the few tools available, like VersaTuner, helps only to a certain extent. The tunes that are bundled with the software produces oscillations on the second turbo at high RPMs and the problem has never been solved.

Last March I created my own tune, as I shared here (https://www.hpacademy.com/forum/practical-diesel-tuning/show/tuning-the-mazda-skyactiv-d-2-2l-engine-to-gtd-level-of-performance), and I had good results touching the boost as little as possible. But it was quite cold here in Berlin, I was waiting for the summer to perform some extra tests and, punctual as all the bad things, turbo oscillations started to appear.

It's also clear that I need to increase the lambda if I want to be able to floor the pedal for more than 10-15 seconds, as in the current configuration I reach the EGT limits too fast.

Helped by a couple of other amateur tuners with the same platform, I tried to modify the Exhaust Pressure tables because we had the impression they were triggering the oscillations. It turned out to be false, we got no improvement.

At this point, I would like to try to adjust the boost error correction table, which contains the % of the wastegate duty cycle adjustment given a certain mismatch between MAP desired and actual MAP. My hypothesis is that, given that I'm pushing considerably more fuel from 3500 RPMs on (especially above 4000 RPMs), the boost builds up way faster than stock. Mazda calibrated the adjustments for a "slower" setup and with increased fuel injection the wastegate overshots the adjustments creating large ups and downs.

This one below is a 2nd gear acceleration with a stock 175 hp tune (note that the purple small lines are the Manifold Absolute Pressure desired values):


This one below is an acceleration in 2nd gear with increased fuel injection quantities (at 3500 RPMs pushes +10% more fuel, at 4600 RPMs +17% more fuel) with absolutely stock boost. In my opinion the wastegate behavior is not as controlled:


I will attach 3 more screenshots, this time 3rd gear accelerations. Please be aware all the screenshots are 15 seconds cuts, so we can compare the slopes of the wastegate behavior. The first is the stock tune, the second one is my tune from March (little boost added from 3000 to 4000 RPMs) and the third one is my new tune tested with modified exhaust pressure limits and in general more boost (+5% over stock from 3200 to 4600 RPMs, with gradual increase at the beginning). Both my tunes push at 3500 RPMs+10% more fuel and at 4600 RPMs +17% more fuel:




It's interesting that my changes to the exhaust pressure limits (both min and max limits) seem to have caused a higher max duty cycle. My impression is that the ECU is over-adjusting the wastegate duty cycle once the MAP reaches the desired value, causing a big drop that needs to be compensated with an abrupt increase of the duty cycle.

I would like to try to lower the boost error control by a 10% or similar value and see if the adjustments are more controlled. Does this make sense?

Any other suggestion about how to tame this turbo?

Looking at the logged data it seems like there is a decreasing boost/cut occurring when the exhaust manifold back pressure hits a certain limit.

What is the current table setup to?

That was our initial thought and we tried different settings with the Exhaust Pressure Limit tables VersaTuner exposes. But we discovered that a part of them don't affect the second turbo at all, only the first one (makes sense as the 2 turbos have mostly separated tables.. you can spot in some of my screenshots that the first turbo reaches more than a 400 kPa exhaust pressure spike, I was thinking to affect the second turbo while I was just messing with the first one with no actual benefit).

We thought we found something when we could correlate a table with the max exhaust pressure limit and another one with (an assumed) min exhaust pressure limit. We were thinking it could be a kind of "corridor" the ECU tries to follow to manage boost and we adjusted it.

But we found no benefit.

You can find below the last 2 graphs (3rd gear acceleration with my tune from March and the new version tested a few days ago with more boost and exhaust pressure limits editing) with the addition of the assumed hi and low exhaust pressure limits.

At the beginning it looked like the ECU was following them, but the behavior is inconsistent (especially when looking to other data logs). Especially in the last case, oscillations start with absolutely healthy exhaust pressure level.

The wastegate opens when the MAP surpass the MAP desired, the spikes in exhaust pressure are a resultant of crazy wastegate behavior and not the cause, in my humble opinion:



I took some screenshots of the editable tables on VersaTuner.

This is the Boost error correction table that I would like to edit:


These are the assumed max exhaust pressure limit (stock and edited, the changes are tiny because after a linear regression I realized requested boosted only minimally impact this table which is mostly dependent on injection quantities and RPMs):



These are the assumed min exhaust pressure tables (here I edited way more.. as this table is basically "unmapped" above the injection quantities that stock tune pushes, my take was that editing it above that level would have improved the ECU control of the turbo. It didn't work in various tests but curiously I got higher max wastegate duty cycle):



Hmm.... Couple of things come to mind. Given the way the boost correction table has been setup, It seems weird that there is a 40% change in duty cycle under normal operation. There maybe a MAP vs wastegate duty cycle table similar to Haltech's overboost function that reduces the waste gate duty cycle once past the boost target threshold by a nominated value (might account for the 40% fluctuations).

Depending on the targeted value, you might be able to use the boost correction vs duty cycle table screen shotted. Would take a bit of experimenting to get the correct values to ensure that your boost stays on target.

I agree with Brendon, the duty error values in the table are far from the response you're logging, unless those values are integrated rapidly rather than that being a proportional correction. Have you tried multiplying everything in that table be 0.1 to see if the oscillation frequency slows?

Thanks for the help.

The Skyactiv-D platform does not get a lot of support, sadly. That’s the only boost error control table I can edit.

My hope (and first thought) is that the table controls the integral adjustment.

I will change the values and test, but I wanted to ask for advice first. What could be a safe to test change to understand the impact of the table on boost control?

If you can adjust the base duty table to reduce boost a little, then make your changes to the error table, then you'd have less concern about over boosting.

The error table looks pretty clear, so you could also reduce the positive corrections, leave the negative corrections alone, and see if the shape of the oscillation is different when WGDC is increasing vs. descreasing, while retaining full response to potential overboosting.

Thanks for your help again.

I will probably try your second option and see how it influences the wastegate behavior.

VersaTuner doesn't expose a base duty cycle table, sadly. There are a bunch of tables I can edit that are flagged unknown, I will double check if any of them resembles a base duty cycle table, but I prefer to stay on the safe side and avoid touching untested tables.

Sounds good! Let us know how it goes.

I tried this change today:


Got these results:


I would say this test has been very disappointing, not even a glimpse of improvement.

Do you have any idea?

Anyway, I will try to edit 4 tables that (presumably) control the max exhaust pressure limit of the second turbo to see if they influence something. So far I basically didn’t touch them, the changes were too small to move anything, I will try an increment of +5%, similar to the boost increase.

I prepared the tune with the (assumed) Max Exhaust Pressure limits raised by 5% in the top end. Let's see..

In the meantime, I noticed these 3 "unknown boost" tables in VersaTuner that could be interesting.

To me, the numbers look like (potentially) turbo ratios. Perhaps turbo ratio limits. VersaTuner says the vertical axis is APP (accelerator pedal position) but it could be the wastegate duty cycle or also injection quantities, given the range).

I'm still pretty much against touching untested tables, but do you think these ones may be helpful? Do they resemble anything you saw in other ECUs (even better if it's Denso ECUs)?




I'm thinking they are turbo ratios as the stock ones range as follows:


The changes to the (assumed) max exhaust pressure limit tables brought no changes at all. I increased the limits by +5% in the top end, oscillations appears as always when I pass the 260 kPa.

Feels like something is mapped somewhere that triggers this oscillations.

I agree those values look like they might be target or max PRs, but again they may be scaled incorrectly so we are just guessing.

If raising them did nothing, they might not have been active, or they might be active, but they're higher than you're achieving, can achieve.

Personally I'd zero the correction table out and carefully test to confirm whether that's related to your oscillation or not, but you'll need to be very careful.

Yes, I will probably follow your advice. I will not completely 0 it, but I'm planning of halving the values on both side and see. The boost doesn't seem too sensitive, so it should be good enough.

It would be funny as hell if it wasn't depressing :)

I tried a quick test with the boost error control table halved, on both the sides.

Now.. these are the data from today (left) vs data from yesterday (right).. just as reminder, yesterday I tried to increase by 5% the "assumed" max exhaust pressure limits.. It's a second gear acceleration, on the same spot (a small ramp).

The results are so identical to make me wanna congratulate with the ECU:


I think I tried all the tables I could edit. I will probably have to lower the boost to stock or slightly more trying to not upset the boost control.

While not the result you were hoping for, what you've described is doing the best with the tables you have access to, and sometimes that's all you can do until further reverse engineering work can be performed to give you more tuning options.

Thanks for your support Mike, I guess finding the threshold where the oscillations don't kick in is the way to go now.

At the end, from a purely stoichiometric point of view, I don't need more boost. The lowest lambda is reached at 2000 RPMs where the tune is stock in terms of fuel quantities, while at top power I get to around 1.25+ with stock boost (estimated, I have a wideband oxygen sensor but no ECU estimation of lambda, so it's a rough assumption which is consistence with a calculation I made comparing mass airflow vs fuel injection quantities).

The problem is that EGT increases too fast towards the temperature limit, which is stock and will not be raised. It's fine for me to reach the limit after 20-25 seconds at full throttle in summer, but I should not reach it in a few seconds, otherwise I'm simply aiming for too much power that can't be managed.

I will try with incremental steps to raise the boost in the top band, 3500 - 4500, without surpassing the max MAP configured by Mazda which is 258 kPa. And let's see. I have plenty of logs so I can have an estimation of when oscillations kick in. Now here is summer, so if I can manage to make it work, it will probably work all the year.

Final update (I hope so ahah).

I made many tests, to understand the impact of the various tables one by one, and while I was able to improve the boost control in some cases, they ultimately all failed at some point.

So, I reviewed my initial tune making it slightly more gentle in terms of fuel scaling, but still delivering north than 200 HP above 4000 RPM.

I ensured the extra fuel is never delivered when I don't have the turbo at max pressure (there's a dip in mass airflow when the engine transitions from the first turbo to the second) and carefully mapped everything checking the estimated lambda for all the elevation ranges.

I also mapped the injection timings for the areas where I deliver extra fuel, keeping a very similar rate of anticipation as Mazda does and ensuring smooth transitions.

I tested everything and it works. No oscillations and max EGT are reached in around 20-25 seconds of WOT with around 25 degrees of external air temperature (at that point the ECU slowly reduces the fuel injection quantities to stabilize it). I was hoping for more, but I guess I will be good this way.

This is a screenshot showing the boost behavior in a rapid 2nd-3rd-4th gear pull:

These are the fuel scaling across the engine speed range (vs the stock 175 ps tune) and the estimated power output:

This is the estimated air to fuel ratio vs stock tune. Until 3000 RPM it's basically the same, then it climbs less:

Fantastic! Very well done. Great job sticking with it.

We usually reply within 12hrs (often sooner)

Need Help?

Need help choosing a course?

Experiencing website difficulties?

Or need to contact us for any other reason?