I need help.
I'm using a Filco TKL with a Pegasus Hoof 2015 revision.
My goal is to add extra key between Equal/Plus and Backspace.
The key is labeled J14 on the PCB, as you can see
here (right under the USB connector).
Now, I used
keymap.c and
matrix.c from
vpont's fork of the TMK firmware, as he already included the 2015 revision, and made the following changes:
In
keymap.c I added the KB5 entry in the matrix as it's the entry for the J14 key. Like this:
//KB5 is J14 and belongs to JIS
#define KEYMAP( \
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB5, KB2, KL4, KO4, KQ4, \
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
KA4, KP2, KC6, KK6, KC3, KM3, KD0, KA1, KO0, KK0, KL0 \
) { \
/* 0 1 2 3 4 5 6 7 */ \
/* A */ { KC_NO, KC_##KA1, KC_NO, KC_NO , KC_##KA4, KC_##KA5, KC_NO , KC_##KA7 }, \
/* B */ { KC_##KB0, KC_##KB1, KC_##KB2, KC_##KB3, KC_##KB4, KC_##KB5, KC_##KB6, KC_##KB7 }, \
/* C */ { KC_NO, KC_NO, KC_NO, KC_##KC3, KC_NO , KC_##KC5, KC_##KC6, KC_##KC7 }, \
/* D */ { KC_##KD0, KC_##KD1, KC_##KD2, KC_##KD3, KC_##KD4, KC_##KD5, KC_NO , KC_##KD7 }, \
/* E */ { KC_NO, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7 }, \
/* F */ { KC_##KF0, KC_##KF1, KC_##KF2, KC_##KF3, KC_##KF4, KC_##KF5, KC_##KF6, KC_##KF7 }, \
/* G */ { KC_##KG0, KC_##KG1, KC_##KG2, KC_##KG3, KC_##KG4, KC_##KG5, KC_##KG6, KC_##KG7 }, \
/* H */ { KC_NO, KC_##KH1, KC_##KH2, KC_##KH3, KC_##KH4, KC_##KH5, KC_##KH6, KC_##KH7 }, \
/* I */ { KC_NO, KC_##KI1, KC_##KI2, KC_##KI3, KC_##KI4, KC_##KI5, KC_##KI6, KC_##KI7 }, \
/* J */ { KC_NO, KC_##KJ1, KC_##KJ2, KC_##KJ3, KC_##KJ4, KC_##KJ5, KC_##KJ6, KC_##KJ7 }, \
/* K */ { KC_##KK0, KC_NO, KC_NO, KC_NO , KC_##KK4, KC_NO , KC_##KK6, KC_NO }, \
/* L */ { KC_##KL0, KC_NO, KC_NO , KC_NO , KC_##KL4, KC_NO , KC_NO , KC_NO }, \
/* M */ { KC_NO, KC_NO, KC_NO , KC_##KM3, KC_NO , KC_NO , KC_NO , KC_NO }, \
/* N */ { KC_NO , KC_NO, KC_##KN2, KC_##KN3, KC_NO , KC_NO , KC_NO , KC_NO }, \
/* O */ { KC_##KO0, KC_NO, KC_NO , KC_NO , KC_##KO4, KC_NO , KC_##KO6, KC_##KO7 }, \
/* P */ { KC_NO , KC_NO, KC_##KP2, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO }, \
/* Q */ { KC_NO , KC_NO, KC_NO, KC_NO , KC_##KQ4, KC_NO , KC_NO , KC_##KQ7 }, \
/* R */ { KC_##KR0, KC_NO, KC_##KR2, KC_##KR3, KC_##KR4, KC_##KR5, KC_##KR6, KC_##KR7 } \
}
In
led.c I replaced USB_LED_CAPS_LOCK with USB_LED_NUM_LOCK (Just stating for the sake of it but I doubt it causes any issue).
And this would be my
keymap.hstatic const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer
KEYMAP(\
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR, SLCK, BRK, \
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSLS, NUBS, INS, HOME, PGUP, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSPC, DEL, END, PGDN, \
LCTRL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, \
LSFT, NUBS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, \
FN0, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL, LEFT, DOWN, RGHT),
// Layer 1
KEYMAP(\
PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR, LNUM, BOOTLOADER, \
GRV, 1, 2, 3, 4, 5, 6, P7, P8, P9, PSLS, MINS, EQL, BSLS, NUBS, INS, HOME, PGUP, \
TAB, HOME, UP, END, R, T, Y, P4, P5, P6, PAST, LBRC, RBRC, DEL, DEL, END, PGDN, \
LCTRL, LEFT, DOWN, RIGHT,F, G, H, P1, P2, P3, PMNS, QUOT, ENT, \
LSFT, NUBS, Z, X, CALC, V, B, N, P0, P0, PDOT, PPLS, RSFT, VOLU, \
FN0, LGUI, LALT, PENT, RALT, RGUI, CAPS, RCTL, MPRV, VOLD, MNXT),
};
static const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // activate layer 1 when FN1 pressed
};
Everything compiles just fine, but when I load the hex to my board, it goes wild. It only registers one keystroke every now and then and it returns the wrong key, often numbers.
It's basically unusable.
My knowledge of C is very limited so I can't figure out what's going on
[/size]on my own[/size][size=78%].[/size]Is anyone sparing a moment to take a look at this?
Thanks.