What knock actually is
Normal combustion is a flame front that starts at the spark plug and spreads across the chamber in a controlled way. Knock (you'll also hear detonation or pinging) is when part of the mixture lights off on its own, usually from a hot spot, and burns in an uncontrolled bang instead. The shock rings through the block, and that metallic ring is what you hear.
Left alone, it chews up engines fast. The classic signs on a teardown are pitted, sandblasted-looking piston crowns, then cracked ring lands and hammered rod bearings. The usual cause is too much ignition advance, but a lean mixture, poor cooling or an engine design that's simply prone to it can all contribute. Pulling timing is the quickest fix because it moves more of the heat out the exhaust instead of into the pistons and head.
For the background, our article on what knock is and why you should control it goes deeper.
Detection vs control
Haltech splits this job in two, and it helps to think of them separately:
- Knock detection is the listening part. A sensor bolted to the block converts vibration into a voltage, the ECU filters it down to one frequency, and compares that signal against a threshold you tune.
- Knock control is the reaction. When detection flags an event, the ECU retards ignition timing to stop it, then eases the timing back in.
Control is easy to set up. Detection is where the real work is, and it has to be right first. Haltech offers both on the Nexus VCU and on Elite 1000 and higher ECUs.
Choosing the right knock sensor
| Resonant sensor | Non-resonant (wideband) sensor | |
|---|---|---|
| How it works | An internal strip is tuned to ring at one engine-specific frequency | Passes a broad range of frequencies for the ECU to pick from |
| How to spot it | Screw-in body, connector pointing away from the block, often one wire | Through-bolt mount, connector on the side, commonly two pins |
| With a Haltech ECU | Some work, but frequency selection is meaningless and false triggers are more likely | Lets you select the exact frequency your engine knocks at |
For performance builds we use a non-resonant sensor. Haltech's own HT-011100 Bosch knock sensor is non-resonant and inexpensive, and it gives the ECU a wide, clean spectrum to work with. On a resonant sensor, knock tends to show up as vertical stripes across the whole spectrogram, so the frequency setting does little.
Wiring and mounting
On the Elite range, the dedicated knock input is pin A21 on the 1000 and 1500. The 2000 and 2500 add a second input on A22, which is what allows two-bank control. One sensor pin goes to the knock input and the other goes to Signal Ground. Our knock wiring article covers the Nexus side.
Torque matters more than people expect. The sensor's output changes with clamping force, and NTK specifies 2.0 to 2.5 kgf·m (roughly 14.5 to 18 lb-ft) with no grease and no washers under the sensor. An over- or under-torqued sensor can make your threshold table meaningless.
Before you start: what you need
- A dyno. You can't repeat this process reliably on the street.
- A car that's already running well: fuel where you want it and ignition timing in a safe, sensible range.
- Fuel that the engine can actually be made to knock on. With very high octane fuel, it may be impossible to provoke knock at all.
- The Knock page layout in ESP. If it isn't in your page list, use View / Load Page, open the folder closest to your screen resolution (res1366x768 if unsure) and load
Knock.page.
You also have to accept one uncomfortable fact: to teach the ECU what knock looks like, you have to make the engine knock, briefly and under control.
Detection settings at a glance
You'll find these under Main Setup / Functions / Knock Detection.
| Setting | What it does | Our advice |
|---|---|---|
| Start Spectrogram | Runs the frequency display for about 20 seconds, then stops on its own | Plan each pass before you hit it, the window is short |
| Knock Frequency | The single frequency the ECU listens to | Found by testing, unique to each engine |
| Start Angle (BTDC) | Crank angle where the listening window opens | Start at -10 degrees |
| Duration | How many crank degrees the window stays open | Begin wide, around 60 degrees, then narrow it once you know where knock appears |
| Momentary Knock Ign Adv | Extra advance added during a momentary knock test | Start around 10 degrees and step up in 5 degree increments only if nothing happens |
| Momentary Knock Duration | How long the test advance is held | About 10 seconds; back off load if knock gets heavy |
| Knock Threshold (table) | The signal level above which the ECU calls it knock | 3 to 5 dB above clean background noise |
For reference, the default window (start -10, duration 40) listens from 10 degrees after TDC through 30 degrees before it. We widen it first so we don't miss anything, then tighten it.
Step 1: find the knock frequency
You only do this once per engine combination.
- Put conservative numbers in the Ignition Base table, then use Ignition Overall Trim to take out a few more degrees (around -3) as a safety margin.
- Get the engine fully warm. A cold engine resists knocking and will mislead you.
- Hold it around 1500 rpm on the dyno. Oil pressure is healthy, piston speed is low, and the engine is quiet enough that you can hear knock if it happens.
- Start the spectrogram and apply load, roughly half throttle. With timing pulled back you should see only background noise.
- Trigger Momentary Knock and watch the display. Knock shows up as bright spots, typically red, and you'll usually hear it too.
- If nothing changes, raise the momentary advance by 5 degrees and try again. Some engines need a surprising amount before they knock.
- If it knocks hard, roll off the throttle. You only need enough to see where it sits.
- Hover over the brightest spot. The display shows its frequency; type that into Knock Frequency, then stop the spectrogram and confirm.
Step 2: build the threshold table
Now the ECU knows where to listen. It still needs to know what counts as "loud." That's the Knock Threshold table.
- Do power runs on the dyno and log the Knock Signal channel.
- Shape the threshold so it sits 3 to 5 dB above the signal everywhere. Expect several runs to get it even.
- Gradually add timing back, heading toward zero trim and then positive.
- Watch for the signal crossing the threshold. When it does, Knock Count rises and Knock Level shows how far over it went.
- Pull the timing back out. If the signal drops back below threshold, detection is working.
From then on, Knock Count and Knock Level become a tuning aid: they tell you when you've found the edge of timing.
Step 3: turn on knock control
With detection trustworthy, control is mostly switching it on. See knock control for the Nexus equivalents.
| Setting | What it does | Our advice |
|---|---|---|
| Mode | Single bank or two independent banks | Unbanked with one sensor |
| Short Term Retard | Timing pulled when a knock event is seen | The 5 degree default usually works; more for knock-sensitive engines |
| Short Term Decay Rate | How quickly that retard is given back | Start at 0.5; lower holds retard longer, higher returns it faster |
| Hysteresis Time | Lockout after an event before another can add retard | Keep it short, 0.1 to 0.3 seconds |
Long term trim
Long term trim learns retard into a table that shares the Ignition Base axes, so the engine keeps a little less timing where it has knocked before. It's off by default. Key points:
- Long Term Retard: how much each event teaches a cell. Around 0.5 degrees; smaller learns too slowly, larger learns too coarsely.
- Max Long Term Retard: the cap per cell, commonly around 5 degrees, more on a knock-prone engine.
- Reset clears the learned values, and Apply To Base Table folds them into your ignition map. With two banks it applies what's common and leaves the differences in the trims.
- Elite ECUs don't reverse learn. Once you fix the cause, the learned retard stays until you reset or apply it.
Bank 2 long term trim only exists on the Elite 2000 and 2500 with a second sensor and a second bank configured. More in knock long term trim.
Channels worth logging
- KnkThresh: the current threshold from your table.
- Knk1 Sig / Knk2 Sig: the raw filtered signal from each sensor.
- Knk1 Lvl / Knk2 Lvl: how far the signal is over threshold.
- Knk1 Count / Knk2 Count: the number of detected events.
- Knock B1 IgnCorr / Knock B2 IgnCor: short term retard being applied right now.
- KnockB1 LTT / KnockB2 LTT: learned long term retard in use.
- Knock LightOutputState: the state of a knock warning light output, if configured.
Troubleshooting
| Symptom | Usually |
|---|---|
| Spectrogram is completely blank | Sensor unplugged, wired to the wrong pin, or not a compatible type |
| Background noise shows but the engine won't knock | Fuel octane too high to provoke it; test temporarily on a lower grade |
| Random knock counts with no timing change | Poor signal to noise; try another harmonic with less background |
| Knock only flagged at high rpm | Threshold too low where mechanical noise climbs; re-shape that region |
| Readings change after sensor was refitted | Mounting torque different; torque it to spec and recheck |
Knock control FAQ
Can knock control replace careful timing tuning?
No. It's a safety net for bad fuel, heat soak and surprises. Tune timing properly on the dyno and let knock control catch the exceptions.
Why do I need to make the engine knock?
Every engine rings at its own frequency. Without a controlled knock event, you're guessing which frequency to listen to, and a wrong guess means the ECU is deaf to the real thing.
Which knock frequency should I pick if I see several?
Knock shows up at harmonics. Choose the one with the biggest gap between knock and normal background noise.
Want help setting this up on your engine? Book a free 30-minute consultation, or see our knock threshold article for the Nexus table.




