qmk/qmk_firmware

[Bug] GMMK2 65% ANSI - LED coordinates misaligned (and potential fix)

Open

#22,769 opened on Dec 27, 2023

View on GitHub
 (0 comments) (0 reactions) (0 assignees)C (43,867 forks)batch import
bughelp wanted

Repository metrics

Stars
 (20,368 stars)
PR merge metrics
 (Avg merge 20d 9h) (27 merged PRs in 30d)

Description

Describe the Bug

When using reactive effects (especially column-based, like RGB_MATRIX_SOLID_REACTIVE_CROSS), there is a noticeable LEDs misalignment, mainly on a bottom row. For example, when pressing "RAlt" with cross effect enabled, a column from "M" to "8" is lit. and not from ">" to "0" as expected.

The values in gmmk/gmmk2/p65/ansi/ansi.c:g_led_config are the cause: for example, Alt_R and M keys share the exact same X coord, which is clearly incorrect.

I found a top-down picture of the keyboard, cropped it and roughly translated LED pixel coordinates to QMK's standard range. With those values put into g_led_config, reactive effects look in place, and there is no bottom row misalignment.

The resulting g_led_config is the following. I can create a pull request, if this solution is confirmed to be correct.

led_config_t g_led_config = {{
    { 44, 57, __, 64, __, 66, 58, 55},
    { 16, 15, 31,  0, 45, 59, __,  1},
    { 17, 30, 32, 60, 46, 14, 29,  2},
    { 18, 61, 33, 63, 47, 56, 62,  3},
    { 19, 20, 34, 35, 48, 49,  5,  4},
    { 22, 21, 37, 36, 51, 50,  6,  7},
    { 23, 27, 38, __, 52, 43, 12,  8},
    { 24, 13, 39, 65, 53, __, 28,  9},
    { 25, 26, 40, 41, 42, 54, 11, 10}
}, {
    {10,  0 }, //  0  Esc
    {24,  0 }, //  1  1
    {38,  0 }, //  2  2
    {52,  0 }, //  3  3
    {66,  0 }, //  4  4
    {80,  0 }, //  5  5
    {94,  0 }, //  6  6
    {108, 0 }, //  7  7
    {122, 0 }, //  8  8
    {136, 0 }, //  9  9
    {150, 0 }, //  10 0
    {164, 0 }, //  11 -
    {178, 0 }, //  12 =
    {194, 0 }, //  13 Backspace
    {214, 0 }, //  14 Del

    {14,  16}, //  15 Tab
    {30,  16}, //  16 Q
    {44,  16}, //  17 W
    {58,  16}, //  18 E
    {72,  16}, //  19 R
    {86,  16}, //  20 T
    {100, 16}, //  21 Y
    {114, 16}, //  22 U
    {128, 16}, //  23 I
    {142, 16}, //  24 O
    {156, 16}, //  25 P
    {170, 16}, //  26 [
    {184, 16}, //  27 ]
    {196, 16}, //  28 \|
    {214, 16}, //  29 PgUp

    {16,  32}, //  30 Caps Lock
    {34,  32}, //  31 A
    {48,  32}, //  32 S
    {62,  32}, //  33 D
    {76,  32}, //  34 F
    {90,  32}, //  35 G
    {104, 32}, //  36 H
    {118, 32}, //  37 J
    {132, 32}, //  38 K
    {146, 32}, //  39 L
    {160, 32}, //  40 ;
    {174, 32}, //  41 '
    {192, 32}, //  42 Enter
    {214, 32}, //  43 PgDn

    {20,  48}, //  44 Shift_L
    {42,  48}, //  45 Z
    {56,  48}, //  46 X
    {70,  48}, //  47 C
    {84,  48}, //  48 V
    {98,  48}, //  49 B
    {112, 48}, //  50 N
    {126, 48}, //  51 M
    {140, 48}, //  52 ,
    {154, 48}, //  53 .
    {168, 48}, //  54 /
    {182, 48}, //  55 Shift_R
    {200, 48}, //  56 Up
    {214, 48}, //  57 END

    {12,  64}, //  58 Ctrl_L
    {30,  64}, //  59 Win_L
    {48,  64}, //  60 Alt_L
    {96,  64}, //  61 Space
    {148, 64}, //  62 Alt_R
    {166, 64}, //  63 FN
    {188, 64}, //  64 Left
    {200, 64}, //  65 Down
    {214, 64}, //  66 Right

    {0,   0},  //  69 LED 1
    {0,   7},  //  70 LED 2
    {0,   14}, //  71 LED 3
    {0,   21}, //  72 LED 4
    {0,   28}, //  73 LED 5
    {0,   35}, //  74 LED 6
    {0,   42}, //  75 LED 7
    {0,   49}, //  76 LED 8
    {0,   56}, //  77 LED 9
    {0,   64}, //  78 LED 10
    {224, 0 }, //  79 LED 11
    {224, 7 }, //  80 LED 12
    {224, 14}, //  81 LED 13
    {224, 21}, //  82 LED 14
    {224, 28}, //  83 LED 15
    {224, 35}, //  84 LED 16
    {224, 42}, //  85 LED 17
    {224, 49}, //  86 LED 18
    {224, 56}, //  87 LED 19
    {224, 64}, //  88 LED 20
}, {
    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
    4, 4, 4, 4, 4, 4, 4, 4, 4,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2
} };

