SimuCUBE uses the DMA stream of the MCU to continuously read every ADC input one-by-one to a buffer, where every Nth item corresponds to ADC input N. This requires no processing time, as DMA works automatically in the background. Last time I calculated, the rate of reading of each of the inputs is around 100 kHz.
Then, when the firmware is about to send a HID report to PC, it just takes every Nth value for channel N and averages them. So the firmware is not reading the ADC channels 32 times at this point, so no extra “lets update ADC inputs” lag there.
This produces already a very stable signal and is computationally very efficient, so the additional benefit of storing a band of previous values or a filter would just take more time without real improvement.
Then lag is not an issue, but with reports about noise - low pass filter with extremes removal would make a noise almost non-existent (and pass frequency can be configurable) + it’s computationally comparable (double mult and sum).
Don’t you think?
Btw, still, do you know if it’s worth to move from Bodnar board (I got it with HPP pedals)?
I have some noise from the pressure sensor in the brakes pedal, but not sure about a source of it.
Linear potentiometer in the throttle is rock stable.
I agree, a low pass filter on top of this current strategy would be an additional improvement. I might even try that soon.
You could try SimuCUBE ADC inputs, but please take note that they are only 3.3 V tolerant, with the exception of the external potentiometer inputs on the same connector as the fan. Those have the required resistors to have 5 V tolerancy.