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

Tapping Home-E combo sends "3"; tapping PageUp-I combo sends "8" #61

Open
GongYiLiao opened this issue Feb 24, 2023 · 1 comment
Open

Comments

@GongYiLiao
Copy link

GongYiLiao commented Feb 24, 2023

I have a kinT41 runnig on KB500 with default firmware and it runs flawlessly besides one problem: when I press Home and E at the same time, I get a "3" showing on screen. On the other hand, if I press PageUp and I at the same time, I get an "8".

I get the same issue for Space + E, but I workaround it with combos "E_SPC" (for QWERTY) and "DOT_SPC" (for Dvorak) in the following code (unfortunately the rest six combos do not work)

enum combos {
  E_SPC,
  I_8,
  PGUP_8,
  DOT_SPC,
  PGUP_C,
  C_8,
  HOME_3,
  DOT_3
};

const uint16_t PROGMEM e_spc_combo[] = { KC_E, KC_SPC, COMBO_END };
const uint16_t PROGMEM i_8_combo[] = { KC_8, KC_I, COMBO_END };
const uint16_t PROGMEM pgup_8_combo[] = { KC_PGUP, KC_8, COMBO_END };
const uint16_t PROGMEM dot_spc_combo[] = { KC_DOT, KC_SPC, COMBO_END };
const uint16_t PROGMEM pgup_c_combo[] = { KC_PGUP, KC_C, COMBO_END };
const uint16_t PROGMEM c_8_combo[] = { KC_C, KC_8, COMBO_END };
const uint16_t PROGMEM home_3_combo[] = { KC_HOME, KC_3, COMBO_END };
const uint16_t PROGMEM dot_3_combo[] = { KC_DOT, KC_3, COMBO_END };


combo_t key_combos[COMBO_COUNT] = {
  [E_SPC] = COMBO(e_spc_combo, KC_NO),
  [I_8] = COMBO(i_8_combo, KC_NO),
  [PGUP_8] = COMBO(pgup_8_combo, KC_NO),  
  [DOT_SPC] = COMBO(dot_spc_combo, KC_NO),
  [PGUP_C] = COMBO(pgup_8_combo, KC_NO),
  [C_8] = COMBO(c_8_combo, KC_NO),
  [HOME_3] = COMBO(home_3_combo, KC_NO),
  [DOT_3] = COMBO(dot_3_combo, KC_NO) 
};

I have tested it besides the QWERTY layout, I tested Dvorak keyboard layout on the same hardware and found that Home + "." gives me "3" and PageUp + C gives me "8". Again, Dvorak layout's "." sit on K31 and C sits on K81. Therefore it's seems not an layout issue.

Due to this unexpected outputs at symmetric positions: K35 (Home) + K31 (E) => K30(3); K86(PageUp) + K81(I) => K80(8). I am not sure if this is due to software setup or hardware issue.

Do anymore encounter a similar issue?

Thank you.

@stapelberg
Copy link
Contributor

Hey @GongYiLiao

Sorry for the late reply.

I just tried this out on my kint41 keyboard, and When I press PageUp+I, I don’t get any extra keys. (Testing with the Home key is inconvenient for me, as I remap it to be the Windows modifier keys.)

My first guess would be that this is a specific soldering joint that’s problematic.

You can find more details about the original kinesis keyboard matrix at https://web.archive.org/web/20180831175016/http://humblehacker.com/blog/20100720/hacking-the-kinesis-contoured-keyboard/#more-10, but note that the wiring that the kinT controller uses is a little different. See the schematic: https://github.com/kinx-project/kint/blob/main/schematic-v2021-06-26.pdf

To get a better feel about the keyboard matrix, it might be easiest to enable debug mode and print the active row/col status when pressing a key: https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/#enable-the-debug-console-in-qmk

Also see https://github.com/kinx-project/kint#general-technique-highlight-connections-in-kicad if you haven’t seen that yet.

Hope that helps, and good luck in tracking down the issue!

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

2 participants