Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Excess key bounce #7

Open
yurikhan opened this issue Jan 30, 2014 · 41 comments
Open

Excess key bounce #7

yurikhan opened this issue Jan 30, 2014 · 41 comments

Comments

@yurikhan
Copy link
Owner

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.
@albx79
Copy link

albx79 commented Jan 30, 2014

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)

@yurikhan
Copy link
Owner Author

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.

@joakimh
Copy link

joakimh commented Feb 2, 2014

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?

@yurikhan
Copy link
Owner Author

yurikhan commented Feb 2, 2014

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

@threshar
Copy link

threshar commented Feb 4, 2014

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.

@randyv2zhurosoft
Copy link

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
Copy link

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

@randyv2zhurosoft
Copy link

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.

@yurikhan
Copy link
Owner Author

@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.

@randyv2zhurosoft
Copy link

@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.

@symbiogenesis
Copy link

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.)

@yurikhan
Copy link
Owner Author

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 :)

@randyv2zhurosoft
Copy link

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).

@joakimh
Copy link

joakimh commented Feb 23, 2014

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!

@randyv2zhurosoft
Copy link

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.

@yurikhan
Copy link
Owner Author

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.

@randyv2zhurosoft
Copy link

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).

@joakimh
Copy link

joakimh commented Feb 26, 2014

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.

@yurikhan
Copy link
Owner Author

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

@joakimh
Copy link

joakimh commented Feb 27, 2014

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... ;)

@randyv2zhurosoft
Copy link

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.

@protist
Copy link

protist commented Mar 14, 2014

@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.

@yurikhan
Copy link
Owner Author

@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.

@protist
Copy link

protist commented Mar 15, 2014

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.

@moshev
Copy link

moshev commented Jan 22, 2016

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.

@yurikhan
Copy link
Owner Author

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.

@moshev
Copy link

moshev commented Jan 22, 2016

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

@threshar
Copy link

On Jan 22, 2016, at 8:31 AM, Димитър Тошев notifications@github.com 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 jeff@jefftrout.com

@trulyergonomic
Copy link

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.

@threshar
Copy link

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 jeff@jefftrout.com

On Jan 22, 2016, at 4:59 PM, trulyergonomic notifications@github.com 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.

@rekado
Copy link

rekado commented Jan 23, 2016

I'm still having the same problems I have been having with my 209; no change even with one of the recent firmware versions. I get double presses and missed key events so often that I often cannot even log in; touch typing is a pain because I have to constantly recheck all characters I type.

I'm now trying to build the firmware updater on GuixSD so I can try the latest firmware from this repository, but I'm not very hopeful.

@protist
Copy link

protist commented Jan 25, 2016

I tried the firmware almost two years ago now with my older-model TECK. From memory, it did help a little, but certainly didn't come close to fixing the problem. I still had numerous double and missed presses. I eventually cracked and sprayed the key switches with Deoxit Contact Cleaner. This improved the situation markedly, so I suspect there was a run of bad switches.

@moshev
Copy link

moshev commented Jan 27, 2016

@trulyergonomic That's rich coming from you guys. I tried contacting you, got no response. And for the record, I have a 229, or so you claim to have sent me. You're pretty much the second worst company I've ever dealt with.

@protist What tool did you use to open the switches?

@protist
Copy link

protist commented Jan 27, 2016

@moshev I used a keycap puller to take off the keycaps, sprayed a small amount of the contact cleaner on the switch part that depresses, then pressed it ~100 times. I was previously worried that this might spoil it, but I had no other options, as I was unwilling to return it and be keyboard-less for several months (inc. overseas shipping). However, there were no bad effects, and it improved the switches by several orders of magnitude. (I still get an occasional glitch, but more like one per day rather than one every five seconds.)

@trulyergonomic
Copy link

@moshev send us an email with subject @moshev providing your order #. Upgrading the Firmware and cleaning switches will fix or improve faulty switches.

@protist Let us know which contact cleaner you used. Upgrading the Firmware might help improve further.

@rekado We have a Firmware uploader for Windows, OSX, and Linux. Upgrading the Firmware and cleaning switches will fix or improve faulty switches.

@protist
Copy link

protist commented Feb 5, 2016

@trulyergonomic As I stated above, I've previously tried upgrading the firmware, which had minimal success. As I stated above, I used Deoxit Contact Cleaner ("D-Series Contact Cleaner/Rejuvenator").

@moshev
Copy link

moshev commented Feb 10, 2016

@protist Thanks. I cleaned them with a contact cleaner and now it works flawlessly.

@yurikhan
Copy link
Owner Author

And this confirms that hardware problems are best solved with hardware means.

@protist
Copy link

protist commented Feb 11, 2016

@moshev No worries, glad it worked for you.

@yurikhan I definitely agree now, but the problem was that the manufacturer's original advice was that it was not a hardware issue at all. At worst, they claimed that pressing a new keyboard's key ~100 times should fix it. I was originally reticent to spray something into the switches, just in case it rendered my $350 keyboard totally broken. I think it's fairly clear now that the earlier batches just had poor-quality switches installed, but their earlier claims were that the firmware was to blame.

@trulyergonomic
Copy link

We just want to clarify that outsiders are who blamed the TEK's Firmware as they couldn't believe their worshiped Cherry switches were at fault. Truly Ergonomic has always stated the problem was due to low-quality switches and that we have been providing enhanced Firmware versions to lessen the problem.

Pressing keys 100 times is due to the well-established break-in period that Cherry switches require; Next-Generation Kailh switches we use on newer models 227/229 do not require a break-in period.

We know now that the best solution is cleaning the switch mechanism of faulty keys with an Electrical Contact Cleaner (1 2); upgrading the Firmware to the latest version helps further.

@rekado
Copy link

rekado commented Feb 12, 2016

(I know this is not a support forum, but whatever: I'll seize this opportunity :))

@trulyergonomic It may well be that the switches were faulty, but no other keyboard ever required me to "break in" the keys (and I did this for each key once I noticed the problems). If that really was necessary I still think it demonstrates a severe lack of quality control.

It must be hard to deal with the many negative reviews from disappointed customers, but the public responses by TE always struck me as blunt, aggressive and unprofessional. (See above "outsiders", "blame", "worshiped"[sic], etc). The same tone (though slightly less overt) can also be found on the official website, which is disappointing.

I hope that cleaning the switches is going to fix this, as the keyboard is pretty much unusable for me (and I had given up on it months ago because it would really enrage me to retype the same work over and over again).

It's good that you claim to have addressed this quality issue, but I would not recommend this keyboard to others because of the way the company responded to criticism. It's just a really unpleasant experience that is on top of the frustration you feel when an expensive tool you just bought badly misbehaves for reasons that should have been caught in QA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants