From 99d89b124f51f79d272e4b8b89bc56f7700480b5 Mon Sep 17 00:00:00 2001 From: just-another-jxliu <just-another-jxliu@users.noreply.github.com> Date: Thu, 15 Aug 2019 00:51:54 -0700 Subject: [PATCH] Drop FW Fixes for massdrop alt, ctrl, rocketeer & shift keyboards (#8) - In config.h of each, added '#define BOOTKEY_HOLD_MS 2000' to define hold time required to active Boot key (was 500ms hardcode) - Updated all active keymap.c files to use this define - Added line in quantum.c in MAGIC_TOGGLE_NKRO case to clear_keyboard() before toggling nkro state to fix stuck key issues when switching NKRO. --- keyboards/massdrop/alt/config.h | 3 +++ keyboards/massdrop/alt/keymaps/default/keymap.c | 2 +- keyboards/massdrop/alt/keymaps/default_md/keymap.c | 2 +- keyboards/massdrop/alt/keymaps/mac/keymap.c | 2 +- keyboards/massdrop/alt/keymaps/mac_md/keymap.c | 2 +- keyboards/massdrop/ctrl/config.h | 3 +++ keyboards/massdrop/ctrl/keymaps/default/keymap.c | 2 +- keyboards/massdrop/ctrl/keymaps/default_md/keymap.c | 2 +- keyboards/massdrop/ctrl/keymaps/mac/keymap.c | 2 +- keyboards/massdrop/ctrl/keymaps/mac_md/keymap.c | 2 +- keyboards/massdrop/rocketeer/config.h | 3 +++ keyboards/massdrop/rocketeer/keymaps/default_md/keymap.c | 2 +- keyboards/massdrop/rocketeer/keymaps/mac_md/keymap.c | 2 +- keyboards/massdrop/shift/config.h | 3 +++ keyboards/massdrop/shift/keymaps/default_md/keymap.c | 2 +- keyboards/massdrop/shift/keymaps/mac_md/keymap.c | 2 +- quantum/quantum.c | 1 + 17 files changed, 25 insertions(+), 12 deletions(-) diff --git a/keyboards/massdrop/alt/config.h b/keyboards/massdrop/alt/config.h index 05199b2da6c9..6ed4208166bf 100644 --- a/keyboards/massdrop/alt/config.h +++ b/keyboards/massdrop/alt/config.h @@ -94,6 +94,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +// Required BOOT key hold time (in ms) for restarting to bootloader -PS081419 +#define BOOTKEY_HOLD_MS 2000 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ //#define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/massdrop/alt/keymaps/default/keymap.c b/keyboards/massdrop/alt/keymaps/default/keymap.c index 83cbe622cdf1..39cd97eb0839 100644 --- a/keyboards/massdrop/alt/keymaps/default/keymap.c +++ b/keyboards/massdrop/alt/keymaps/default/keymap.c @@ -84,7 +84,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/alt/keymaps/default_md/keymap.c b/keyboards/massdrop/alt/keymaps/default_md/keymap.c index 443ad03d1c3a..122e8be641b3 100644 --- a/keyboards/massdrop/alt/keymaps/default_md/keymap.c +++ b/keyboards/massdrop/alt/keymaps/default_md/keymap.c @@ -231,7 +231,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/alt/keymaps/mac/keymap.c b/keyboards/massdrop/alt/keymaps/mac/keymap.c index 900504e4d46d..9ea817e260e5 100644 --- a/keyboards/massdrop/alt/keymaps/mac/keymap.c +++ b/keyboards/massdrop/alt/keymaps/mac/keymap.c @@ -84,7 +84,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/alt/keymaps/mac_md/keymap.c b/keyboards/massdrop/alt/keymaps/mac_md/keymap.c index facfd10a150b..e505ef9a83eb 100644 --- a/keyboards/massdrop/alt/keymaps/mac_md/keymap.c +++ b/keyboards/massdrop/alt/keymaps/mac_md/keymap.c @@ -231,7 +231,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/ctrl/config.h b/keyboards/massdrop/ctrl/config.h index b67f3b711761..035f954218a0 100644 --- a/keyboards/massdrop/ctrl/config.h +++ b/keyboards/massdrop/ctrl/config.h @@ -94,6 +94,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +// Required BOOT key hold time (in ms) for restarting to bootloader -PS081419 +#define BOOTKEY_HOLD_MS 2000 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ //#define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/massdrop/ctrl/keymaps/default/keymap.c b/keyboards/massdrop/ctrl/keymaps/default/keymap.c index 75c9fd35fa10..0637055d92d1 100644 --- a/keyboards/massdrop/ctrl/keymaps/default/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/default/keymap.c @@ -87,7 +87,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c index ddd90a8fa803..73891473a048 100644 --- a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c @@ -234,7 +234,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/ctrl/keymaps/mac/keymap.c b/keyboards/massdrop/ctrl/keymaps/mac/keymap.c index cceaa1078056..20cd74b5d8a1 100644 --- a/keyboards/massdrop/ctrl/keymaps/mac/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/mac/keymap.c @@ -87,7 +87,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/ctrl/keymaps/mac_md/keymap.c b/keyboards/massdrop/ctrl/keymaps/mac_md/keymap.c index fcf1057d7576..f2b072833873 100644 --- a/keyboards/massdrop/ctrl/keymaps/mac_md/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/mac_md/keymap.c @@ -234,7 +234,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/rocketeer/config.h b/keyboards/massdrop/rocketeer/config.h index 3caa0fdf7a3f..d9bab749b27d 100644 --- a/keyboards/massdrop/rocketeer/config.h +++ b/keyboards/massdrop/rocketeer/config.h @@ -95,6 +95,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +// Required BOOT key hold time (in ms) for restarting to bootloader -PS081419 +#define BOOTKEY_HOLD_MS 2000 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ //#define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/massdrop/rocketeer/keymaps/default_md/keymap.c b/keyboards/massdrop/rocketeer/keymaps/default_md/keymap.c index 633c8a8c7969..c184d750a6c1 100644 --- a/keyboards/massdrop/rocketeer/keymaps/default_md/keymap.c +++ b/keyboards/massdrop/rocketeer/keymaps/default_md/keymap.c @@ -231,7 +231,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/rocketeer/keymaps/mac_md/keymap.c b/keyboards/massdrop/rocketeer/keymaps/mac_md/keymap.c index f227978d58ce..77aaa01fc2fc 100644 --- a/keyboards/massdrop/rocketeer/keymaps/mac_md/keymap.c +++ b/keyboards/massdrop/rocketeer/keymaps/mac_md/keymap.c @@ -231,7 +231,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/shift/config.h b/keyboards/massdrop/shift/config.h index d5a9bb6406ec..f89c7703e8a5 100644 --- a/keyboards/massdrop/shift/config.h +++ b/keyboards/massdrop/shift/config.h @@ -125,6 +125,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +// Required BOOT key hold time (in ms) for restarting to bootloader -PS081419 +#define BOOTKEY_HOLD_MS 2000 + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ //#define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/massdrop/shift/keymaps/default_md/keymap.c b/keyboards/massdrop/shift/keymaps/default_md/keymap.c index 5a9933a99286..9386c291da3c 100644 --- a/keyboards/massdrop/shift/keymaps/default_md/keymap.c +++ b/keyboards/massdrop/shift/keymaps/default_md/keymap.c @@ -243,7 +243,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/keyboards/massdrop/shift/keymaps/mac_md/keymap.c b/keyboards/massdrop/shift/keymaps/mac_md/keymap.c index c4b7a5975b6e..d5977c5c145b 100644 --- a/keyboards/massdrop/shift/keymaps/mac_md/keymap.c +++ b/keyboards/massdrop/shift/keymaps/mac_md/keymap.c @@ -243,7 +243,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { key_timer = timer_read32(); } else { - if (timer_elapsed32(key_timer) >= 500) { + if (timer_elapsed32(key_timer) >= BOOTKEY_HOLD_MS) { reset_keyboard(); } } diff --git a/quantum/quantum.c b/quantum/quantum.c index 6530738b71d3..e01e98ff0015 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -647,6 +647,7 @@ bool process_record_quantum(keyrecord_t *record) { #endif break; case MAGIC_TOGGLE_NKRO: + clear_keyboard(); // clear first buffer to prevent stuck keys -PS080919 keymap_config.nkro = !keymap_config.nkro; break; default: