OESF Portal | OESF Forum | OESF Wiki | LinuxPDA | #planetgemini chat on matrix.org | #gemini-pda chat on Freenode | #zaurus and #alarmz chat on Freenode | ELSI (coming soon) | Ibiblio

IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Keyboard ghosting
ali1234
post May 23 2018, 09:47 AM
Post #1





Group: Members
Posts: 18
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...
Go to the top of the page
 
+Quote Post
Varti
post May 24 2018, 06:37 AM
Post #2





Group: Admin
Posts: 825
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
Go to the top of the page
 
+Quote Post
zevv
post Jul 20 2018, 03:33 AM
Post #3





Group: Members
Posts: 46
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.
Go to the top of the page
 
+Quote Post
Murple2
post Jul 20 2018, 06:28 AM
Post #4





Group: Members
Posts: 119
Joined: 5-January 18
Member No.: 815,856



QUOTE(zevv @ Jul 20 2018, 12:33 PM) *
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?
Go to the top of the page
 
+Quote Post
zevv
post Jul 20 2018, 07:31 AM
Post #5





Group: Members
Posts: 46
Joined: 3-January 18
Member No.: 815,747



QUOTE(Murple2 @ Jul 20 2018, 03:28 PM) *
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.

Go to the top of the page
 
+Quote Post
abliss
post Sep 5 2018, 09:10 AM
Post #6





Group: Members
Posts: 7
Joined: 12-June 18
Member No.: 824,349



QUOTE(zevv @ Jul 20 2018, 11:31 AM) *
QUOTE(Murple2 @ Jul 20 2018, 03:28 PM) *
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?
Go to the top of the page
 
+Quote Post
zevv
post Sep 6 2018, 05:18 AM
Post #7





Group: Members
Posts: 46
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'
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 23rd October 2018 - 04:24 AM