Retrofitting 2-wire knock sensor?
Edit: How many hours would you estimate it would take to calibrate a knock sensing system to within 50% false positive/50% false negative?
No clue how many hours it would take to get to "half of the time my computer is robbing me of performance for no reason." But there's a member here on the forums who was part of the team that worked on the C4 knock filtering system, so use the search function and check out user 69427's posts on the subject. He's a wealth of knowledge.
As always, your goal is your goal, your equipment is your equipment. If you only care about a system that will yank timing at every single jitter in the knock signal because that's the safest way, then that's pretty darn easy to do. It's when you want to actually have a proper knock feedback system like the OEMs had that keeps false retard to a minimum while maximizing safety that you'll probably find yourself in over your head.
This seems like a damned if you do, damned if you don't situation. I perceive three options:
- Back out a few degrees for safety. You lose power across the board all the time.
- Leave it right at the edge of knock. You get good power until you get a bad tank of gas, an injector clogs, you heat soak your intercooler, etc., and you blow your engine.
- Add knock control. Depending on invested effort and conservativeness, you get something between #1 and #2. Worst case is that you're either over-sensitive and lose power all the time or under-sensitive and you hurt the engine. Or, you get it right and only lose power when it knocks. (I suppose there's a third worst case where it's a total swing and a miss, pulling timing at all the wrong times but not when it's actually knocking.)
Generally if you want reliability, you go #1. If you have money and need bleeding-edge performance and don't mind rebuilding your motor (or you're a YouTuber), you go #2. #3 is if you want to get funky with the experimentation. Now luckily the chances of pulling timing when there's no knock and yet not pulling timing when there is is pretty much zero these days. You'd have to get the numbers so far out that you'd have to do it that wrong on purpose. So instead, you're far more likely to have #3 act exactly the same as #1. That said, if you actually spend the time and money on learning how knock filtering works, and get it really dialed in for your specific operationg environment? Well then, you've got yourself quite the little experiment indeed.
Generally if you want reliability, you go #1. If you have money and need bleeding-edge performance and don't mind rebuilding your motor (or you're a YouTuber), you go #2. #3 is if you want to get funky with the experimentation. Now luckily the chances of pulling timing when there's no knock and yet not pulling timing when there is is pretty much zero these days. You'd have to get the numbers so far out that you'd have to do it that wrong on purpose. So instead, you're far more likely to have #3 act exactly the same as #1. That said, if you actually spend the time and money on learning how knock filtering works, and get it really dialed in for your specific operationg environment? Well then, you've got yourself quite the little experiment indeed.
It looks like a common method of calibrating a knock system involves hooking the knock sensor to an amp and then to a pair of headphones. Are you familiar with this method? I imagine I'd want to listen to the stock sensor rather than a flat response one. Somehow, I have no feel for what knock sounds like aside from things I've read and a few videos I've watched. Would I know by listening to the sensor?
I was also thinking of datalogging the knock sensor output and passing it through a FFT, but I'm not sure what that would practically get me when my only input in the tune is "sensitivity" vs RPM and MAP. In theory, I could build my own filtering circuitry to tell the MaxxECU when it's knocking, but I don't see that ever happening. Is that the method you're referring to for "getting it really dialed in"?
I wonder if modern knock control systems can/could detect false knock by watching how knock levels respond to spark retard? If not, it's feasible that false knock could pull much more timing than the few degrees that #1 entails.
I wish I could find more info on how the system works. I assume the sensitivity is a threshold noise level in a certain frequency range, but I can't be sure.
A lazy way to calibrate sensitivity could be to datalog the car with safe timing for a few weeks, bin the data by RPM and MAP, and choose the 90th or 95th percentile in each bin as the sensitivity there. Thoughts?
Last edited by C4ProjectCar; May 25, 2021 at 01:18 PM.
The above is just to tune the 'filter' part; the part that tells your computer "there is knock happening." How the computer will interpret that is another step entirely. So the feedback component of responding to knock with retarding ignition and watching the knock respond is a separate issue.
Differing opinion here.
If you are tuning till it knocks and detonates and yanking a few degrees, regardless of NA or FI, you or your tuner are doing it wrong. If you are boosted and do that, might as well say goodbye to your ring lands if it happens on boost. For the average home gamer, tuning to the very brink of knocking isn't just dangerous, it's stupid. On an aluminum-headed motor, there is a small "gap" between useful advance(read as torque increase) and knocking, this all has to do with the head design and efficiency, typically the more efficient the head, the larger this gap is. GM has access to in-head temperature and pressure transducers, so they can set the timing curve based on peak cylinder pressure at TDC, this is all so the average consumer doesn't have to worry about knock while GM can push the limit on the timing curve for emissions purposes.
A well-tuned motor will never knock under normal circumstances and depending on knock retard to save your motor is incredibly unwise. The only times you should see knock is bad gas, incorrect grade of gas, high ambient temps, high coolant temps, etc.
So what is the best way to tune a motor and get dyno-like results?
Completely disable knock-based spark retard, fill your tank up, and head out to a nice empty strip where you can make a few good pulls at WOT.
Datalog RPM delta over time(DoT) with a retarded safe timing map, the unit for RPM DoT is RPMDelta/s or the rate at which RPM rises per unit of time, anytime rate is mentioned in regards to RPM we are usually talking about horsepower, which is defined as the rate at which work(torque) is done. Some ECUs differ in their spark control algorithm so you'll also want to datalog whatever the axis' of the spark control tables are, for most of them, you'll need to datalog your MAP sensor reading and RPM, if your ECU tuning software supports it, a cell trace makes this process much simpler. Looking at the data, you'll be able to extrapolate a few things, first thing, using the RPM and MAP readings, you'll be able to pinpoint what cell you are at in the ignition table at that point in the datalog, for that same cell you will also be able to assign it the RPM DoT value for that moment of time in the log, I'll explain the significance of these in a bit. To tune it, you are going to slowly begin advancing timing and making pulls UNTIL RPM DoT stops increasing for the specific cells you are tuning, it's going to take a long time, it's going to seem slow, but doing it this way is the exact same way it would be done on a dyno. I find it much easier to do this by creating a table identical to the ignition table in Excel, but instead of filling it with the appropriate advance for that cell, it is filled with the RPM DoT data, this makes it much easier to track changes.
Here's how it works.
HP or the rate at which work is done can be calculated using (torque*RPM)/5252, now using RPM DoT we have some measure of HP, not a direct one mind you, but some measure of it, an increase in RPM DoT can and will be seen as an increase in HP. Since we can safely assume that RPM DoT = HP plus or minus some complex vehicle dynamics math(check out virtual dyno on how this can actually be used to get HP), we can also safely assume and simplify the HP equation into RPM DoT = (some measure of torque * RPM)/5252. Since we are doing this cell by cell, RPM for that cell is a constant, so any increase or decrease in RPM DoT for that cell is a direct result of torque increasing or decreasing. On a dyno, a tuner will advance timing until the engine stops making more torque, you are doing the same thing, but you will not be able to hold at a cell like a dyno can. Also unlike a dyno, you will not be able to hit every cell, but there will be some obvious trends in the ignition table so simply smoothing the table to cover those values is good enough.
Using this technique does two things, puts you at peak efficiency for your motor which means very little power is left on the table and keeps you safe with or without knock sensors for nominal operation.
It's a lot of info in a very short space so it may be a bit confusing, and I apologize for that.
Every time I see someone say they tuned it till it knocks and pulled a few degrees it becomes increasingly clear why people think knock sensors are a necessity...
Last edited by ThatOneKid; May 25, 2021 at 07:18 PM.
Differing opinion here.
If you are tuning till it knocks and detonates and yanking a few degrees, regardless of NA or FI, you or your tuner are doing it wrong. If you are boosted and do that, might as well say goodbye to your ring lands if it happens on boost. For the average home gamer, tuning to the very brink of knocking isn't just dangerous, it's stupid. On an aluminum-headed motor, there is a small "gap" between useful advance(read as torque increase) and knocking, this all has to do with the head design and efficiency, typically the more efficient the head, the larger this gap is. GM has access to in-head temperature and pressure transducers, so they can set the timing curve based on peak cylinder pressure at TDC, this is all so the average consumer doesn't have to worry about knock while GM can push the limit on the timing curve for emissions purposes.
A well-tuned motor will never knock under normal circumstances and depending on knock retard to save your motor is incredibly unwise. The only times you should see knock is bad gas, incorrect grade of gas, high ambient temps, high coolant temps, etc.
So what is the best way to tune a motor and get dyno-like results?
Completely disable knock-based spark retard, fill your tank up, and head out to a nice empty strip where you can make a few good pulls at WOT.
Datalog RPM delta over time(DoT) with a retarded safe timing map, the unit for RPM DoT is RPM/s or the rate at which RPM rises per unit of time, anytime rate is mentioned in regards to RPM we are usually talking about horsepower, which is defined as the rate at which work(torque) is done. Some ECUs differ in their spark control algorithm so you'll also want to datalog whatever the axis' of the spark control tables are, for most of them, you'll need to datalog your MAP sensor reading and RPM, if your ECU tuning software supports it, a cell trace makes this process much simpler. Looking at the data, you'll be able to extrapolate a few things, first thing, using the RPM and MAP readings, you'll be able to pinpoint what cell you are at in the ignition table at that point in the datalog, for that same cell you will also be able to assign it the RPM DoT value for that moment of time in the log, I'll explain the significance of these in a bit. To tune it, you are going to slowly begin advancing timing and making pulls UNTIL RPM DoT stops increasing for the specific cells you are tuning, it's going to take a long time, it's going to seem slow, but doing it this way is the exact same way it would be done on a dyno. I find it much easier to do this by creating a table identical to the ignition table in Excel, but instead of filling it with the appropriate advance for that cell, it is filled with the RPM DoT data, this makes it much easier to track changes.
Here's how it works.
HP or the rate at which work is done can be calculated using (torque*RPM)/5252, now using RPM DoT we have some measure of HP, not a direct one mind you, but some measure of it, an increase in RPM DoT can and will be seen as an increase in HP. Since we can safely assume that RPM DoT = HP plus or minus some complex vehicle dynamics math(check out virtual dyno on how this can actually be used to get HP), we can also safely assume and simplify the HP equation into RPM DoT = (some measure of torque * RPM)/5252. Since we are doing this cell by cell, RPM for that cell is a constant, so any increase or decrease in RPM DoT for that cell is a direct result of torque increasing or decreasing. On a dyno, a tuner will advance timing until the engine stops making more torque, you are doing the same thing, but you will not be able to hold at a cell like a dyno can. Also unlike a dyno, you will not be able to hit every cell, but there will be some obvious trends in the ignition table so simply smoothing the table to cover those values is good enough.
Using this technique does two things, puts you at peak efficiency for your motor which means very little power is left on the table and keeps you safe with or without knock sensors for nominal operation.
It's a lot of info in a very short space so it may be a bit confusing, and I apologize for that.
Every time I see someone say they tuned it till it knocks and pulled a few degrees it becomes increasingly clear why people think knock sensors are a necessity...
I made a tool to attempt to recreate the power curve based on RPM slew rate, as you describe, but the 4Hz rate of ALDL and some noise in the RPM signal were killing me. It took a lot of smoothing and combining data from the tach and the VSS to get anything remotely usable. I'm excited to have better logs I can use for that. I may even be able to have the MaxxECU just do the math itself so it directly logs calculated power output. You may be simplifying, but I believe the RPM delta gives you torque. Torque = (moment of inertia) x (angular acceleration), and RPM/s is a unit of angular acceleration.
A couple of questions:
- Why use MAP and RPM to back into spark advance rather than just getting the advance from the log?
- Is it really advisable to disable spark advance when tuning ignition? I think it's not outside the realm of possibility that peak BMEP would be attained at timing greater than the knock limit in some lower-RPM cells, especially on an older engine like an SBC. I would be more comfortable leaving KR engaged and just disregarding any log points with KR ≠ 0.
[RPM/s]/60/*2*pi*([tire diameter in inches]/2)^2*[car weight in lb]/32.174/[final drive ratio]^2/[transmission ratio]^2
This doesn't account for rotating/reciprocating mass in the drivetrain, which is significant in low gear.
Last edited by C4ProjectCar; May 25, 2021 at 06:06 PM.
Completely disable knock-based spark retard, fill your tank up, and head out to a nice empty strip where you can make a few good pulls at WOT.
Datalog RPM delta over time(DoT) with a retarded safe timing map, the unit for RPM DoT is RPM/s or the rate at which RPM rises per unit of time, anytime rate is mentioned in regards to RPM we are usually talking about horsepower, which is defined as the rate at which work(torque) is done. Some ECUs differ in their spark control algorithm so you'll also want to datalog whatever the axis' of the spark control tables are, for most of them, you'll need to datalog your MAP sensor reading and RPM, if your ECU tuning software supports it, a cell trace makes this process much simpler. Looking at the data, you'll be able to extrapolate a few things, first thing, using the RPM and MAP readings, you'll be able to pinpoint what cell you are at in the ignition table at that point in the datalog, for that same cell you will also be able to assign it the RPM DoT value for that moment of time in the log, I'll explain the significance of these in a bit. To tune it, you are going to slowly begin advancing timing and making pulls UNTIL RPM DoT stops increasing for the specific cells you are tuning, it's going to take a long time, it's going to seem slow, but doing it this way is the exact same way it would be done on a dyno. I find it much easier to do this by creating a table identical to the ignition table in Excel, but instead of filling it with the appropriate advance for that cell, it is filled with the RPM DoT data, this makes it much easier to track changes.
I'm not questioning the method itself, just questioning the logic of requiring a much more dangerous environment to do it.
The Best of Corvette for Corvette Enthusiasts
I made a tool to attempt to recreate the power curve based on RPM slew rate, as you describe, but the 4Hz rate of ALDL and some noise in the RPM signal were killing me. It took a lot of smoothing and combining data from the tach and the VSS to get anything remotely usable. I'm excited to have better logs I can use for that. I may even be able to have the MaxxECU just do the math itself so it directly logs calculated power output. You may be simplifying, but I believe the RPM delta gives you torque. Torque = (moment of inertia) x (angular acceleration), and RPM/s is a unit of angular acceleration.
A couple of questions:
- Why use MAP and RPM to back into spark advance rather than just getting the advance from the log?
- Is it really advisable to disable spark advance when tuning ignition? I think it's not outside the realm of possibility that peak BMEP would be attained at timing greater than the knock limit in some lower-RPM cells, especially on an older engine like an SBC. I would be more comfortable leaving KR engaged and just disregarding any log points with KR ≠ 0.
[RPM/s]/60/*2*pi*([tire diameter in inches]/2)^2*[car weight in lb]/32.174/[final drive ratio]^2/[transmission ratio]^2
This doesn't account for rotating/reciprocating mass in the drivetrain, which is significant in low gear.
I had a delta in there, but it seems the forum doesn't like greek characters, which is strange since I've used them before here I believe. RPMDelta/s here on out.
The actual advance value is worthless to know, you are looking for the greatest RPMDelta/s in each individual cell, so you need to backtrack with MAP and RPM to find which cell you are in, this is where the cell pointer helps.
That works too, but KR transitions and smoothing factors will greatly impact your results, even though KR is zero, it doesn't mean you are getting the advance that is in the table.
This method should always be done like a dyno, locked in your 1:1 gear
I would never condone doing it on a public road, and I hope that isn't what people thought when I said "an empty strip" I use an abandoned private airstrip near me with permission from the owners and a $50 entrance fee for the day. There is one dyno in my area, $350 an hour for equipment fees, no self-tuning, can't be in the car while it's on the dyno, it might be way more affordable for others, but in my area, it definitely isn't worth it.
I had a delta in there, but it seems the forum doesn't like greek characters, which is strange since I've used them before here I believe. RPMDelta/s here on out.
The actual advance value is worthless to know, you are looking for the greatest RPMDelta/s in each individual cell, so you need to backtrack with MAP and RPM to find which cell you are in, this is where the cell pointer helps.
That works too, but KR transitions and smoothing factors will greatly impact your results, even though KR is zero, it doesn't mean you are getting the advance that is in the table.
This method should always be done like a dyno, locked in your 1:1 gear
I would never condone doing it on a public road, and I hope that isn't what people thought when I said "an empty strip" I use an abandoned private airstrip near me with permission from the owners and a $50 entrance fee for the day. There is one dyno in my area, $350 an hour for equipment fees, no self-tuning, can't be in the car while it's on the dyno, it might be way more affordable for others, but in my area, it definitely isn't worth it.
I wouldn't have thought that commanded spark would differ from the tune if KR was zero. Weird.
Why the 1:1 gear? I've really never understood that. A 1:1 with a 3.07 rear end is the same as 0.75:1 with a 4.10. A higher gear minimizes the impact of inertial effects, but then why not use 5th? The only advantage I can think of is maybe slightly lower transmission losses, but that's irrelevant unless you're looking for that big number.
That makes sense, especially if you can get a day at the airstrip for that cheap. Have you ever put it on the dyno to validate the RPM slew method?
Last edited by C4ProjectCar; May 25, 2021 at 07:29 PM.
I wouldn't have thought that commanded spark would differ from the tune if KR was zero. Weird.
Why the 1:1 gear? I've really never understood that. A 1:1 with a 3.07 rear end is the same as 0.75:1 with a 4.10. A higher gear minimizes the impact of inertial effects, but then why not use 5th? The only advantage I can think of is maybe slightly lower transmission losses, but that's irrelevant unless you're looking for that big number.
That makes sense, especially if you can get a day at the airstrip for that cheap. Have you ever put it on the dyno to validate the RPM slew method?
Some ECU's report KR differently, I can't remember what ECU it was, but it reported KR at 0 but there was a smoothing factor active that was messing with the advance well after the knock event, made for some very funky results that progressively got worse.
I've never used RPM DoT to calculate HP or torque, just to tune. The two times I did get to dyno a car after a street tune we spent very little time on the parts we were able to hit during the street tune and focused on the parts of the table where the dyno's RPM hold let us hit each cell. IIRC peak HP was off by 15BHP between the baseline and final result, but the car ran much smoother especially down low.








