Speeduino is now on Github Sponsors (Rather than Patreon): https://github.com/sponsors/noisymime
For discussion of Speeduino compatible boards designed / built by other members of the forum and for guidance around making such a board
By filipesbp
I'm thinking how to do a stand-alone knock monitor with another Arduino board: To start an Arduino Uno with a TPIC8101;
I have read another topics and it seems for me that the TPIC8101 by itself is not enough, it needs to know at what rpm is.
So I'm asking if I put together a TPIC8101 with an input pin (ex: from inj 1) to get the threshold vs RPM and some leds for output that should work?

What is needed to have a "good" knock monitor?
  • RPM sense
  • Output connection to ECU
  • Headphone connection
By ric355
If you are talking about using headphones, I'm not sure how that works with the chip you have referenced. I think the chip is intended to generate a signal when it detects knock from the knock sensor; that is what the tuning of the knock frequency, and the gain etc is about in the datasheet.

As I understand it, for OEMs, tuning the knock sensor to the engine is the key concern since every engine design has a different knock frequency. Therefore the sensor has to be appropriate to the engine. This is what may make aftermarket standalone knock sensors limited in their ability to do a good job. Obviously where an OEM knock sensor already exists on an engine it's an easier thing to work with.

I know that Josh has already built a prototype knock sensing module; I'm not sure which chip he used but the details may be in here somewhere if you search. He may also be able to comment on any issues or problems he had while building it. I note it did not get released but that is probably a function of available time rather than whether it worked well enough.
By noisymime
The TPIC8101 is an integrating amplifier for knock, but it still needs to be combined with some timing and logic from an MCU. The RPM doesn't get fed into it directly, but it is required by the MCU for controlling the TPIC8101.

Basically you need to decide on what knock window you want to monitor over (Typically about 40 degrees around ignition times), then set the TPIC8101 active over this time (and inactive when the window ends). You then read the integrated output from the TPIC8101 about what noise/knock it measured over that period.

I REALLY need to get some more work done on the knock monitor. It works really well in it's current form, but I haven't done anything more than prototype hardware and the desktop app needs a heap of work :(
By JHolland
Some early sensors were of a 'resonant' type and were engine specific , most sensors have a 'flat' response, I have always used Bosch sensors because although they vary a lot in mountings and connectors the piezo element and mass are the same so they respond the same.
There are a few issues with designing knock sensor interfaces.
The gain is not very repeatable between sensors, a Bosch sensor is typically 26mV/g +/-8mV/g (+/-30%)
The sensor output is specified using a logarithmic scale and the 'flat' band is defined as being within a 3dB tolerance, this means the voltage can be up to 100% different between sensors (in addition to the gain error).
The flat band is typically 1kHz to 20kHz, at around 25kHz you get a big resonance so your input filter needs a good attenuation before it approaches 25kHz. 25kHz is a very small bore so you should be able to attenuate from a much earlier frequency but you need to be take into account the effect of phase shift on the timing window, its easy to model this using PSPICE or similar.
The TPIC settings can be adjusted to find the optimum. OEMs typically take a background reading outside of the knock window and use that as one of the factors that determine the knock threshold.
If you don't already have a knock sensor then you need to think carefully about the mounting, the datasheet states a minimum flatness for the mounting face (including the bolt surface) as well as the correct mounting torque. These are critical, the sensors are very sensitive to poor mounting which will create unwanted resonances that will either give a false positive or raise the measured background level. For a while I designed this type of sensor and interface electronics and this was always a problem when mounting them on a vibration plate - even allowing the wires to dangle could ruin the response curve. The sensor, because of its construction, is also highly directional so it works best when it is perpendicular to the direction of the knock wave.
By filipesbp
How do I get the timing window?

Has I said earlier if I use an input from injector 1 or coil 1 I got rpm, but i don't know where is the TDC of the engine to get the correct window.
Is there a problem if I put two MAX9926 in parallel? Assuming that one MAX is inside the Speeduino.
By pazi88
filipesbp wrote:
Fri Feb 07, 2020 6:53 pm
I'm thinkig wrong, the windows starts with the spark, right?
Nope. You don't want to listen the noise from the ignition. You wan't to listen the detonation noises which occurs after cylinder pressure reaches highest values. Normally this is about 0-20 degrees ATDC.


For example in bmw m52 engine stock ecu the knock detection window is from about TDC to 16 degrees ATDC.
By filipesbp
I'm thinking how to select the window of measurement with an Arduino: The ignition input (lets say spark cyl#1) will give me a RPM and with that an approximation of the degrees of rotation of the engine(degrees by time);
Like pazi88 said the window can not start right after the spark event, but with a small delay (degrees) that should not be a problem?
Can the window move with the ignition? Like, is this a problem? Because the module does not know exacly where is the TDC but knows where it the cylinder pressure reaches highest values and it knows it is some time after the spark.
Ford 8N Project

The way I tuned it with the carburetor was to p[…]

Rev counter question

OK, I think I understand.... I am using a 36-1[…]

Ok, sounds good to me . :)

Australian Delivered Honda D16y4

Thanks for the replies!! It appears that if I sti[…]

Still can't find what you're looking for?