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: 845
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: 122
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
gidds
post Oct 30 2018, 03:30 AM
Post #8





Group: Members
Posts: 207
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~
Go to the top of the page
 
+Quote Post
salvomic
post Oct 30 2018, 03:33 AM
Post #9





Group: Members
Posts: 288
Joined: 21-February 18
From: Sicily
Member No.: 818,107



QUOTE(gidds @ Oct 30 2018, 01:30 PM) *
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
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: 15th December 2018 - 11:25 AM