How long do switches bounce? I used to think 20ms max. Then an unused push button switch bounced way more! I got curious and spent many hours writing a high performance program that provides deep insights into bounce behavior.


Hmm... gif animation showing zooming in doesn't seem to work here. Maybe check project repo if you want to see it in action?


I initially started exploring switch bounce with an oscilloscope, but it was just too burdensome to collect enough data for experiments and there was no easy way to analyze and share the data. After a few days of using my oscilloscope, I decided to try and see what a humble Arduino could do because they are already so prevalent, easy to use and low cost. Great for students and hobbyists.
The end result doesn't compromise much on capability (62 nanosecond pulse detection).
It's working better than I had hoped! We can now:
-> Collect and analyze lots of switch bounce data easily.
-> Interactively inspect bounce waveforms and statistics.
-> Share high fidelity bounce data with others.
-> Run experiments efficiently without spending too much time.
Special thanks to Jack Ganssle (no affiliation) for showing how interesting switches can be

If you are still interested, more details & open source software at the repo:
https://github.com/adamfk/bouncy-buttonThe also an introductory video with more analysis of these two buttons.