Page 1 of 2

Knock detection for 2CV

Posted: 06 Jan 2021 11:11
by Lex
I have a Lomax, a kitcar based on a 2CV. Recently I installed fuel injection with a Speeduino.
For the tuning of the Ignition Advance Table I’d like to implement knock-detection.

Has the Bylund knock-shield successfully been used on a 2CV?
Where should the detector best be mounted? On the cylinder? On the cylinder head?

Re: Knock detection for 2CV

Posted: 06 Jan 2021 14:38
by Christian_Bylund
Lex wrote:
06 Jan 2021 11:11
I have a Lomax, a kitcar based on a 2CV. Recently I installed fuel injection with a Speeduino.
For the tuning of the Ignition Advance Table I’d like to implement knock-detection.
Hi Lex, cool car!
Lex wrote:
06 Jan 2021 11:11
Has the Bylund knock-shield successfully been used on a 2CV?
To my knowledge this would be a first on a 2CV engine.
Lex wrote:
06 Jan 2021 11:11
Where should the detector best be mounted? On the cylinder? On the cylinder head?
Knock detection can be a complicated matter, it is a substitute to combustion analysis using pressure sensors. Instead of measuring the actual pressure peaks generated when knocking occurs we instead try to detect the sound generated from it. The sound is distinct in character with a frequency as a function of the bore diameter which is why the sensor signal filtering for example the knock shield uses a low pass and high pass filter to only listen to that exact frequency. To measure the signal a wideband piezoelectric sensor need to be used like the Bosch KS4-P, typically mounted on the engine block close to the cylinder heads.

There is a good rule of thumb:
"Four cylinder in-line engines are usually fitted with one or two knock sensors, while 5 and 6 cylinder engines are fitted with two, and 8 and 12 cylinder engines with four knock sensors."

Is the 2CV engine a flat twin engine, like a BMW motorcycle engine? - In that case you would probably need two sensors.

The Knock Shield for Arduino is not the easiest tool available to implement knock detection, but it is the most customizable one. It uses the same hardware as used in original and aftermarket equipment but we actually tell you how it works to let you configure and adopt it to your needs. For example in your case, optimize it for the 2CV engine and interface it with the speeduino. The choice is yours we give you the option.

Another challenge is when to measure, have a look at our DIY Knock Monitor video on YouTube.

So to sum up the challenges you will be facing setting up your knock detection:
- Knock sensor location(s).
- Knock sensor measurement timing.
- Knock sensor amplification and gain.
- Knock sensor frequency filtering.
- Interfacing the Knock Shield with Speeduino.

Last but not least, I also recommend the Knock Sensor Training from Texas Instruments in combination with our own Technical Manual for the Knock Shield.

Hope it helps!

Re: Knock detection for 2CV

Posted: 12 Jan 2021 10:24
by DonP
Hi Christian,

Not intending to highjack this thread, but when reading through the task list it came to my mind that maybe some basic software interface to adjust these values would very much lower the entry level:
- Knock sensor measurement timing.
- Knock sensor amplification and gain.
- Knock sensor frequency filtering.

Maybe even displaying the result?

There is a TI reference design, the respective user guide shows screen shots of a very simple GUI (on pages 3 and 4).

And thank you for sharing the training document!

BR,
DonP

Re: Knock detection for 2CV

Posted: 12 Jan 2021 18:22
by Christian_Bylund
Hi DonP,
DonP wrote:
12 Jan 2021 10:24
Not intending to highjack this thread, but when reading through the task list it came to my mind that maybe some basic software interface to adjust these values would very much lower the entry level:
- Knock sensor measurement timing.
- Knock sensor amplification and gain.
- Knock sensor frequency filtering.

Maybe even displaying the result?
You might be right, how about a Knock Shield App for Windows / iOS / Android?

Re: Knock detection for 2CV

Posted: 13 Jan 2021 20:09
by Lex
Christian_Bylund wrote:
06 Jan 2021 14:38
So to sum up the challenges you will be facing setting up your knock detection:
- Knock sensor location(s).
- Knock sensor measurement timing.
- Knock sensor amplification and gain.
- Knock sensor frequency filtering.
- Interfacing the Knock Shield with Speeduino.
Thank you for your kind and elaborate answer.

Actually, I don't mind a time consuming challenge in these boring Covid times. It would be interesting to get it working.
The car is running now on a very restrained and safe advance angle tabel, based on a diagram i found for the timing of the Citroen Visa (similar engine). I think it can be done better. :-)

I'll order one.

Kind regards

Re: Knock detection for 2CV

Posted: 13 Jan 2021 21:44
by DonP
Christian_Bylund wrote:
12 Jan 2021 18:22
You might be right, how about a Knock Shield App for Windows / iOS / Android?
Hi Christian,

A Knock Shield App, no matter how basic, would be fantastic.

Maybe being able to chose between channel 1 and 2, set frequency and gain (drop down or sliders?), set the number of cylinders and have a single send or apply button?

Not sure about the time integrator constant though. If I understand your YT video on the Knock Shield correctly, the interrupt based code calculates this constant based on engine speed / rpm. But there might be different needs. So maybe allow for a min and max constant at two specific rpm points and interpolate in between?

If the knock level was sent to serial as standard, it would be nice to see it in an app as well.

As the Knock Shield is designed to work with the Arduino Uno, iOS or Android don't seem to be easily connectable, but I might be wrong.

But this is really more thinking out loud than anything else.

BR,
DonP

Re: Knock detection for 2CV