Keyboard Used

gmmk/gmmk2/p65/ansi

Link to product page (if applicable)

https://www.gloriousgaming.com/products/gmmk2

Operating System

Windows

qmk doctor Output

Ψ QMK Doctor is checking your environment.
Ψ CLI version: 1.1.2
Ψ QMK home: C:/Users/tri4ng1e/qmk_firmware
Ψ Detected Windows 10 (10.0.22621).
Ψ QMK MSYS version: 1.8.0
Ψ Testing userspace candidate: C:/Users/tri4ng1e/qmk_userspace -- Valid `qmk.json`
Ψ QMK userspace: C:/Users/tri4ng1e/qmk_userspace
Ψ Userspace enabled: True
Ψ Git branch: master
Ψ Repo version: 0.23.2
⚠ Git has unstashed/uncommitted changes.
Ψ - Latest master: 2023-12-24 13:16:34 -0500 (83b84187ea) -- [Keyboard] Add Noodlepad_Micro (#22703)
Ψ - Latest upstream/master: 2023-12-27 12:12:42 +1100 (cc08f230ff) -- bm40hsrgb/rev2: disable some RGB Matrix effects to reduce filesize (#22761)
Ψ - Latest upstream/develop: None
Ψ - Common ancestor with upstream/master: 2023-12-24 13:16:34 -0500 (83b84187ea) -- [Keyboard] Add Noodlepad_Micro (#22703)
Ψ - Common ancestor with upstream/develop: None
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 12.2.0
Ψ Found avr-gcc version 12.2.0
⚠ We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.
Ψ Found avrdude version 7.0
Ψ Found dfu-programmer version 1.1.0
Ψ Found dfu-util version 0.11
Ψ Submodules are up to date.
Ψ Submodule status:
Ψ - lib/chibios: 2023-04-15 13:48:04 +0000 --  (11edb1610)
Ψ - lib/chibios-contrib: 2023-07-17 11:39:05 +0200 --  (da78eb37)
Ψ - lib/googletest: 2021-06-11 06:37:43 -0700 --  (e2239ee6)
Ψ - lib/lufa: 2022-08-26 12:09:55 +1000 --  (549b97320)
Ψ - lib/vusb: 2022-06-13 09:18:17 +1000 --  (819dbc1)
Ψ - lib/printf: 2022-06-29 23:59:58 +0300 --  (c2e3b4e)
Ψ - lib/pico-sdk: 2023-02-12 20:19:37 +0100 --  (a3398d8)
Ψ - lib/lvgl: 2022-04-11 04:44:53 -0600 --  (e19410f8)
Ψ QMK is ready to go, but minor problems were found

Is AutoHotKey / Karabiner installed

  • AutoHotKey (Windows)
  • Karabiner (macOS)

Other keyboard-related software installed

No response

Additional Context

No response

Contributor guide