“I’m working on designing an open source 3D-printable keyboard switch at the moment, with a view to eventually making my own mechanical keyboard using minimal off-the-shelf components (just an Arduino, wire, and diodes, with homemade parts for switches, keycaps, and case). I have not made a keyboard yet, but yesterday I made a device to test how many presses a switch can withstand before it stops working.
How it works
It uses a servo to turn a robotic finger that slowly presses the switch down. When it detects that the switch has closed, it lights up the LED and waits 100 ms for the contacts to settle, before slowly releasing the switch until it detects that the switch has opened again. At this point it switches off the LED, resets the servo to the start position, and writes the measured activation and deactivation positions to the PC over the USB serial connection. In the event that the servo reaches the configured end point without the switch closing, or reaches the configured start point without the switch opening, it logs a failure instead. If the switch failed to reset, it won’t start another cycle until it does.”