Posted: 14 Jan 2021 11:19
by Christian_Bylund
Lex wrote:
13 Jan 2021 20:09
Actually, I don't mind a time consuming challenge in these boring Covid times. It would be interesting to get it working.
The car is running now on a very restrained and safe advance angle tabel, based on a diagram i found for the timing of the Citroen Visa (similar engine). I think it can be done better. :-)
I trust you will find it useful and please share your progress!

Re: Knock detection for 2CV

Posted: 14 Jan 2021 11:30
by Christian_Bylund
DonP wrote:
13 Jan 2021 21:44
A Knock Shield App, no matter how basic, would be fantastic.

Maybe being able to chose between channel 1 and 2, set frequency and gain (drop down or sliders?), set the number of cylinders and have a single send or apply button?
We have a positive user experience from the Lambda Shield App.
DonP wrote:
13 Jan 2021 21:44
Not sure about the time integrator constant though. If I understand your YT video on the Knock Shield correctly, the interrupt based code calculates this constant based on engine speed / rpm. But there might be different needs. So maybe allow for a min and max constant at two specific rpm points and interpolate in between?

If the knock level was sent to serial as standard, it would be nice to see it in an app as well.

As the Knock Shield is designed to work with the Arduino Uno, iOS or Android don't seem to be easily connectable, but I might be wrong.

But this is really more thinking out loud than anything else.
You are right, to better control the time constant is to adjust it based on the engine speed like we do in the interrupt version of the example code.

The problem with the Knock Shield is that it is only compatible with the Arduino Uno which makes it quite limited. For a wider compatibility with the Arduino Mega and the Arduino Uno WiFi for connectivity with an app it would require an update.

I am happy to share some information on the upcoming Knock Shield 2, featuring a 12V tachometer input, as well as compatibility with Arduino Mega and Arduino Uno WiFi. So far there is no app planned but it can definitely be the case in the future, at least now it is possible. Right now it is planned to be released with display and data logging support in the code using Arduino Mega.
Image

Re: Knock detection for 2CV

Posted: 25 Apr 2021 14:23
by DaveK
Christian_Bylund wrote:
12 Jan 2021 18:22
Hi DonP,
DonP wrote:
12 Jan 2021 10:24
Not intending to highjack this thread, but when reading through the task list it came to my mind that maybe some basic software interface to adjust these values would very much lower the entry level:
- Knock sensor measurement timing.
- Knock sensor amplification and gain.
- Knock sensor frequency filtering.

Maybe even displaying the result?
You might be right, how about a Knock Shield App for Windows / iOS / Android?
Hi Christian,
How are you,
Firstly apologies to the original poster for stepping in on your post also.
I still have to purchase my KNOCK SHIELD from you to add to my WIDEBAND SHIELD.
However, now discovering Knock Shield 2 is underway i shall wait.
With the extra ideas brought up throughout this topic, will your current planned Knock Shield 2 require physical changes to the PCB or hardware installed to the board, like with regards to the display, etc?
Should i hold off on my purchase to get SERIES 2 or will it be fine to purchase and the rest of the upgrades are easily added on?
I have also read some more of this topic and see that some of my questions/ideas are already addressed, apologies to all for jumping the gun before reading the topic entirely.
The mention of some software sounds like an excellent addition to your quality product, with your mention of displaying the result, sweet an LCD. Displaying the knock level, or intensity with a bar graph for example, and accompanied by a numeral-based equivalent.
So a full bar graph = 100 (numeral figure) for example, showing that the detonation is at maximum level and severe engine damage is inevitable.
Any chance of having a 0 - 5 volt DC analogue output that we can use with an ECU, for data logging also.
Each volt is equal to a knock level of 20 on the KNOCK SHIELDS DISPLAY and would be also used in creating a calibration file for the ECU you wish to use.
So,
0.00 volts = 0
0.25 volts = 5
0.50 volts = 10
0.75 volts = 15
1.00 volts = 20
1.25 volts = 25
1.50 volts = 30
1.75 volts = 35
2.00 volts = 40
2.50 volts = 50
3.00 volts = 60
4.00 volts = 80
5.00 volts = 100 max detonation.

Then selecting a level that equates to ignored noise and another level that equates to true detonation, which will be derived by the software and the frequency required to suit the bore diameter etc.
For example, anything reading from 0 to 35 - 40 is engine noise, anything above this is deemed light detonation through to full detonation.
If you notice i have dropped the 0.25-volt scale off from 2.00 v/DET LVL 40 through to 5.00 v /DET LVL 100 as i believe the 0.25 v increments won't be required up at that level but also it should stop the data from being too sensitive up at those levels causing data reading bounce.
So i don't know if this is any good to you Christian, hopefully, it may be of use when writing the algorithm for it.
Just an idea.
Take care mate,
Regards
Dave.

Re: Knock detection for 2CV

Posted: 29 Apr 2021 15:08
by Christian_Bylund
Hello Dave,

Sorry for my late reply, it is always great to have your feedback as a professional user.

The problems I see with the original Knock Shield:
  • It is only compatible with Arduino Uno, not Arduino Mega nor Arduino Wifi.
  • To give it full potential we need to input a tach / rpm signal.
Image

This is a picture of the latest prototype of Knock Shield 2. It solves both these problems but open up for another problem. What tach signal shall be supported?

The Knock Shield 2 software update need to include this:
  • Function as original Knock Shield.
  • RPM input.
  • Display support.
  • Data logging support.
  • Analog output support.
  • Smartphone app support.
What do you think?