Noise - Typical Problems and Resolutions
From Dynomotion
This page is currently underconstruction. Feel free to add to it.
What is Noise?
Noise, as it pertains to electronics, is an undesired random fluctuation in an electrical signal. It can be the cause of random input readings, grounding issues, communication problems, and even motor disturbances.
What are Common Causes of Noise?
Using KFLOP Input Filters to Deal with Noise
KFLOP inputs are very fast and therefore susceptible to narrow noise glitches. KFLOP doesn't have selectable digital filtering. It is usually best to fix the source of the problem in hardware. Otherwise you might reduce the frequency of the problem but not eliminate it entirely. You might add a Filter Capacitor (such as a 0.1uf ceramic capacitor) from the KFLOP input pin to the KFLOP GND (in very close proximity to KFLOP).
To filter the inputs in software you can do so with a User Program that samples the input, performs some filtering algorithm, and sets/clears a KFLOP Virtual I/O Bit (ie bits 48-63) based on the result. Then configure the KFLOP Axis to monitor the Virtual Inputs rather than the real inputs. The ExternalButtons.c example shows how multiple inputs can be monitored and debounced using a single non-blocking loop using a state driven approach. See the Debounce() function, how its used, and the 3 global variables needed for every input to keep track of the states of the input.