diff --git a/keyboards/evolv/config.h b/keyboards/evolv/config.h
index 2b91033c98f0..59223cd2c9dd 100644
--- a/keyboards/evolv/config.h
+++ b/keyboards/evolv/config.h
@@ -59,6 +59,8 @@ along with this program. If not, see .
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { A15 }
+#define ENCODER_RESOLUTION 2
+#define TAPPING_TERM 200
/*
* Feature disable options
diff --git a/keyboards/evolv/evolv.c b/keyboards/evolv/evolv.c
index 90df449ee204..54f92c9dbc4d 100644
--- a/keyboards/evolv/evolv.c
+++ b/keyboards/evolv/evolv.c
@@ -16,15 +16,3 @@ along with this program. If not, see .
*/
#include "evolv.h"
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- if (!encoder_update_user(index, clockwise)) return false;
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
diff --git a/keyboards/evolv/keymaps/default/keymap.c b/keyboards/evolv/keymaps/default/keymap.c
index 5e5e5e7abb63..ed76030ae089 100755
--- a/keyboards/evolv/keymaps/default/keymap.c
+++ b/keyboards/evolv/keymaps/default/keymap.c
@@ -17,6 +17,8 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
+#define MEDIA_KEY_DELAY 100
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_evolv_ansi(
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS ,
@@ -47,3 +49,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
+
+uint32_t held_keycode_timer = 0;
+uint16_t mapped_code = 0;
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (clockwise) mapped_code = KC_VOLU;
+ else mapped_code = KC_VOLD;
+ register_code(mapped_code);
+ held_keycode_timer = timer_read32();
+ while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY) ;
+ unregister_code(mapped_code);
+ return true;
+}
diff --git a/keyboards/evolv/keymaps/iso/keymap.c b/keyboards/evolv/keymaps/iso/keymap.c
index 4efe8268d350..305ff805ff91 100755
--- a/keyboards/evolv/keymaps/iso/keymap.c
+++ b/keyboards/evolv/keymaps/iso/keymap.c
@@ -17,6 +17,8 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
+#define MEDIA_KEY_DELAY 100
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_evolv_iso(
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS ,
@@ -47,3 +49,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
+
+uint32_t held_keycode_timer = 0;
+uint16_t mapped_code = 0;
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (clockwise) mapped_code = KC_VOLU;
+ else mapped_code = KC_VOLD;
+ register_code(mapped_code);
+ held_keycode_timer = timer_read32();
+ while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY) ;
+ unregister_code(mapped_code);
+ return true;
+}
diff --git a/keyboards/evolv/keymaps/via/keymap.c b/keyboards/evolv/keymaps/via/keymap.c
index 4efe8268d350..305ff805ff91 100755
--- a/keyboards/evolv/keymaps/via/keymap.c
+++ b/keyboards/evolv/keymaps/via/keymap.c
@@ -17,6 +17,8 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
+#define MEDIA_KEY_DELAY 100
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_evolv_iso(
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS ,
@@ -47,3 +49,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
+
+uint32_t held_keycode_timer = 0;
+uint16_t mapped_code = 0;
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (clockwise) mapped_code = KC_VOLU;
+ else mapped_code = KC_VOLD;
+ register_code(mapped_code);
+ held_keycode_timer = timer_read32();
+ while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY) ;
+ unregister_code(mapped_code);
+ return true;
+}
diff --git a/keyboards/evolv/mcuconf.h b/keyboards/evolv/mcuconf.h
index 2836e4b01a76..84d14114ff36 100644
--- a/keyboards/evolv/mcuconf.h
+++ b/keyboards/evolv/mcuconf.h
@@ -23,9 +23,5 @@
#include_next
-#undef STM32_I2C_USE_DMA
-#define STM32_I2C_USE_DMA FALSE
-
#undef STM32_SPI_USE_SPI2
#define STM32_SPI_USE_SPI2 TRUE
-
diff --git a/keyboards/evolv/rules.mk b/keyboards/evolv/rules.mk
index 380010c7756f..246ec10d90ea 100644
--- a/keyboards/evolv/rules.mk
+++ b/keyboards/evolv/rules.mk
@@ -1,17 +1,14 @@
# MCU name
MCU = STM32F072
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work