diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index fc66dc0ef..b2417a6c9 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h @@ -426,6 +426,9 @@ enum internal_special_keycodes { KC_MEDIA_FAST_FORWARD, KC_MEDIA_REWIND, /* 0xBC */ + /* Jump to bootloader */ + KC_RESET = 0xBF, + /* Fn key */ KC_FN0 = 0xC0, KC_FN1, diff --git a/tmk_core/common/keymap.c b/tmk_core/common/keymap.c index 9f4fab521..bf7ddee79 100644 --- a/tmk_core/common/keymap.c +++ b/tmk_core/common/keymap.c @@ -14,6 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#include #include "keymap.h" #include "report.h" #include "keycode.h" @@ -21,6 +22,7 @@ along with this program. If not, see . #include "action.h" #include "action_macro.h" #include "debug.h" +#include "print.h" static action_t keycode_to_action(uint8_t keycode); @@ -140,6 +142,13 @@ static action_t keycode_to_action(uint8_t keycode) case KC_TRNS: action.code = ACTION_TRANSPARENT; break; + case KC_RESET: + clear_keyboard(); + print("\n\nJump to bootloader... "); + _delay_ms(50); + bootloader_jump(); + print("not supported.\n"); + break; default: action.code = ACTION_NO; break;