Skip to content

Commit

Permalink
Eevee: ee60 and hfkb, enable key_override
Browse files Browse the repository at this point in the history
  • Loading branch information
yangdigi committed Jan 8, 2025
1 parent 016dc73 commit c35c813
Show file tree
Hide file tree
Showing 16 changed files with 254 additions and 195 deletions.
26 changes: 20 additions & 6 deletions keyboards/ydkb/eevee/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,31 @@
#include "config_ble51.h"

/* USB Device descriptor parameter */
#define FW_VER_DATE DOA1
#define FW_VER_DATE DP18
#define VENDOR_ID 0x5944
#define PRODUCT_ID 0x23EE
#define DEVICE_VER 0x0001
#define MANUFACTURER YDKB
#define PRODUCT Eevee Keyboard Uni (FW_VER)

#define EC_INIT_CHECK_TIMES 0
#define EPC_LV KC_P5

/* key matrix size */
#define MATRIX_ROWS 7
#define MATRIX_COLS 16
#define DEBOUNCE_DN 3
#define DEBOUNCE_UP 3
//#define FORCE_NKRO //32B
//#define DEBOUNCE_2BIT_DN 1
//#define DEBOUNCE_2BIT_UP 1
#define DEBOUNCE_DN 3 //((DEBOUNCE_2BIT_DN + 1) * 2 - 1)
#define DEBOUNCE_UP 3 //((DEBOUNCE_2BIT_UP + 1) * 2 - 1)

#define DEFAULT_6KRO // macOS's Capslock switching between Chinese and English has compatibility issues with NKRO

#define ws2812_PORTREG PORTE
#define ws2812_DDRREG DDRE
#define ws2812_pin PE6
#define RGBLED_NUM 16 // Number of LEDs
#define RGBLIGHT_MODES 14 //less rgblight mode to save some space for vial
#define RGBLIGHT_MODES 9 //less rgblight mode to save some space for vial

/* BT Power Control */
#define BT_POWERED (~PORTD & (1<<5))
Expand All @@ -43,5 +45,17 @@
#define CHARGING_FIX_VALUE 50
#define CHARGING_STATE_INIT() do { DDRE &= ~(1<<2); PORTE |= (1<<2);} while(0)

#define BLE51_CONSUMER_ON_DELAY 128
#define BLE51_NO_BATTERY_VOLTAGE
#define BLE51_NO_ULTRA_LOW_BATTERY

#define BLE51_CONSUMER_ON_DELAY 128 //scan slower


/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT //930B
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#define NO_DEFAULT_COMMAND
#define NO_RESET
63 changes: 34 additions & 29 deletions keyboards/ydkb/eevee/ec_matrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define ADC_PRESCALER (_BV(ADPS1) | _BV(ADPS0))
#define C_CHARGE_WAIT() {if (col == 0 && row == 0) _delay_us(1);}
#define C_DISCHARGE_WAIT()
static inline void C_CHARGE_READY(void) { DDRD &= ~(1<<4); }
static inline void C_DISCHARGE(void) { DDRD |= (1<<4); }

static void ec_matrix_check(void);

