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

Ends in --- --- ---

OEM vs. Bosch Knock Sensor

Practical Standalone Tuning

Forum Posts



Tech Articles

Discussion and questions related to the course Practical Standalone Tuning

= Resolved threads


For my current 2JZ-GTE, high performance build, I purchased (Qty. 2) new OEM, single-wire, knock sensors, but am now wondering if I should have upgraded to Bosch two-wire/shielded, knock sensors. I'm running a Haltech Elite 2500.

Any direction would be MUCH appreciated!

Rich Laws

Akron, OH -- USA

Yeah, in my experience not many ECU's will work well with the 2J knock sensors, they output very high voltage when excited and on most ECU's will saturate the input and start clipping. I have no specific Haltech experience but have seen the same problem on Link with the 2J sensor and Motec M** with the similar 3SGE sensor. The factory ecu must have a low impedance input or something to make these work.


Thanks so much for your fast and valuable information. I'm going to upgrade to the Bosch, non-resonant donut style sensors.

Rich Laws

Akron, OH -- USA

The Bosch Donut Knock Sensor appears to be M8 hole and the factory 2JZ port is 12M 1.25; any advice on how much to make this work?



Akron, OH

Toyota part number 90126-08046

@adam - are you in a position to be able to tell us how the knock control system works in a link ecu?

Does it "look" for a knock sound at a frequency - or just go based off a "volume has been exceeded" type system? is it windowed? can you change the gain level for the input for "noisy engines" ?

The knock inputs are initially amplified with a variable gain amp (user-configurable) then passed on to a dedicated knock DSP, this has a user-configurable frequency filter (a pic of current available frequency settings below), then it is windowed and allocated to individual cylinders. In the conventional knock mode there is also a user-configurable gain (effectively a "volume knob") for each cylinder if for example cyl 2&3 are closer to the sensor and show more noise. We do the windowing slightly different to most other ECU's, we base the window start and end on the ignition event rather than an absolute crank position. This was chosen as testing has shown the crank angle that knock will occur at does have a significant influence from the ignition event. As you run more retarded ignition knock occurs later in the cycle so we feel it is more fitting to move the window with ignition angle.

We then have 2 different knock processing strategies. We do the conventional one which most other ecu's use and most people are familiar with where you have a 3D table of knock threshold and if the filtered/windowed knock value exceeds that threshold it is considered knock. You can then apply retard or extra fuel or both to suppress that knock. In our ecu any trim that is applied is stored in a trim table (for each cylinder if you like), so next time the engine passes through that same cell that previously knocked it will get the same retard/fuel trim applied. Only after the engine has operated in that same cell for a period of time without knock detected the ecu will start removing those trims.

We have recently added a new knock processing strategy that we called "Normalised knock mode". This works similar to what some of the high-end ecu's call "adaptive knock control". With this method the ecu compares the noise from each combustion event to a previous value that was learned from the last few combustion events on the same cylinder. If the noise level is the same or less than the learned value then it knows it is not knocking, if the noise of one combustion event is suddenly higher than the rest then it is assumed knock. This mode takes a bit more time to set up if it is an engine you haven't done before, but is very powerful and reliable once set up. This mode has the advantage over the conventional method in that the "knock level" is not affected by background noise, temperature, boost, advance, tappet clearance, distance to sensor etc. Knock threshold generally only needs to be a single value in this mode (as opposed to a 3D table in the conventional mode) and no individual cylinder gains are needed. Once it is set up you can change the tune significantly (or rebuild the engine, change pistons etc) with no adjustment needed to the knock control. If you tune many of the same engines this mode also copies from car to car very well with almost no adjustment needed.

Wow - Thank you for the detailed information.

That was way more than I expected and very understandable - cheers for the time writing it up for us all.

Adam is there any guide on how to setup normalised knock control from scratch?

There is not much explanation in help files, and since i'm migrating to G4X from G4 at the moment i want to set up knock controll with new method but there are alot of parameters i dont realy understand and whoul like to know is there any guide or tips available?

@Vladimir, remind me if I dont reply here in a couple of days, I will try to put some thoughts together when I get some time.


Remind you as you asked

Ok, I can see this will turn into a novel before I have even started, but I will try to give the shortest explanation of the set-up of Normalised Knock Mode that I can.

I guess the main thing to understand with normalised knock mode is you are comparing the combustion "noise level" of the current combustion event to the average noise level of a certain number of preceding combustion events in the same cylinder. This is easy when the engine is operating under relatively stable conditions, the combustion "noise level" in a single cylinder will be relatively similar from combustion event to combustion event (assuming no knock). If the current combustion event noise level is exactly the same as the learnt noise value (the averaged value it is comparing to), then the reported "knock level" will be 1.00. And if the current combustion event activity level is say twice the learnt value then your reported knock level will be 2.00.

So steady state is easy - the tricky bit is when load or RPM suddenly increases you will also have a sudden increase noise level for a few combustion events - and that means you are then comparing a "noisy combustion event" to the learnt value (which was averaged starting from a several cycles ago when things were quieter) so you will have a sudden increase in reported knock level during these transient conditions.

I will call these transient events where you expect to see an increase in reported knock level "Delta conditions" in this explanation. The settings menu in PC Link "Normalise Delta Settings" is where we specify what is considered a "delta condition" and also what changes we make to the "comparison" during those delta conditions. The delta condition can be triggered by TPS delta, Engine speed rate of change and MAP delta. When the delta condition is triggered, we apply a "delta threshold gain" to the knock threshold - so for example if your normal steady state knock threshold is 2.00, and you had a delta threshold gain of 1.5, then the knock threshold would be temporarily increased from 2.00 to 3.00 when the delta conditions are present. The "delta hold" setting is how long the increased threshold is used for the comparison before reverting back to the normal steady state threshold. You can also specify different learning rate settings during delta conditions so for example during delta conditions you can use a smaller number of combustion events for your average so that the ecu is not looking as far back in history. I haven't needed to change the learning rate for the road car engines I have experimented with (so "normal" will probably work for most) but say something like a low inertia jetski engine that leaps out of the water may benefit from a quicker learning rate when RPM ROC is high. There are also user-definable filters for all of these delta triggers as for example "Engine speed ROC is usually very noisy so you need to filter it to remove some noise to make it useful for triggering the delta conditions.

With normalised knock mode you will spend most of your time tuning these delta settings, The knock threshold can usually be a single value so doesn’t take much work. It is an iterative process where you adjust the settings until you have a threshold that automatically steps up under transient conditions so that it always stays above the knock level and drops back to the steady state threshold as soon as the knock level reduces back to normal. Use a time plot and overlay knock threshold on top of the individual cylinder knock levels then on a dyno you can isolate some of these delta triggers to make it easier - for example you can hold RPM constant and just test what happens with sudden TPS input, you can hold TPS constant and just do a sudden RPM change etc. MAP is more difficult to isolate. To guide you, you can plot the Knock TPS/MAP/Engine speed variables (these have the filtering applied) so you can see how these effect knock level and at what value they cause enough change in knock level that you need to trigger the delta condition. There is also a "Knock load status" parameter that you can use to keep an eye on what delta caused the delta condition to be triggered when it is hard to tell.

Although the normalised mode looks a bit overwhelming initially, it is relatively intuitive once you start playing around and working your way through it, there are just a lot of new settings that aren’t too familiar and it is not always clear what they do just from the name. Having the help browser view setup on your page will describe any setting that you click on so may help. There are a lot of options and settings in there but you will probably find you don’t need many of them, for instance in our Subaru test car I didnt need any TPS or RPM ROC filtering, the learning rates are just set on normal and many of the tables only have a single value in them.

I will add a few pictures that may help.

This first pic is at the start of the knock tuning where I didnt have the delta settings quite right. Ign timing was already tuned and close to MBT in this case but I was happy enough there is no knock present. You can see around the time mark 0:01 the RPM is stable but when the TP is opened and MAP increases the knock levels (labelled "knock table # level") increase momentarily (between about 0:01 & 0:02) and are close to touching the threshold (yellow trace). You can see the threshold spikes up twice in that same area. Ideally the threshold would have stepped up just before 0:01 and stayed up until about 0:02 before stepping back down to the normal level of 2.00 so it is a comfortable margin above the knock level the whole time. Most likely just increasing the "delta hold" would have made it behave how we want in this area. From about 0:03 to 0:11 we are at WOT, RPM & MAP are stable everything looks happy. At about 0:11.5 when I let the dyno ramp start you can see the threshold momentarily spikes up when it didn't actually need to - knock level didn't increase there. Since TP and MAP were stable at that point it probably means my RPM delta setting was more sensitive than it needed to be - or it possibly needed a bit of filtering. At about 0:12.5 when the boost starts ramping up quickly you can see cyl 4 knock level spikes up so that needed the knock threshold to step up there but it shouldn't have stepped up in the other areas before and after that point where it was not needed.


Pic 2 below is my final testing after optimising my settings, ign timing is now close to MBT all over except I have added an extra 5deg advance in a single cell in the ign table at 3500 to purposely make it knock. I have added IAT on the bottom to show I was testing near worst case conditions. Knock threshold now sits nicely above the knock levels (its possibly getting a bit close at 1:10 when I opened the throttle so could maybe have used a little tweak there). When I let the dyno go at about 1:12.5 the RPM ROC delta is triggered and the threshold steps up so it clears the little increase in knock level we see at 1:13. Nice. At about 1:14.5 you can see a bump in the ign angle when it passes through the cell in the ign table that I fudged with the +5deg, we get a clear knock event on Cyl 4, ecu instantly pulls 4 deg out of cyl 4 so knock level drops back under threshold (you can actually even see cyl 4 noise level drops below all the others after it had the knock retard).

Thank you Adam

Awesome explanation.

Advise you copy it to link forums, as i was using search there before asking here )

That is very impressive knock control!

Thanks for the quality explanation Adam!

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?