IBM Model M buckling spring switch bounce oscilloscope measurement

I've searched all over the web for information on the default switch bounce for IBM's buckling spring design, but couldn't fit anything. I'm sure there's some IBM whitepaper or datasheet that has all the info, but it's probably locked away in some dusty-ass IBM archive and will not ever see the light of day again.

I've added a feature to my replacement controller (here vendors-f52/ibm-model-m-bluetooth-usb-hybrid-controller-conversion-kits-t17388.html) to allow for manual adjustment of the default debounce period (I haven't implemented a fancy debouncing algorithm yet, only a first-edge detect + timer algorithm), but I wasn't sure about the physical properties of the 'buckling spring torsional snap actuator' + membrane contacts. So I hacked together a testing rig with a strip of perboard, two FFC sockets and a pull up and hooked it up to my scope to take a few measurements.

The outcome is this: most buckling spring switches on the Model M keyboard assembly used for testing have actually <3ms of bounce. 3.23ms was the worst I could find. In comparison, the average Cherry switch (1ms max) or even a run-of-the-mill microswitch (400us) seem to perform much, much better.

ibm_switch_bounce1.png

Not exactly the kind of result you would expect after reading the patent description from 1983 - "a switch actuator having minimum bounce of the switch actuator during release of the switch actuator from the position in which it activated a contact switch."
mind_prepared

Unread post11 Jan 2018, 00:56

X
mind_prepared
 
Posts: 65
Joined: 01 Jul 2014, 12:49
Location: Berlin
Main keyboard: Matias Quiet Mini w/blue ALPS
Main mouse: Microsoft Intellimouse Optical 1.0
Favorite switch: complicated ALPS
DT Pro Member: -
 
Very interesting, thanks for the insight. This also definitely makes my argument that Bloody's measurement of a 22 ms bounce time on Cherry switches is bollox seem pretty fair xD .
Chyros
User avatar

Unread post11 Jan 2018, 06:26

User avatar
X
Chyros
 
Posts: 4151
Joined: 28 Feb 2015, 22:04
Location: The Netherlands
Main keyboard: whatever I'm reviewing next :p
Main mouse: a cheap Logitech
Favorite switch: Alps SKCM Blue
DT Pro Member: -
 
 
Hey good to see you back mind_prepared, and you're doing technical research now? Impressive work.
seebart
User avatar
Offtopicthority Instigator

Unread post11 Jan 2018, 06:30

User avatar
X
seebart
Offtopicthority Instigator
 
