I'm in the process of interpreting my BMW M5's ECU binary with the aid of some nifty scripting and rather informative forum posts.

One of the things I've found is that there are knock limit maps for each cylinder.

While this is somewhat expected since the car has 8 knock sensors, the thing that intrigues me is that each map is slightly different. I would have expected to see 8 identical maps, assuming that each cylinder endures identical conditions (limits are based on RPM and relative fill).

I'm trying to understand if there is a physical reason for this. There are a few sources of inter-cylinder variation:

  • fuel rail pressure, though I don't expect a huge variation between individual fuel injectors
  • intake air pressure, bearing in mind that this vehicle has individual throttle bodies for each cylinder


  • Is it common to have individual maps for each knock sensor on ECU's? I'm curious to know how other manufacturers do this as well

  • What inter-cylinder variations could be significant enough to warrant a unique map for each knock sensor?

Knock maps (for the inquiring minds)

Knock Map Montage

  • 3
    The temperature profiles of each cylinder will be ever-so-slightly different too - the ones on the ends of each bank will have only one adjacent cylinder rather than two so will be a tiny bit cooler... They'd also be affected by differing coolant & lubricant paths and other items in the engine bay. I can't imagine it'd be a big enough difference to affect anything though - probably not even measurable with normal equipment!
    – Nick C
    Apr 1 '15 at 13:54

Yes, it is quite common. I initially said that it isn't, but I was wrong. I had another look at my Subaru's mapping and saw that there are more ignition timing tables than I first thought. Here's a complete list of tables (note the greyed out ones):

enter image description here

Factors that could warrant separate knock maps for each cylinder would include the following:

  1. differences in ability to hold pressure (think of a leakdown test).
  2. different heat profiles between the cylinders.
  3. inability of the fuel injectors to keep up with demand under Open Loop conditions.

Most manufacturers of sports cars will have one table each that manages FLKC*, FBKC* and IAM* and will apply the safest correction value across all cylinders. In fact, only Cylinder #1 is actively monitored for knock and there is only one acoustic knock detector (a microphone basically) for all cylinders.

Fine-learning knock control (long term stored values)

Feedback knock correction (immediate response to knock event. Normally under Open-loop)

Ignition Advance Multiplier (the more this deviates from normal, the worse the state of your engine WRT knocking).

  • Nice to see how others do it. I'm not sure about points 1 and 3 though... if these are static maps, why would the baseline compression numbers and fuel injectors vary across different cylinders for a brand new engine?Remember that this is a mass-produced engine, not something custom-tuned for a single racecar.
    – Zaid
    Apr 1 '15 at 19:19
  • They're not "static maps". They're just shared by all the cylinders. You could call them common maps. Static maps refer to Carb engines. If you take a brand new engine and do a leakdown test, you'll see the average pressure a cylinder can hold may be around 190psi, but some will hold 180psi, others will hold 195psi before leaking. Fuel injectors are much better at distributing fuel to far-off cylinders, but they can still go bad. I was just guessing as to the reason. Still, I don't think it's absolutely necessary to have a unique map per cylinder. That's a bit overkill. Apr 2 '15 at 9:47
  • By static, I mean that the maps are not changing/evolving over time. Not sure what you're referring to regarding carb engines. Also, leakdown is something which will vary from one manufactured unit to another, so why would BMW fix the map across all manufactured units just for leakdown variations? I agree with you that a unique map for each cylinder is overkill, which is exactly why I'm asking this question in the first place - i.e. what is the motivation to do this on a mass-produced engine?
    – Zaid
    Apr 2 '15 at 11:34
  • The maps DO change over time. Specifically, the short term and long term fuel trims and the FLKC, FBKC and IAM tables (I assume the tables you are looking at are the FLKC tables). The only other reason I can think of is that BMW wants to limit the amount of power you lose if a knock event occurs, so they created the ability to pull timing on just one cylinder and leave the rest alone. That means one cylinder will work at 99% and the other 7 (or is that 9?) will all still work at 100%. Apr 2 '15 at 12:22
  • I was wrong. See my update. Apr 13 '15 at 10:39

After consultation with a BMW forum, an expert in MS S52 reverse-engineering had this to say:

As for why BMW has multiple knock maps - it's probably just because they could. Their engineers probably also experimentally determined what the signals look like when the engine is knocking.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.