void adc_init(void) {
void adc_init(void)
{
// High speed mode and MUX5
ADCSRB = _BV(ADHSM) | (ADC_MUX & _BV(MUX5));
//ADLAR 1, left adjusted, and MUX4..0
ADMUX = AREF | _BV(ADLAR) | (ADC_MUX & 0b11111);
}

uint8_t adc_read8(void) {
uint8_t adc_read8(void)
{
uint8_t adc_value;
// Enable ADC and configure prescaler. Start ADC
ADCSRA = _BV(ADEN) | _BV(ADSC) | ADC_PRESCALER;
Expand All @@ -55,33 +59,34 @@ uint8_t adc_read8(void) {
}

/* EC Matrix */
#ifdef APC_ADJ_ENABLE
#define EC_APC_VALUE ec_apc_value
static uint8_t ec_apc_value = 120;
#ifdef APC_ENABLE
#define EC_AP_VALUE ec_ap_value
static uint8_t ec_ap_value = 125;
#else
#define EC_APC_VALUE 128 //ec_apc_value // 120 for EC, 80 for MX
#define EC_AP_VALUE 128 //ec_ap_value // 120 for EC, 80 for MX
#endif
#define EC_RESET_OFFSET 10
uint8_t ec_actuation_point[MATRIX_ROWS][MATRIX_COLS] = {0};
uint8_t ec_key_value[MATRIX_ROWS][MATRIX_COLS];
//static bool ec_inited = 0;

static inline void C_CHARGE_READY(void) { DDRD &= ~(1<<4); }
static inline void C_DISCHARGE(void) { DDRD |= (1<<4); }

static inline void ec_unselect_rows(void) {
static inline void ec_unselect_rows(void)
{
// Clear row pin. Output low.
PORTB = 0;
DDRB = 0x7f;
if (BLE51_PowerState < 2) _delay_us(6);
}

static inline void ec_select_row(uint8_t row) {
static inline void ec_select_row(uint8_t row)
{
// Select row. Hi-Z
DDRB &= ~(1<<row);
PORTB = (1<<row);
DDRB = ~row;
PORTB = row;
}

void ec_matrix_init(void) {
void ec_matrix_init(void)
{
DDRF |= 0b11110010;
PORTF = 0b10000010;

Expand All @@ -95,7 +100,7 @@ void ec_matrix_init(void) {
#if 0 //CONSOLE_ENABLE
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
ec_actuation_point[row][col] = EC_APC_VALUE;
ec_actuation_point[row][col] = EC_AP_VALUE;
}
}
#endif
Expand All @@ -118,7 +123,7 @@ uint8_t ec_get_key(uint8_t row, uint8_t col)
{
cli();
C_CHARGE_READY();
ec_select_row(row);
ec_select_row(1<<row);
C_CHARGE_WAIT();
ec_key_value[row][col] = adc_read8();
sei();
Expand All @@ -127,23 +132,23 @@ uint8_t ec_get_key(uint8_t row, uint8_t col)
C_DISCHARGE();
C_DISCHARGE_WAIT();

if (ec_key_value[row][col] < (EC_APC_VALUE - EC_RESET_OFFSET)) return 0;
else if (ec_key_value[row][col] >= EC_APC_VALUE) return 0x80;
if (ec_key_value[row][col] < (EC_AP_VALUE - EC_RESET_OFFSET)) return 0;
else if (ec_key_value[row][col] >= EC_AP_VALUE) return 0x80;
else return 0b10;
}

#ifdef APC_ADJ_ENABLE
#ifdef APC_ENABLE
#define EC_APC_KEY_POS (VIA_EEPROM_CONFIG_END+1 + (APC_KEY_ROW * MATRIX_COLS + APC_KEY_COL) * 2)
void ec_apc_update(void) {
static uint8_t ec_apc_level[10] = {88, 96, 104, 112, 120, 128, 136, 144, 152, 80};
/* 暂时使用方法:
保存层0的某个按键内,检测它如果有变化,就更新
数字0到9设置,0->9: 39,30->38; P0->P9, 98, 89->97
*/
uint8_t apc_eeprom = eeprom_read_byte(EC_APC_KEY_POS);
if (apc_eeprom >= 89) apc_eeprom -= 59; //P1 to P0
apc_eeprom -= 30;
if (apc_eeprom < 10) ec_apc_value = ec_apc_level[apc_eeprom];
void ec_apc_update(void)
{
static const uint8_t ec_ap_level[8] = {128, 90, 100, 110, 120, 128, 144, 152};
static uint8_t last_level = 10;
// 最后一个Layout,8个选项,占3bit。
uint8_t new_level = (eeprom_read_byte(VIA_EEPROM_LAYOUT_OPTIONS_ADDR) & 0b111);
if (new_level != last_level && new_level < 8) {
ec_ap_value = ec_ap_level[new_level];
last_level = new_level;
}
}
#endif

Expand Down
8 changes: 5 additions & 3 deletions keyboards/ydkb/eevee/keymaps/ee60_vial/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@
#define MATRIX_COLS 14
#define MATRIX_KEYS 62

#define APC_ENABLE

#undef BLE_NAME
#define BLE_NAME "EE60 BLE"

#define DYNAMIC_KEYMAP_LAYER_COUNT 5
#define FLASH_KEYMAP_COUNT 2
//#define FLASH_KEYMAP8_COUNT 1
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
//#define FLASH_KEYMAP_COUNT 2
#define FLASH_KEYMAP8_COUNT 1
#define VIAL_KEYBOARD_UID {0x2E, 0xE6, 0x0E, 0x23, 0x34, 0xEF, 0x99, 0x37}
2 changes: 1 addition & 1 deletion keyboards/ydkb/eevee/keymaps/ee60_vial/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const uint8_t PROGMEM keymaps8[][MATRIX_ROWS][MATRIX_COLS] =
{KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSLASH},
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSPACE},
{KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_GRAVE},
{KC_LSHIFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_DEL},
{KC_LSHIFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_APP},
{KC_NO, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, KC_NO}
}
};
Expand Down
2 changes: 1 addition & 1 deletion keyboards/ydkb/eevee/keymaps/ee60_vial/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ VIAL_INSECURE = yes
QMK_SETTINGS = no
TAP_DANCE_ENABLE = yes
COMBO_ENABLE = yes
KEY_OVERRIDE_ENABLE = no
KEY_OVERRIDE_ENABLE = yes
44 changes: 19 additions & 25 deletions keyboards/ydkb/eevee/keymaps/ee60_vial/vial.json
Original file line number Diff line number Diff line change
@@ -1,31 +1,25 @@
{
"lighting": "none",
"matrix": {"rows": 5, "cols": 14},
"matrix": {"rows": 5, "cols": 14},
"customKeycodes": [
{"name": "BT/USB", "title": "", "shortName": "BT/U"},
{"name": "RESET", "title": "", "shortName": "BLERST"},
{"name": "BT/USB", "title": "", "shortName": "BT/USB"},
{"name": "BLERST", "title": "", "shortName": "BLERST"},
{"name": "BAT%", "title": "", "shortName": "BAT%"},
{"name": "LkMode", "title": "", "shortName": "Lk.M"},
{"name": "RGB_TG", "title": "", "shortName": "R.TG"},
{"name": "RGB_M-", "title": "", "shortName": "R.M-"},
{"name": "RGB_M+", "title": "", "shortName": "R.M+"},
{"name": "HUE-", "title": "", "shortName": "HUE-"},
{"name": "HUE+", "title": "", "shortName": "HUE+"},
{"name": "SAT-", "title": "", "shortName": "SAT-"},
{"name": "SAT+", "title": "", "shortName": "SAT+"},
{"name": "LUM-", "title": "", "shortName": "LUM-"},
{"name": "LUM+", "title": "", "shortName": "LUM+"}
{"name": "LkMode", "title": "", "shortName": "LkMode"}
],
"layouts": {
"labels":["2u BS", ["Bottom", "HHKB 7u", "WKL1", "WKL2"]],
"keymap": [
["0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10","0,11","0,12","0,13\n\n\n0,0","2,13\n\n\n0,0",{"x":0.25,"w":2},"0,13\n\n\n0,1"],
[{"w":1.5},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"w":1.5},"1,13"],
[{"w":1.75},"2,0","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11",{"w":2.25},"2,12"],
[{"w":2.25},"3,0","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10","3,11",{"w":1.75},"3,12","3,13"],
[{"w":1.5,"d":true},"4,0\n\n\n1,0","4,1\n\n\n1,0",{"w":1.5},"4,2",{"w":7},"4,7",{"w":1.5},"4,11","4,12\n\n\n1,0",{"w":1.5,"d":true},"4,13\n\n\n1,0"],
[{"y":0.25,"w":1.5},"4,0\n\n\n1,1","4,1\n\n\n1,1",{"x":10},"4,12\n\n\n1,1",{"w":1.5},"4,13\n\n\n1,1"],
[{"w":1.5},"4,0\n\n\n1,2",{"x":12,"w":1.5},"4,13\n\n\n1,2"]
]
}
"labels":[
"2u BS",
["Bottom", "HHKB 7u", "WKL1", "WKL2"],
["EC Actuation Point", "Default(5)", "1(Light)", "2", "3", "4", "5", "6", "7(Heavy)"]
],
"keymap": [
["0,0",{"x":-1,"d":true},"0,0\n\n\n2,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10","0,11","0,12","0,13\n\n\n0,0","2,13\n\n\n0,0",{"x":0.25,"w":2},"0,13\n\n\n0,1"],
[{"w":1.5},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"w":1.5},"1,13"],
[{"w":1.75},"2,0","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11",{"w":2.25},"2,12"],
[{"w":2.25},"3,0","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10","3,11",{"w":1.75},"3,12","3,13"],
[{"w":1.5,"d":true},"4,0\n\n\n1,0","4,1\n\n\n1,0",{"w":1.5},"4,2",{"w":7},"4,7",{"w":1.5},"4,11","4,12\n\n\n1,0",{"w":1.5,"d":true},"4,13\n\n\n1,0"],
[{"y":0.25,"w":1.5},"4,0\n\n\n1,1","4,1\n\n\n1,1",{"x":10},"4,12\n\n\n1,1",{"w":1.5},"4,13\n\n\n1,1"],
[{"w":1.5},"4,0\n\n\n1,2",{"x":12,"w":1.5},"4,13\n\n\n1,2"]
]
}
}
9 changes: 4 additions & 5 deletions keyboards/ydkb/eevee/keymaps/hfkb_vial/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@
#define MATRIX_COLS 14
#define MATRIX_KEYS 69

#define APC_KEY_ROW 4
#define APC_KEY_COL 3
#define APC_ENABLE

#undef BLE_NAME
#define BLE_NAME "HFKB BLE"

#define DYNAMIC_KEYMAP_LAYER_COUNT 5
#define FLASH_KEYMAP_COUNT 2
//#define FLASH_KEYMAP8_COUNT 1
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
//#define FLASH_KEYMAP_COUNT 2
#define FLASH_KEYMAP8_COUNT 1
#define VIAL_KEYBOARD_UID {0x2E, 0xE6, 0x0E, 0x23, 0x34, 0xEF, 0x99, 0x37}
6 changes: 3 additions & 3 deletions keyboards/ydkb/eevee/keymaps/hfkb_vial/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSPACE},
{KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_GRAVE},
{KC_LSHIFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, MO(1)},
{KC_NO, KC_LALT, KC_LGUI, EPC_LV, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_NO, KC_NO, KC_RGUI, KC_RALT, KC_RALT, KC_NO}
{KC_NO, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_NO, KC_NO, KC_RGUI, KC_RALT, KC_RALT, KC_NO}
},
{
{KC_GRAVE, 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_INSERT},
Expand All @@ -24,8 +24,8 @@ const uint8_t PROGMEM keymaps8[][MATRIX_ROWS][MATRIX_COLS] =
{KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSLASH},
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSPACE},
{KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_GRAVE},
{KC_LSHIFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_DEL},
{KC_NO, KC_LALT, KC_LGUI, EPC_LV, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_NO, KC_NO, KC_RGUI, KC_RALT, KC_RALT, KC_NO}
{KC_LSHIFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_APP},
{KC_NO, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_NO, KC_NO, KC_RGUI, KC_RALT, KC_RALT, KC_NO}
}
};

