Knock Shield for Arduino UNO Memory

Support forum for the Knock Shield designed to connect knock sensors to Arduino projects.
Post Reply
Blitzuino
Posts: 2
Joined: 20 Oct 2022 02:04

How to change firmware settings?

Post by Blitzuino » 20 Oct 2022 13:31

Hello, I am French and I work on Speeduino. I'm used to using Arduino, but I'm not used to dealing with firmwares. I would like to add knock detection to my edits.

I looked at your Super Knock Shield firmware in Arduino IDE, and from what I understand I need to change some values ​​for it to work properly with the motor.

how should I do it ? I just have to upload the firmware with the correct values? is there another trick?

I have everything I need, a clean RPM signal to hook up to it, I could use the alert LED channel to activate a correction ignition table, maybe even with a 0-5v output I I could pass it off as a flexfuel sensor, which would make it possible to use the flexfuel menu to apply a precise correction according to the % of irregularities. it is an idea.

I looked at your other work, it's really handy. I have a question: is it possible to upload the Knock Shield and the wideband on the same Arduino? I'm thinking of a mega 2560 pro. taking care that the routes are not common and change them if necessary.

thanks for reading, sorry for my english!

510speed
Posts: 1
Joined: 09 Jan 2023 04:58

Knock Shield for Arduino UNO Memory

Post by 510speed » 09 Jan 2023 05:52

Currently the new knock setting are lost when we power cycle. How can we save the settings to memory? Do we need the logging shield?

User avatar
Christian_Bylund
Posts: 270
Joined: 07 Mar 2015 18:09

Re: Knock Shield for Arduino UNO Memory

Post by Christian_Bylund » 10 Jan 2023 10:53

Hello,
510speed wrote:
09 Jan 2023 05:52
Currently the new knock setting are lost when we power cycle. How can we save the settings to memory?
How are you changing the knock setting?

Code: Select all

//Define registers and parameters used.
#define           SPU_SET_PRESCALAR_6MHz         0b01000100    /* 6MHz prescalar with SDO active */
#define           SPU_SET_CHANNEL_1              0b11100000    /* Setting active channel to 1 */
#define           SPU_SET_CHANNEL_2              0b11100001    /* Setting active channel to 2 */
#define           SPU_SET_BAND_PASS_FREQUENCY    0b00101010    /* Setting band pass frequency to 7.27kHz */
#define           SPU_SET_PROGRAMMABLE_GAIN      0b10100010    /* Setting programmable gain to 0.381 */
#define           SPU_SET_INTEGRATOR_TIME        0b11001010    /* Setting programmable integrator time constant to 100µs */
#define           KNOCK_THRESHOLD_LEVEL          204           /* Setting knock LED level, max value of 255. */
#define           MEASUREMENT_WINDOW_TIME        3000          /* Defining the time window of measurement to 3ms. */
In the example code the settings are changed by modifying these values based on the values in the technical manual.
Best Regards,
Christian Bylund
Bylund Automotive AB

Post Reply