When a mechanical switch is pressed, it doesn’t just make an on-off contact – it actually creates a series of short contacts, before becoming either on or off. This is called ‘switch bounce’ because the contacts are literally bouncing on each other before settling.
This is something we have to take care of in the Raise keyboard.
Matt, our CTO, explains all of this in the video below.
A switch bounce can be seen using an electronics tool called an oscilloscope. Each bounce could be as short as a millionth of a second, and the time it takes a switch to stop bouncing is about 1 thousandth of a second.
Switch manufacturers usually guarantee bounce time to be less than 5 thousandths of a second.
It sounds like a very short amount of time but because the microcontrollers are scanning the switches at a similar speed, there can be a problem where for one key press, there might be six or seven contacts recorded. If we slow down the speed of the scanning, we get fewer bounces – but we also increase the latency of the keyboard.
Checking the switch bounce of a Clicky switch.
We have to filter these bounces out somehow.
At the moment, we read each switch repeatedly, and only when it has stayed on for a period of time do we send the signal to the computer. This period is called the debounce delay – it’s the time that you’re filtering out all those signals that you don’t want to send to the computer.
With mechanical switches, you will always have this delay time.