Expand Down
2 changes: 1 addition & 1 deletion keyboards/ydkb/eevee/keymaps/hfkb_vial/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ VIAL_INSECURE = yes
QMK_SETTINGS = no
TAP_DANCE_ENABLE = yes
COMBO_ENABLE = yes
KEY_OVERRIDE_ENABLE = no
KEY_OVERRIDE_ENABLE = yes
26 changes: 10 additions & 16 deletions keyboards/ydkb/eevee/keymaps/hfkb_vial/vial.json
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
{
"lighting": "none",
"matrix": {"rows": 5, "cols": 14},
"matrix": {"rows": 5, "cols": 14},
"customKeycodes": [
{"name": "BT/USB", "title": "", "shortName": "BT/U"},
{"name": "RESET", "title": "", "shortName": "BLERST"},
{"name": "BT/USB", "title": "", "shortName": "BT/USB"},
{"name": "BLERST", "title": "", "shortName": "BLERST"},
{"name": "BAT%", "title": "", "shortName": "BAT%"},
{"name": "LkMode", "title": "", "shortName": "Lk.M"},
{"name": "RGB_TG", "title": "", "shortName": "R.TG"},
{"name": "RGB_M-", "title": "", "shortName": "R.M-"},
{"name": "RGB_M+", "title": "", "shortName": "R.M+"},
{"name": "HUE-", "title": "", "shortName": "HUE-"},
{"name": "HUE+", "title": "", "shortName": "HUE+"},
{"name": "SAT-", "title": "", "shortName": "SAT-"},
{"name": "SAT+", "title": "", "shortName": "SAT+"},
{"name": "LUM-", "title": "", "shortName": "LUM-"},
{"name": "LUM+", "title": "", "shortName": "LUM+"}
{"name": "LkMode", "title": "", "shortName": "LkMode"}
],
"layouts": {
"labels":["2u BS", "ISO ENT", ["LShift", "2.25", "1.25+1", "2"], ["Space", "6", "3+3", "6.25", "2.5", "3u"]],
"labels":[
"2u BS", "ISO Enter", ["LShift", "2.25u", "1.25u+1u", "JP 2u"],
["Space Row", "US 6u", "US 3u+3u", "US 6.25u", "JP 2.5u", "JP 3u"],
["EC Actuation Point", "Default(5)", "1(Light)", "2", "3", "4", "5", "6", "7(Heavy)"]
],
"keymap": [
["0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10","0,11","0,12","0,13\n\n\n0,0","2,13\n\n\n0,0",{"x":0.25,"w":2},"0,13\n\n\n0,1"],
[{"d":true},"0,0\n\n\n4,0",{"x":-1},"0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10","0,11","0,12","0,13\n\n\n0,0","2,13\n\n\n0,0",{"x":0.25,"w":2},"0,13\n\n\n0,1"],
[{"w":1.5},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"w":1.5},"1,13\n\n\n1,0",{"x":1.25,"w":1.25,"h":2,"w2":1.5,"h2":1,"x2":-0.25},"1,13\n\n\n1,1"],
[{"w":1.75},"2,0","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11",{"w":2.25},"2,12\n\n\n1,0",{"x":0.25},"2,12\n\n\n1,1"],
[{"w":2.25},"3,0\n\n\n2,0","3,2\n\n\n2,0","3,3\n\n\n2,0","3,4\n\n\n2,0","3,5\n\n\n2,0","3,6\n\n\n2,0","3,7\n\n\n2,0","3,8\n\n\n2,0","3,9\n\n\n2,0","3,10\n\n\n2,0","3,11\n\n\n2,0",{"w":1.75},"3,12\n\n\n2,0","3,13"],
Expand Down
Loading

0 comments on commit c35c813

Please sign in to comment.