teck icon indicating copy to clipboard operation
teck copied to clipboard

Excess key bounce

Open yurikhan opened this issue 11 years ago • 41 comments

It is reported that some users experience excess key bounce, i.e. pressing a key once produces more than one character.

The problem only affects some users, some keyboards and some keys.

If you are affected, please leave a comment here.

Additionally, I need at least one testing volunteer who is:

  • able to reproduce the problem reliably, and
  • comfortable with flashing experimental firmware and rolling back to a previous version.

yurikhan avatar Jan 30 '14 06:01 yurikhan

It happens to me with the letters A and E, but not very often.

Unfortunately I can't volunteeer* for testing, as I don't have easy access to a Windows machine.

(*that was an extra bounce)

albx79 avatar Jan 30 '14 09:01 albx79

In practice, firmware updater works for me under VirtualBox if I install the Extension Pack which enables USB passthrough. But I see how installing VirtualBox, Extension Pack, and Windows inside the VM might be inconvenient and/or undesirable.

yurikhan avatar Jan 30 '14 11:01 yurikhan

I have this issue on two separate keyboards, one at work and one at home with different keys affected, it's pretty easy to reproduce the error and I shouldn't have any problems to do some flashing. I run Linux at work so I would preferably wait with testing on that one until the "bouncing" is fixed at my "at home" keyboard, since it's a bit of extra work to flash that one. Btw, will this be based on the fix that truly ergonomic says they have done in the 3.16 version of their firmware?

joakimh avatar Feb 02 '14 17:02 joakimh

I think I’m going to experiment with other algorithms than used in the 3.16 firmware.

yurikhan avatar Feb 02 '14 17:02 yurikhan

I had massive key bounce with the older firmware from teck. upgraded to .17 and the bounce is gone, however now key input feels laggy, some key presses are missed and some are sent in the wrong order. Had some hopes when I saw this, hopefully you can work some miracle as TECK refuses to respond to anyone. I'd be willing to try out some experiments. I've got a 207.

threshar avatar Feb 04 '14 20:02 threshar

I have a 209, and had the same experience as threshar. I would get lots of duplicate keys under the original firmware, and now that I'm using 3.16 I'm finding myself with lots of typos where the space bar often doesn't trigger (e.g. "lots of" turns into "lotso f").

randyv2zhurosoft avatar Feb 11 '14 08:02 randyv2zhurosoft

Also, I'd be happy to help with testing firmware. I don't really mind rolling it back if things go wrong.

randyv2zhurosoft avatar Feb 11 '14 08:02 randyv2zhurosoft

As an additional datapoint, I built a custom layout with the current layout designer and flashed my keyboard with it. Compared to 3.16, it's far more responsive, and I haven't seen double letters happen anywhere nearly as frequently as with the original firmware.

randyv2zhurosoft avatar Feb 12 '14 05:02 randyv2zhurosoft

@randyv2zhurosoft: The latter is unexpected because the firmware that the layout designer generates is based on the original v3 (not 3.16) firmware, and the debouncing code is unchanged from the original.

yurikhan avatar Feb 12 '14 07:02 yurikhan

@yurivkhan It's probably a result of me typing more slowly after getting burned by the 3.16 firmware :) I'll keep an eye out as I adjust back to quicker typing speeds.

randyv2zhurosoft avatar Feb 12 '14 07:02 randyv2zhurosoft

It happened with me for a little while when I first bought the keyboard, but I only started noticing it after flashing with the new firmware... granted, I flashed quickly because I love the customization.

I read on other sites that mechanical keyboards are prone to this when they are new, and that it goes away after awhile.

Sure enough, the problem went away. I was thinking that maybe your firmware is more efficient or more sensitive.

(my problem affected the j key, the enter key, and the spacebar, and maybe more keys. I don't have problems on any of them anymore.)

symbiogenesis avatar Feb 12 '14 13:02 symbiogenesis

OK, will a volunteer please step forward ;)

This version implements a 4-tap debouncing filter. That is, each key is polled periodically, and is considered stable when it reports identical state 4 times in a row.

The poll interval can be specified using the entry field in the middle of the keyboard depiction. With the default value of 70, the stabilization interval works out to 5ms which is the specified debounce interval for the Cherry MX switch. Bigger values will yield a longer interval.

So, please test with a few different values and report what works for you:

  • Start with the default because it’s a different algorithm than in v3 or v3.16.
  • If you experience key bounce, increase the value.
  • If you find the keyboard laggy, decrease the value.
  • Repeat until you converge at a comfortable setting.

Note that the same criterion is applied to key presses and releases. So, if you set the poll interval high enough, your OS’s autorepeat functionality will kick in before the firmware has the chance to register a key release, again leading to duplicate characters. For the autorepeat rate of 30 times per second, sane values are up to about 520.

The supported range for the poll interval is 0 to 63999; however, at the maximum setting, it may take up to 5 seconds to register a key press or release :)

yurikhan avatar Feb 22 '14 13:02 yurikhan

I just installed the firmware generated with the new tool, using the default setting of 70. Response time feels pretty good so far, and there haven't been any double key presses so far.

Some minor quibbles:

  1. To add some detail to the response rate of the keys, it feels slower than the original firmware did with its default 5ms setting. However, it's nowhere nearly as sluggish as the 3.16 firmware, which put things far slower than I was willing to tolerate. If I hadn't just switched over from the old firmware, I don't think I'd have noticed it being slow.
  2. The space bar was one of the keys I was seeing duplicated most frequently. It hasn't had a duplicate case yet, but I'll continue keeping an eye out for any issues over the next few days.
  3. The default layout that you have shown on the TECK keyboard is different from the Custom Layout Designer, and requires some keys to be switched to conform to the default layout (I only checked the 209 model, as that's the one I have).

randyv2zhurosoft avatar Feb 22 '14 23:02 randyv2zhurosoft

I have tried the new firmware with the default value of 70 and so far I haven't seen a single double bounce, will continue to use it and report if I notice any double keys. I haven't noticed any sluggishness with this new firmware (I don't know how the 3.16 version felt, never used it), I guess I could also try to lower the value and see when/if the double bounces comes back in order to try to find an optimal value, guess it could differ from keyboard to keyboard though...

@yurivkhan Great work, and thanks a lot for this fix!

joakimh avatar Feb 23 '14 11:02 joakimh

Updating after my last comment: There have been no instances of double keys thus far, so I've considered my problem fixed. Additionally, the sluggishness that I was feeling in my first post has diminished the point of not being noticeable anymore, so I also consider that problem solved.

All in all, this latest iteration has been great for me. Thanks for your great work and getting this firmware out there. If this were the firmware that had been installed in my keyboard from the get-go I'd have been a very much happier camper :)

As detailed in my earlier comment, I used the default value of 70. I haven't tried any other values yet, and I'm happy enough with the current setup that I don't feel the need to try any further values. If it'd help your testing, though, I'd be happy to try out another value for a few days and let you know what I find.

randyv2zhurosoft avatar Feb 25 '14 08:02 randyv2zhurosoft

I suggested 70 as the default because it is calculated from the Cherry MX switch specification.

If lowering the value brings any substantial benefit to anyone, I will recommend Truly Ergonomic that it remain user-configurable. If not, we will probably make it a constant, so as to keep it simple.

yurikhan avatar Feb 25 '14 14:02 yurikhan

All else being equal, I'd prefer a solution where it's user-configurable (presumably via the layout designer). I may not need it today, but there may be a time when I do, and the happiness of having it when I need it would far outweigh the confusion of it being there (especially if it tells me it's the default value).

randyv2zhurosoft avatar Feb 25 '14 23:02 randyv2zhurosoft

I have now tried a lot of different settings and around 70 seems to the best value, I have however even at that setting seen a few double keys, quite seldom but still. So to summarize my experience with the current fix: It definitely improves the bounce issue but does no completely solve it for me.

joakimh avatar Feb 26 '14 19:02 joakimh

@joakimh What happens when you set it above 70? Do the bounces go away? What is the downside for you?

yurikhan avatar Feb 27 '14 02:02 yurikhan

When I increase the value the double bouncing disappears but instead it sometimes fail to register the key press at all (it misses key presses). Maybe my switch on that particular key is too bad/broken to be completely fixed by a firmware filter? perhaps it's time to bring out the soldering iron and replace that switch... ;)

joakimh avatar Feb 27 '14 21:02 joakimh

After some more time spent testing, I'm finding I'm getting occasional double keystrokes still, but only rarely. I'm going to experiment with some other values and see if I can find a value that will eliminate it entirely for me.

randyv2zhurosoft avatar Mar 03 '14 21:03 randyv2zhurosoft

@yurivkhan Do you expect this to introduce much lag into key presses at the minimal settings compared to the previous code? I'm not sure if it's linear, but if you say that 63999 is up to 5 seconds, then 70 should result in (70 / 63999) * 5 s = 5.5 ms. I don't know if this would be important for gaming.

Also, I'm not sure if you know that Truly Ergonomic have pushed some anti-bouncing code into their latest customisable firmware.

New Firmware (v3_40) created by this Layout Designer solves the Fn+Vol bug as well as the double letters issue.

protist avatar Mar 14 '14 05:03 protist

@protist Yes, a 5ms lag at 70 is to be expected. If the switch can by specification introduce 5ms of noise when actuating, how else do you suggest eliminating it? (OK, it might be possible to react to the first change and then ignore any changes during the first 5ms. That may be a topic for another research.)

No, I don’t know if it is important for gaming. But it is said that rubber dome keyboards have bounce time on the order of 15ms.

And yes, the customizable firmware on the Truly Ergonomic site is based on my work here.

yurikhan avatar Mar 14 '14 13:03 yurikhan

I don't really know how else one could do it. I was being more of a devil's advocate. However, I think you are right to say it's probably not a very important factor.

I had more of a search, and it seems like some use 30 s debounce. Also, this Slashdot thread suggests that most keyboards poll for input every 40 ms plus the usb stack poll ~10 ms, and then latency for (normal) monitors is ~50 ms, so 5 ms in 100 ms is not much.

protist avatar Mar 15 '14 03:03 protist

I had the same issue and with my keyboard and a period of 70 with your fw seems to fix it. I still get very occasional double-bounces on o and missing presses on l, but it's nothing like it was before. Not even their 4.0 firmware helped. Given that they released a fw updater for linux, maybe there would be more volunteers now? If this issue is still relevant, I can do more testing.

moshev avatar Jan 22 '16 12:01 moshev

Well, in practice, this ticket has remained dormant for nearly two years. The issue is either not very relevant any more since TrulyErgonomic switched keyswitch suppliers, or affected users are not finding this ticket.

yurikhan avatar Jan 22 '16 12:01 yurikhan

Interesting. I have a 229 model, which I would presume is the one with the newer switches and the problem still manifests.

moshev avatar Jan 22 '16 13:01 moshev

On Jan 22, 2016, at 8:31 AM, Димитър Тошев [email protected] wrote:

Interesting. I have a 229 model, which I would presume is the one with the newer switches and the problem still manifests.

— Reply to this email directly or view it on GitHub.

I ended up giving up on the teck a couple years ago and I’ve been using a logitech wave, which works fantastic and seems to agree with my wrists.

the fact the company refuses to help any of us is a bad sign.

Jeff Trout [email protected]

threshar avatar Jan 22 '16 13:01 threshar

Thank you Jeff for trolling about the rubber-dome (with uncertain and spongy feel), 1860s staggered non-columnar key arrangement, non-programmable, non-removable-palmrest, gigantic and cumbersome wave. Nothing to do with the TEK or with this thread.

Truly Ergonomic and Yuri Khan have been working and will continue working in tandem in both, the firmware and the configurator, for the benefit of TE keyboard's users.

Firmware v4.0 is very stable, reducing key chatter and double characters per key press. You can upgrade any TEK with the newest version for each model. You can upgrade the Firmware via Windows, OSX and Linux (with thanks to Maurice Bos), and then use your TEK with any compatible computer:

You can review and/or create a custom layout based on Default Layouts.

You can create your own Custom Layout and/or change the Debouncing from 1ms up to 20ms to obliterate double characters via our Custom Layout Designer (with thanks to Yuri Khan).

Models 227 and 229 use Kailh mechanical switches which are more reliable and are sturdier compared to other switches; reason we "switch" to these. Manufactured by KaiHua, the same corporation that manufactures Razer switches and Steelseries QS1 switches.

If you believe your TEK have problems, visit our Knowledge Base or Contact Us.

trulyergonomic avatar Jan 22 '16 21:01 trulyergonomic

Perhaps I'll upgrade and give it a try - I had to stop because the firmware bugs made it nearly unusable for me (double presses, missed presses, etc quite often). I emailed the company a few times and never got responses, this was at least 2 years ago

Sounds like things have improved.

Thanks

Jeff Trout [email protected]

On Jan 22, 2016, at 4:59 PM, trulyergonomic [email protected] wrote:

Thank you Jeff for trolling about the rubber-dome (with uncertain and spongy feel), 1860s staggered non-columnar key arrangement, non-programmable, non-removable-palmrest, gigantic and cumbersome wave. Nothing to do with the TEK or with this thread.

Truly Ergonomic and Yuri Khan have been working and will continue working in tandem in both, the firmware and the configurator, for the benefit of TE keyboard's users.

Firmware v4.0 is very stable, reducing key chatter and double characters per key press. You can upgrade any TEK with the newest version for each model. You can upgrade the Firmware via Windows, OSX and Linux (with thanks to Maurice Bos), and then use your TEK with any compatible computer:

You can review and/or create a custom layout based on Default Layouts.

You can create your own Custom Layout and/or change the Debouncing from 1ms up to 20ms to obliterate double characters via our Custom Layout Designer (with thanks to Yuri Khan).

Models 227 and 229 use Kailh mechanical switches which are more reliable and are sturdier compared to other switches; reason we "switch" to these. Manufactured by KaiHua, the same corporation that manufactures Razer switches and Steelseries QS1 switches.

If you believe your TEK have problems, visit our Knowledge Base or Contact Us.

— Reply to this email directly or view it on GitHub.

threshar avatar Jan 23 '16 21:01 threshar