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;