![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Group: Members Posts: 19 Joined: 16-May 18 Member No.: 822,713 ![]() |
The Gemini keyboard seems to not have any diodes to prevent ghosting. For example with UK keymap if you press any three of the keys E, R, O, 0, then the fourth key will also be triggered. This can be confirmed to be a hardware bug by running "adb getevent /dev/input/event2" and holding down E, R, and O.
https://deskthority.net/wiki/Rollover,_blocking_and_ghosting provides an explanation of why ghosting happens. There are many combinations of keys which do this. The most annoying is probably SHIFT, 9, 0, C, which is easily triggered if you try to type "()" because you are writing code... |
|
|
![]()
Post
#2
|
|
![]() Group: Admin Posts: 937 Joined: 30-April 08 From: Italy Member No.: 21,713 ![]() |
I have now updated the list of HW/SW issues with the problem you have encountered. This problem might become an annoyance in tracker programs (for music) like Milkytracker, where you can use the keyboard as a virtual piano and you often press two or more keys at once.
Varti |
|
|
![]()
Post
#3
|
|
Group: Members Posts: 47 Joined: 3-January 18 Member No.: 815,747 ![]() |
For the brave: I have created a Android boot image which has a fix for this issue.
You can find the image here: https://github.com/zevv/gemini-android-kern...nux_boot-v1.img Install with flashtool by downloading only the 'boot' partition and unticking the rest. The original fix was made by Nathan Banks, I just took his code into the Android kernel source and built an image. It works fine for me, but use at your own risk, things might break. |
|
|
![]()
Post
#4
|
|
Group: Members Posts: 138 Joined: 5-January 18 Member No.: 815,856 ![]() |
For the brave: I have created a Android boot image which has a fix for this issue. You can find the image here: https://github.com/zevv/gemini-android-kern...nux_boot-v1.img Install with flashtool by downloading only the 'boot' partition and unticking the rest. The original fix was made by Nathan Banks, I just took his code and built the image. It works fine for me, but use at your own risk, things might break. Thanks that's really awesome. Can you post a link to Nathan Banks' code, or explain the fix? |
|
|
![]()
Post
#5
|
|
Group: Members Posts: 47 Joined: 3-January 18 Member No.: 815,747 ![]() |
Thanks that's really awesome. Can you post a link to Nathan Banks' code, or explain the fix? Of course, here is his original pull request on Gemian (which has not been merged yet): https://github.com/gemian/gemini-linux-kernel-3.18/pull/2 QUOTE The Gemini PDA keyboard has 2-key roll-over. That means that if 3 or more keys are pressed down in some combinations, four keys will actually be detected. One example is that if K+J+D are pressed simultaneously, the old driver will produce K+J+S+D. Since I usually use the Dvorak layout, this meant that often if I typed "the" or "those" Gemini would produce "thoe" or "thoese" because I'm lazy about lifting up keys. It also meant that Control + L_Shift + M & N can't be differentiated from each other. Instead of adding extra keys (ie. Ghosting) my changed driver now blocks the extra keys, however the keypress is registered if one of the first two keys is released before the third. Thus "the" in Dvorak is much easier to type, and Control+L_Shift+M will be recorded as long as the Shift or Control is released before the M. Unfortunately this is the best we can do without redesigning the keyboard matrix. I also changed the formatting to match the Linux Kernel. See youtu.be/L3ByBtM-w9I for a description of why keyboard Ghosting happens. |
|
|
![]()
Post
#6
|
|
Group: Members Posts: 12 Joined: 12-June 18 Member No.: 824,349 ![]() |
Thanks that's really awesome. Can you post a link to Nathan Banks' code, or explain the fix? Of course, here is his original pull request on Gemian (which has not been merged yet): https://github.com/gemian/gemini-linux-kernel-3.18/pull/2 I just flashed this boot image and it works great. The ghosting is gone. Thanks a million! Would you be willing to link to a description of how you rolled this kernel into a new boot image? |
|
|
![]()
Post
#7
|
|
Group: Members Posts: 47 Joined: 3-January 18 Member No.: 815,747 ![]() |
QUOTE I just flashed this boot image and it works great. The ghosting is gone. Thanks a million! Would you be willing to link to a description of how you rolled this kernel into a new boot image? It's in the readme of my repo: https://github.com/zevv/gemini-android-kernel-3.18, check the section 'Building' |
|
|
![]()
Post
#8
|
|
![]() Group: Members Posts: 284 Joined: 13-January 18 From: UK Member No.: 816,386 ![]() |
I'm still getting ghosting after upgrading to the latest official firmware (Gemini-7.1-Planet-08102018-V2).
I can reliably demonstrate it with only 3 keys: hold down right-Shift, press F, and then press S before releasing the F. It registers a spurious ~, giving: FS~ |
|
|
![]()
Post
#9
|
|
![]() Group: Members Posts: 290 Joined: 21-February 18 From: Sicily Member No.: 818,107 ![]() |
I'm still getting ghosting after upgrading to the latest official firmware (Gemini-7.1-Planet-08102018-V2). I can reliably demonstrate it with only 3 keys: hold down right-Shift, press F, and then press S before releasing the F. It registers a spurious ~, giving: FS~ with right Shift I get FSé, with left Shift FS |
|
|
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 10th December 2019 - 05:36 PM |