Author Topic: Best switch for least delay between keydown and keyup events?  (Read 3958 times)

0 Members and 1 Guest are viewing this topic.

Offline lancegatlin@gmail.com

  • Thread Starter
  • Posts: 4
Best switch for least delay between keydown and keyup events?
« on: Tue, 14 August 2018, 14:00:23 »
Hi folks!

I'm working on a chording keyboard system and have found that most mechanical switches have a (relatively) long interval between when the keydown event is triggered (always before bottom out), bottom out, release and keyup event. Ideally, I'm looking for a switch that has as close to 0 delay between (< 5ms) when keydown is triggered, and keyup release is detected.

Your thoughts are welcome, thanks!

Offline Tactile

  • Posts: 1433
  • Location: Portland, OR
Re: Best switch for least delay between keydown and keyup events?
« Reply #1 on: Tue, 14 August 2018, 14:18:20 »
Any switch with mechanical contacts will have "contact bounce". Cherry spec 5ms maximum for their MX switches. The delay you see is programmed into the controller in order to compensate for contact bounce in the switch. Capacitive switches usually don't require a de-bounce time. That would include IBM Model F keyboards or keyboards with Topre capacitive switches.

A keyboard which switches with a transistor instead of mechanical contacts will not require de-bounce time programmed into the controller. Of current, off-the-shelf boards, look for a board with Topre switches or one of the clones.

You can also experiment with a programmable controller, like this, which will allow you to control, in the programming, the de-bounce time. But any off-the-shelf keyboard will have some delay in the controller.
REΛLFORCE

Offline Findecanor

  • Posts: 5036
  • Location: Koriko
Re: Best switch for least delay between keydown and keyup events?
« Reply #2 on: Tue, 14 August 2018, 15:13:06 »
Do you mean post-actuation travel? With a Cherry MX switch (or clone) and most keycaps, you can reduce key travel below the actuation point with O-rings.
I don't think there is any Cherry MX clone that has the actuation point lower down than regular Cherry MX, but many switches that actuate earlier (higher up) exist.

Kailh also has a few low-travel mechanical switches, such as the Kailh Mini Choc PG1232 with total travel of 2.4 mm and both pre- and post-travel of 1.2 mm. You would need Kailh's own keycaps and other hardware.
There are several other low-travel switches from Cherry, TTC and Greetech but I think the Kailh Choc Mini has the shortest post-travel distance.

Some switches also have hysteresis which means that the deactuation point is higher up than the actuation point. It means that a key has to be released higher up before it can be actuated again.
Hysteresis is found in many clicky mechanical switches such as Cherry MX Blue. It is rare in non-clicky switches but e.g. Topre switches have it. (Of course, keys don't have to be bottomed out to be released.)

For electric-contact switches, debouncing has to be done on at least either key actuation or key de-actuation. It is most often done on both. (Commercial keyboards often do both and have longer debounce times as long as of 30-40 ms just in case there is an imperfect switch, it would not cause QA to fail or returns).
For maximum performance in a chording system you should also make sure that your firmware does not do debouncing on merely one key at a time (The free popular firmwares TMK and QMK do that ... although I do not think it matters in practice).
« Last Edit: Tue, 14 August 2018, 15:37:17 by Findecanor »

Offline rich1051414

  • Posts: 353
  • Location: Decaturville, TN
Re: Best switch for least delay between keydown and keyup events?
« Reply #3 on: Wed, 15 August 2018, 17:54:21 »
The answer to this question is, "any switch that doesn't need to be debounced'.

This disqualifies any contact based switch, basically leaving only optical, capacitive and hall effect.

On my hall effect keyboard, I do notice a slight improvement in reaction time, although I don't actually feel it. However, this could just come down to inconsistent performance on my part. I am sure your inconsistency will contribute more to delay than a switch would, but theoretically, optical, capacitive or hall effect would offer the quickest response times due to not needing debouncing.
« Last Edit: Wed, 15 August 2018, 17:56:30 by rich1051414 »
Siig Minitouch with Orange Alps, Whitefox 60% Zealios 67g, Realforce 87U 55g Topre, LFK SMK/Alps TKL With SMK 2nd Gen Cherry MX mount switches, NEC APC-H412 NEC Blue Ovals, Unicomp Model-M Spacesaver, XMIT Hall Effect, WASD Code Cherry MX Clear, KBDFans75 Lubed Gateron Greens, Azio MGK L80 Kailh Brown, XD84 Pale Blue Box Kailh, NIB Pingmaster TMK Converted, KPrepublic XD96 Blue aluminum case with Jade Box Kailh

Offline lancegatlin@gmail.com

  • Thread Starter
  • Posts: 4
Re: Best switch for least delay between keydown and keyup events?
« Reply #4 on: Fri, 22 February 2019, 16:15:27 »
Just wanted to provide some updates to this question for anyone working on a chording setup.

Any switch with mechanical contacts will have "contact bounce". Cherry spec 5ms maximum for their MX switches. The delay you see is programmed into the controller in order to compensate for contact bounce in the switch.

The answer to this question is, "any switch that doesn't need to be debounced'.

This was great advice, thanks Tactile and rich1051414!! I eventually wrote custom firmware (QMK) for my minidox that makes debouncing a non-issue. It made chording detection much, much cleaner and more responsive!

Do you mean post-actuation travel? With a Cherry MX switch (or clone) and most keycaps, you can reduce key travel below the actuation point with O-rings.
This was also amazing advice, thanks Findecanor!! I used a combination of "red" and "blue" o-rings on each keycap to "tune" them for the least travel possible. It made a huge difference!