Knock Control User's Guide

Technical Library › Functions and TuningUpdated Sep 2026

Knock control is only as good as the detection setup behind it. If the ECU can't tell real detonation from valvetrain noise, it will either miss the event or pull timing for nothing. Here's how we set up Haltech knock detection and control, step by step, and what each setting really changes.

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 sensorNon-resonant (wideband) sensor
How it worksAn internal strip is tuned to ring at one engine-specific frequencyPasses a broad range of frequencies for the ECU to pick from
How to spot itScrew-in body, connector pointing away from the block, often one wireThrough-bolt mount, connector on the side, commonly two pins
With a Haltech ECUSome work, but frequency selection is meaningless and false triggers are more likelyLets 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.

SettingWhat it doesOur advice
Start SpectrogramRuns the frequency display for about 20 seconds, then stops on its ownPlan each pass before you hit it, the window is short
Knock FrequencyThe single frequency the ECU listens toFound by testing, unique to each engine
Start Angle (BTDC)Crank angle where the listening window opensStart at -10 degrees
DurationHow many crank degrees the window stays openBegin wide, around 60 degrees, then narrow it once you know where knock appears
Momentary Knock Ign AdvExtra advance added during a momentary knock testStart around 10 degrees and step up in 5 degree increments only if nothing happens
Momentary Knock DurationHow long the test advance is heldAbout 10 seconds; back off load if knock gets heavy
Knock Threshold (table)The signal level above which the ECU calls it knock3 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.

  1. 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.
  2. Get the engine fully warm. A cold engine resists knocking and will mislead you.
  3. 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.
  4. Start the spectrogram and apply load, roughly half throttle. With timing pulled back you should see only background noise.
  5. Trigger Momentary Knock and watch the display. Knock shows up as bright spots, typically red, and you'll usually hear it too.
  6. If nothing changes, raise the momentary advance by 5 degrees and try again. Some engines need a surprising amount before they knock.
  7. If it knocks hard, roll off the throttle. You only need enough to see where it sits.
  8. 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.

  1. Do power runs on the dyno and log the Knock Signal channel.
  2. Shape the threshold so it sits 3 to 5 dB above the signal everywhere. Expect several runs to get it even.
  3. Gradually add timing back, heading toward zero trim and then positive.
  4. Watch for the signal crossing the threshold. When it does, Knock Count rises and Knock Level shows how far over it went.
  5. 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.

SettingWhat it doesOur advice
ModeSingle bank or two independent banksUnbanked with one sensor
Short Term RetardTiming pulled when a knock event is seenThe 5 degree default usually works; more for knock-sensitive engines
Short Term Decay RateHow quickly that retard is given backStart at 0.5; lower holds retard longer, higher returns it faster
Hysteresis TimeLockout after an event before another can add retardKeep 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

SymptomUsually
Spectrogram is completely blankSensor unplugged, wired to the wrong pin, or not a compatible type
Background noise shows but the engine won't knockFuel octane too high to provoke it; test temporarily on a lower grade
Random knock counts with no timing changePoor signal to noise; try another harmonic with less background
Knock only flagged at high rpmThreshold too low where mechanical noise climbs; re-shape that region
Readings change after sensor was refittedMounting 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.