Closed Gatsidakos closed 1 week ago
config
/ key matrix size /
/ key matrix pins /
/ COL2ROW or ROW2COL /
/ Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap /
/ Locking resynchronize hack /
/ key combination for command /
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )
Keymap
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP( KC_Z, LCTL(KC_S), LCTL(KC_H), LCTL(KC_U), LCTL(KC_V), KC_F2, KC_P1, KC_P3, KC_P9, KC_P7, KC_F1, KC_P2, KC_P4, KC_P6, KC_P8),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) };
void matrix_init_user(void) { }
void matrix_scan_user(void) { }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }
bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { / First encoder / if (clockwise) { tap_code(KC_P1); } else { tap_code(KC_P2); } } else if (index == 1) { / Second encoder / if (clockwise) { tap_code(KC_P3); } else { tap_code(KC_P4); } } else if (index == 2) { / Third encoder / if (clockwise) { tap_code(KC_P5); } else { tap_code(KC_P6); } } else if (index == 3) { / Fourth encoder / if (clockwise) { tap_code(KC_P7); } else { tap_code(KC_P8); } } return false; }
did you try overwrite encoder_driver_task
function?
https://github.com/qmk/qmk_firmware/blob/dafc46f1d11134bee65a4b21a404f8e79d7b8402/drivers/encoder/encoder_quadrature.c#L209
I ended up using mobiflight and avoid the headaches of programmingBest RegardsGeorge Atsidakos, P.EngOn Jun 19, 2024, at 00:43, Y.KEISUKE @.***> wrote: did you try overwrite encoder_driver_task function? https://github.com/qmk/qmk_firmware/blob/dafc46f1d11134bee65a4b21a404f8e79d7b8402/drivers/encoder/encoder_quadrature.c#L209
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>
This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs.
For maintainers: Please label with bug
, in progress
, on hold
, discussion
or to do
to prevent the issue from being re-flagged.
Issue Description
Hello there,
I'm relatively new to this one but capable enough to understand and implement.
I purchased an Arduino Pro Micro and created a small panel to control my autopilot in MSFS. I have eleven keys and 4 Rotary Encoders (20 Pulses per full Rotation) on my panel.
My MSFS recognizes all the keys as an external mechanical keyboard but the only issue that I'm facing is with the Rotary Encoders Response. For example, When I'm trying to change the heading to 1 Degree right, I have to turn the Rotary Encoder multiple turns (Sometimes 40-60 turns for 1 degree).
Not sure if you have similar issues resolved. I will attach below my keymap and config: