I got it partially working, but there are some mysteries. (not enough to stop me from writing this post on it, though).
There are some keys that don't work, like the right mouse button, the alt's, and pgup/pgdn. I attribute this to errors in my matrix.
However, the more baffling one is that backspace and backslash are switched. I checked several times, and I cannot tell why that is.
#define KEYMAP( \
KAA, KFM, KCM, KGQ, KDP, KDQ, KDR, \
KDC, KDB, KBB, KAB, KAK, KAG, KBH, KDH, KDK, KFK, KFL, KFP, KDL, KFQ, KFR, \
KDA, KFA, KFC, KFB, KFE, KDE, KDF, KFF, KFG, KFH, KFI, KDI, KDG, KBK, \
KBA, KCA, KCC, KCB, KCE, KBE, KBF, KCF, KCG, KCH, KCI, KBI, KBG, KEK, \
KBC, KEA, KEC, KEB, KEE, KAE, KAF, KEF, KEG, KEH, KEI, KAI, KGK, \
KBJ, KGA, KGC, KGB, KGE, KHE, KHF, KGF, KGG, KGH, KHI, KGJ, \
KKN, KDD, KAM, KHK, KHM, KGD, KAQ, \
KIO, KJO, KHQ, KHL, KHP \
) { \
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 */ \
/* 0 */ { KC_##KAA, KC_##KAB, KC_NO, KC_NO, KC_##KAE, KC_##KAF, KC_##KAG, KC_NO, KC_##KAI, KC_NO, KC_##KAK, KC_NO, KC_##KAM, KC_NO, KC_NO, KC_NO, KC_##KAQ, KC_NO }, \
/* 1 */ { KC_##KBA, KC_##KBB, KC_##KBC, KC_NO, KC_##KBE, KC_##KBF, KC_##KBG, KC_##KBH, KC_##KBI, KC_##KBJ, KC_##KBK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
/* 2 */ { KC_##KCA, KC_##KCB, KC_##KCC, KC_NO, KC_##KCE, KC_##KCF, KC_##KCG, KC_##KCH, KC_##KCI, KC_NO, KC_NO, KC_NO, KC_##KCM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
/* 3 */ { KC_##KDA, KC_##KDB, KC_##KDC, KC_##KDD, KC_##KDE, KC_##KDF, KC_##KDG, KC_##KDH, KC_##KDI, KC_NO, KC_##KDK, KC_##KDL, KC_NO, KC_NO, KC_NO, KC_##KDP, KC_##KDQ, KC_##KDR }, \
/* 4 */ { KC_##KEA, KC_##KEB, KC_##KEC, KC_NO, KC_##KEE, KC_##KEF, KC_##KEG, KC_##KEH, KC_##KEI, KC_NO, KC_##KEK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
/* 5 */ { KC_##KFA, KC_##KFB, KC_##KFC, KC_NO, KC_##KFE, KC_##KFF, KC_##KFG, KC_##KFH, KC_##KFI, KC_NO, KC_##KFK, KC_##KFL, KC_##KFM, KC_NO, KC_NO, KC_##KFP, KC_##KFQ, KC_##KFR }, \
/* 6 */ { KC_##KGA, KC_##KGB, KC_##KGC, KC_##KGD, KC_##KGE, KC_##KGF, KC_##KGG, KC_##KGH, KC_NO, KC_##KGJ, KC_##KGK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KGQ, KC_NO }, \
/* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_##KHE, KC_##KHF, KC_NO, KC_NO, KC_##KHI, KC_NO, KC_##KHK, KC_##KHL, KC_##KHM, KC_NO, KC_NO, KC_##KHP, KC_##KHQ, KC_NO }, \
/* 8 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KIO, KC_NO, KC_NO, KC_NO }, \
/* 9 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KJO, KC_NO, KC_NO, KC_NO }, \
/* 10*/ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##KKN, KC_NO, KC_NO, KC_NO, KC_NO } \
}
#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,---. ,-----------------------.
* |GUI| |Psc|Fn1|Pau|Ins|Hom|PUp|
* |-----------------------------------------------------------|
* |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del|End|PDn|
* |-----------------------------------------------------------|
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp |
* |-----------------------------------------------------------|
* |Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
* |-----------------------------------------------------------|
* |Escape | A | S | D | F | G | H | J | K | L | ; | ' |Return |
* |-----------------------------------------------------------|
* |Shift | Z | X | C | V | B | N | M | , | . | / |Shift |
* |-----------------------------------------------------------'
* |Fn0|Ctrl |Alt |Space |Alt |Ctrl | |^ |
* `------------------------------------------------' ,--------.
* | MB1 | MB2 | |< |v |> |
* `-====---====-' `--------'
*/
KEYMAP(LGUI, PSCR,FN1, PAUS,INS, HOME,PGUP, \
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, END, PGDN, \
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
ESC, A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, \
FN0, LCTL,LALT, SPC, RALT,RCTL, UP,\
BTN1,BTN2, LEFT,DOWN,RGHT),
It's relatively easy to find where they should be in the code for the matrix (backspace is BK and backslash is EK), (and I did look at the physical circuit itself to confirm), so I can't help to think that there's some software library issue somewhere... Nothing else sharing those rows or columns are mixed up, either.