Posts: 11504
Joined: 22 Nov 2013, 20:20
Location: Germany
Main keyboard: Rotation
Main mouse: Steelseries Sensei
Favorite switch: IBM capacitive buckling spring
DT Pro Member: 0061
 
 
Glad to hear it is of use to anyone. However, you might wanna take my measurements with a grain of salt. I'm not a professional electronics engineer, so there's a chance I didn't do this the proper way (what is the 'proper' way?). I've done it pretty much the same way Hasu did on GH (where he disclosed that he wasn't an electronics engineer either).

The fact of the matter is that Cherry Corp. is stating a maximum of 5 ms of bounce for their MX-series switches. I have not been able to measure anything near 5 ms though, not even 1 ms (that's Hasu's worst-case reading when activating the switch by flipping a finger). Why is that? I don't know.

I suppose it would help if some guys who are more versed in measuring switch bounce would chip in.
mind_prepared

Unread post11 Jan 2018, 11:31

X
mind_prepared
 
Posts: 65
Joined: 01 Jul 2014, 12:49
Location: Berlin
Main keyboard: Matias Quiet Mini w/blue ALPS
Main mouse: Microsoft Intellimouse Optical 1.0
Favorite switch: complicated ALPS
DT Pro Member: -
 
5 ms is a standard debouncing time. It's just Cherry saying they don't bounce on a standard rig. Other manufacturers do this as well (at least the ones using electromechanical switches).
Chyros
User avatar

Unread post11 Jan 2018, 11:47

User avatar
X
Chyros
 
Posts: 4151
Joined: 28 Feb 2015, 22:04
Location: The Netherlands
Main keyboard: whatever I'm reviewing next :p
Main mouse: a cheap Logitech
Favorite switch: Alps SKCM Blue
DT Pro Member: -
 
 
model F doesn't bounce: https://github.com/dmaone/CommonSense/b...F/head.png
(actually it does, a bit. For some keys there's peak at 80% ~1ms before it settles, then it goes down to like 30% and then settles. CS has 8 bit debouncing buffer - it translates to about 2.5ms. 4 bits also work, but the "e" key on my testbed is sometimes registered twice.)
DMA

Unread post13 Jan 2018, 02:43

X
DMA
 
Posts: 462
Joined: 23 May 2016, 06:24
Location: Seattle, US
Main keyboard: T420
Main mouse: Trackpoint
Favorite switch: beamspring
DT Pro Member: -
 
 
The bringer of PSoC
mind_prepared wrote:Glad to hear it is of use to anyone. However, you might wanna take my measurements with a grain of salt. I'm not a professional electronics engineer, so there's a chance I didn't do this the proper way (what is the 'proper' way?). I've done it pretty much the same way Hasu did on GH (where he disclosed that he wasn't an electronics engineer either).

It's the effort that counts and the fact that you point out that you are not a professional electronics engineer. Good work! I have a problem with people putting down other peoples efforts which is what I've been experiencing elsewhere on DT recently...
seebart
User avatar
Offtopicthority Instigator

Unread post13 Jan 2018, 06:54

User avatar
X
seebart
Offtopicthority Instigator
 
Posts: 11504
Joined: 22 Nov 2013, 20:20
Location: Germany
Main keyboard: Rotation
Main mouse: Steelseries Sensei
Favorite switch: IBM capacitive buckling spring
DT Pro Member: 0061
 
for some extra comparison I decided to take a couple of switches out and see what the bounce time is too. I tried to keep the capacitance down as much as possible.

All stable within the std 5ms recommended denounce time.

Fresh Gateron Green ~ 90µs.
Fresh Kailh Box Navy ~ 500µs.
Fresh Kailh Box Jade ~ 75µs (side note actual contact bounce seems to be only 1500ns, but some times you get a second or third bounce 50µs or so latter. This is happen even more so on the Navy.
Used Cherry Blue (~3years) ~ 300µs.
Less Used Cherry Blue ~ 50µs.
Spoiler:
Jade
jade.png

Jade about half of the time it has a second bounce.

jadeSecond.png

Navy
navy.png

Navy
navy2.png

Gateron Green
gaterongreen.png

Cherry Used
cherryblueold.png

Cherry Not as Used
cherrybluenotasold.png
zool

Unread post15 Apr 2018, 14:03

X
zool
 
Posts: 170
Joined: 09 Nov 2016, 06:44
Location: Melbourne
DT Pro Member: -
 
A little more playing with the inconsistent with the box switches the extra bounce was coming from a slow steady actuation, not there if i just press it normally. how you press matters i guess.
zool

Unread post15 Apr 2018, 14:25

X
zool
 
Posts: 170
Joined: 09 Nov 2016, 06:44
Location: Melbourne
DT Pro Member: -
 
zool, do you have a load resistor in your test setup, or discharging thru oscilloscope?
DMA

Unread post15 Apr 2018, 16:21

X
DMA
 
Posts: 462
Joined: 23 May 2016, 06:24
Location: Seattle, US
Main keyboard: T420
Main mouse: Trackpoint
Favorite switch: beamspring
DT Pro Member: -
 
 
The bringer of PSoC
DMA wrote:zool, do you have a load resistor in your test setup, or discharging thru oscilloscope?

Just scope, no resistor, hence the slow decay.
zool

Unread post16 Apr 2018, 00:45

X
zool
 
Posts: 170
Joined: 09 Nov 2016, 06:44
Location: Melbourne
DT Pro Member: -
 
I had a more serious swing at getting some numbers on the debounce times for the switches I had in front of me at the time.

set up is like this:
switch connected to micro controller pin that is configured as input with pull up and as an external interrupt on falling edge, and gnd. (~15nsec slew with internal pullup on)

scope is connected to microcontoller pin that is configured as output.

when falling edge interrupt is triggered sets the output to low for ~4usec as makes it easier trigger off and to see when the scope is set to a window of 10-20msec.

scope is set to trigger on falling edge. infinite trace persistence and a 20msec holdoff.
the three switches are set to the same time division to see difference more clearly. Marker is set at 5msec.

I pressed each switch 200ish times. so you can see the maximums times.

BoxJade:
Spoiler:
boxjade.png


BoxNavy:
Spoiler:
boxnavy.png


Used Cherry Blue:
Spoiler:
cherry.png


oh and a close up view of the wave form:
Spoiler:
waveform.png


might be nice to so the statistics.
zool

Unread post04 May 2018, 10:34

X
zool
 
Posts: 170
Joined: 09 Nov 2016, 06:44
Location: Melbourne
DT Pro Member: -
 

Who is online

Users browsing this forum: cdaman, fohat, njm and 42 guests