diff options
Diffstat (limited to 'keyboards')
124 files changed, 975 insertions, 252 deletions
diff --git a/keyboards/akko/5087/5087.c b/keyboards/akko/5087/5087.c index 996f8c2585..27439c20ef 100644 --- a/keyboards/akko/5087/5087.c +++ b/keyboards/akko/5087/5087.c @@ -164,7 +164,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { if (record->event.pressed) { set_single_persistent_default_layer(MAC_B); keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case QK_RGB_MATRIX_TOGGLE: diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json index 4a94d023d4..2fd99fb5ab 100644 --- a/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "matrix_pins": { "right": { "cols": ["C7", "B7", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json index bc95061ced..51f6cedf51 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json index cc990d3f21..cf800062b3 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json index 6719b21196..d9039f7591 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json index 2de77b07f0..ca48cc0f3c 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json @@ -30,7 +30,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json index dcc454366c..cef4eab72f 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "matrix_pins": { "right": { "cols": ["F1", "C7", "B7", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json index ce74b2dc6d..fdfd2c38f9 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json index 825508475c..650bf46481 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json index 4d9cfb616d..b2a4890f56 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json index 05d82b2445..a405395438 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json @@ -30,7 +30,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json index b90b144c8b..6b0caff82e 100644 --- a/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "matrix_pins": { "right": { "cols": ["F1", "C7", "B7", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json index 8ae66d083b..4163f9d476 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json index b0c98389f7..0da7d0b442 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json index 1e072db85b..026684eb92 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json index ab145e0f95..ed929f7fb7 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json @@ -30,7 +30,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json index ac52a86eb5..366deac293 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json @@ -13,7 +13,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "processor": "RP2040", "bootloader": "rp2040" diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json index 3c4c559cb6..e954f4f657 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json @@ -13,7 +13,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "processor": "RP2040", "bootloader": "rp2040" diff --git a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json index 12e336f023..3ae31d0b46 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json @@ -14,7 +14,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1", + "serial": { + "pin": "GP1" + }, "bootmagic": { "matrix": [4, 0] }, diff --git a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json index 7e40208a5d..4f0ea648c8 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json +++ b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json @@ -14,7 +14,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1", + "serial": { + "pin": "GP1" + }, "bootmagic": { "matrix": [5, 0] }, diff --git a/keyboards/bastardkb/scylla/v1/elitec/keyboard.json b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json index 17b6b7fc36..25963f006c 100644 --- a/keyboards/bastardkb/scylla/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/scylla/v2/elitec/keyboard.json b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json index 7bfb7ff5a4..316606b17b 100644 --- a/keyboards/bastardkb/scylla/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json index 2b9022d24e..2c0beb5c1d 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json index cd4da3ac41..ed92be5a45 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json index 06bfeda7d2..80325bfea3 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json index 2910d80b2f..3bbba6d310 100644 --- a/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json index dec2537b65..43675db36d 100644 --- a/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json index 897f195a31..32030dbd00 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json index 06a93dfbeb..51227f5065 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json index 6dd86bcc12..2e9745b7f2 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json index 59988074ba..5110ea0d74 100644 --- a/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json index 01679bcff9..701ec6af28 100644 --- a/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json index 2048db6251..15db3db6e8 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json index 8dd21b7591..3936b9368a 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json index 41abba96cb..2cbee7fe17 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c index 6f76582e4b..a410480d7d 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c @@ -53,10 +53,26 @@ void board_init(void) { SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); } +uint32_t read_custom_config(void *data, uint32_t offset, uint32_t length) { +#ifdef VIA_ENABLE + return via_read_custom_config(data, offset, length); +#else + return eeconfig_read_kb_datablock(data, offset, length); +#endif +} + +uint32_t write_custom_config(const void *data, uint32_t offset, uint32_t length) { +#ifdef VIA_ENABLE + return via_update_custom_config(data, offset, length); +#else + return eeconfig_update_kb_datablock(data, offset, length); +#endif +} + void keyboard_post_init_kb(void) { /* This is a workaround to some really weird behavior - Without this code, the OLED will turn on, but not when you initially plug the keyboard in. + Without this code, the OLED will turn on, but not when you initially plug the keyboard in. You have to manually trigger a user reset to get the OLED to initialize properly I'm not sure what the root cause is at this time, but this workaround fixes it. */ @@ -74,11 +90,11 @@ void keyboard_post_init_kb(void) { void custom_set_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); - + switch ( *value_id ) { case id_oled_default_mode: { - eeprom_update_byte((uint8_t*)EEPROM_DEFAULT_OLED, value_data[0]); + write_custom_config(&value_data[0], EEPROM_DEFAULT_OLED_OFFSET, 1); break; } case id_oled_mode: @@ -92,7 +108,7 @@ void custom_set_value(uint8_t *data) { uint8_t index = value_data[0]; uint8_t enable = value_data[1]; enabled_encoder_modes = (enabled_encoder_modes & ~(1<<index)) | (enable<<index); - eeprom_update_byte((uint8_t*)EEPROM_ENABLED_ENCODER_MODES, enabled_encoder_modes); + write_custom_config(&enabled_encoder_modes, EEPROM_ENABLED_ENCODER_MODES_OFFSET, 1); break; } case id_encoder_custom: @@ -109,11 +125,12 @@ void custom_set_value(uint8_t *data) { void custom_get_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); - + switch ( *value_id ) { case id_oled_default_mode: { - uint8_t default_oled = eeprom_read_byte((uint8_t*)EEPROM_DEFAULT_OLED); + uint8_t default_oled; + read_custom_config(&default_oled, EEPROM_DEFAULT_OLED_OFFSET, 1); value_data[0] = default_oled; break; } @@ -179,7 +196,6 @@ void via_custom_value_command_kb(uint8_t *data, uint8_t length) { } #endif - void read_host_led_state(void) { led_t led_state = host_keyboard_led_state(); if (led_state.num_lock) { @@ -290,25 +306,25 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } void custom_config_reset(void){ - void *p = (void*)(VIA_EEPROM_CUSTOM_CONFIG_ADDR); - void *end = (void*)(VIA_EEPROM_CUSTOM_CONFIG_ADDR+VIA_EEPROM_CUSTOM_CONFIG_SIZE); - while ( p != end ) { - eeprom_update_byte(p, 0); - ++p; + for(int i = 0; i < VIA_EEPROM_CUSTOM_CONFIG_SIZE; ++i) { + uint8_t dummy = 0; + write_custom_config(&dummy, i, 1); } - eeprom_update_byte((uint8_t*)EEPROM_ENABLED_ENCODER_MODES, 0x1F); + + uint8_t encoder_modes = 0x1F; + write_custom_config(&encoder_modes, EEPROM_ENABLED_ENCODER_MODES_OFFSET, 1); } void custom_config_load(void){ #ifdef DYNAMIC_KEYMAP_ENABLE - oled_mode = eeprom_read_byte((uint8_t*)EEPROM_DEFAULT_OLED); - enabled_encoder_modes = eeprom_read_byte((uint8_t*)EEPROM_ENABLED_ENCODER_MODES); + read_custom_config(&oled_mode, EEPROM_DEFAULT_OLED_OFFSET, 1); + read_custom_config(&enabled_encoder_modes, EEPROM_ENABLED_ENCODER_MODES_OFFSET, 1); #endif } // Called from via_init() if VIA_ENABLE // Called from matrix_init_kb() if not VIA_ENABLE -void via_init_kb(void) +void satisfaction_core_init(void) { // This checks both an EEPROM reset (from bootmagic lite, keycodes) // and also firmware build date (from via_eeprom_is_valid()) @@ -326,8 +342,7 @@ void via_init_kb(void) void matrix_init_kb(void) { #ifndef VIA_ENABLE - via_init_kb(); - via_eeprom_set_valid(true); + satisfaction_core_init(); #endif // VIA_ENABLE rtcGetTime(&RTCD1, &last_timespec); @@ -335,6 +350,11 @@ void matrix_init_kb(void) oled_request_wakeup(); } +#ifdef VIA_ENABLE +void via_init_kb(void) { + satisfaction_core_init(); +} +#endif // VIA_ENABLE void housekeeping_task_kb(void) { rtcGetTime(&RTCD1, &last_timespec); @@ -345,52 +365,3 @@ void housekeeping_task_kb(void) { oled_request_repaint(); } } - -// -// In the case of VIA being disabled, we still need to check if -// keyboard level EEPROM memory is valid before loading. -// Thus these are copies of the same functions in VIA, since -// the backlight settings reuse VIA's EEPROM magic/version, -// and the ones in via.c won't be compiled in. -// -// Yes, this is sub-optimal, and is only here for completeness -// (i.e. catering to the 1% of people that want wilba.tech LED bling -// AND want persistent settings BUT DON'T want to use dynamic keymaps/VIA). -// -#ifndef VIA_ENABLE - -bool via_eeprom_is_valid(void) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 ); -} - -// Sets VIA/keyboard level usage of EEPROM to valid/invalid -// Keyboard level code (eg. via_init_kb()) should not call this -void via_eeprom_set_valid(bool valid) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF); -} - -void via_eeprom_reset(void) -{ - // Set the VIA specific EEPROM state as invalid. - via_eeprom_set_valid(false); - // Set the TMK/QMK EEPROM state as invalid. - eeconfig_disable(); -} - -#endif // VIA_ENABLE diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.h b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.h index 70ee2a3fda..163aa27fad 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.h +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.h @@ -6,12 +6,14 @@ #include <stdint.h> #include <stdbool.h> +#include <hal.h> + #include "via.h" // only for EEPROM address #include "satisfaction_keycodes.h" -#define EEPROM_ENABLED_ENCODER_MODES (VIA_EEPROM_CUSTOM_CONFIG_ADDR) -#define EEPROM_DEFAULT_OLED (VIA_EEPROM_CUSTOM_CONFIG_ADDR+1) -#define EEPROM_CUSTOM_ENCODER (VIA_EEPROM_CUSTOM_CONFIG_ADDR+2) +#define EEPROM_ENABLED_ENCODER_MODES_OFFSET 0 +#define EEPROM_DEFAULT_OLED_OFFSET 1 +#define EEPROM_CUSTOM_ENCODER_OFFSET 2 enum s75_keyboard_value_id { id_encoder_modes = 1, @@ -94,3 +96,6 @@ void oled_request_repaint(void); bool oled_task_needs_to_repaint(void); void custom_config_load(void); + +uint32_t read_custom_config(void *data, uint32_t offset, uint32_t length); +uint32_t write_custom_config(const void *data, uint32_t offset, uint32_t length); diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c index 7e0b82e9e7..87ff87ea66 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c @@ -215,10 +215,13 @@ uint16_t handle_encoder_press(void){ uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior){ #ifdef DYNAMIC_KEYMAP_ENABLE - void* addr = (void*)(EEPROM_CUSTOM_ENCODER + (encoder_idx * 6) + (behavior * 2)); + uint32_t offset = EEPROM_CUSTOM_ENCODER_OFFSET + (encoder_idx * 6) + (behavior * 2); //big endian - uint16_t keycode = eeprom_read_byte(addr) << 8; - keycode |= eeprom_read_byte(addr + 1); + uint8_t hi, lo; + read_custom_config(&hi, offset+0, 1); + read_custom_config(&lo, offset+1, 1); + uint16_t keycode = hi << 8; + keycode |= lo; return keycode; #else return 0; @@ -227,8 +230,10 @@ uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior){ void set_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior, uint16_t new_code){ #ifdef DYNAMIC_KEYMAP_ENABLE - void* addr = (void*)(EEPROM_CUSTOM_ENCODER + (encoder_idx * 6) + (behavior * 2)); - eeprom_update_byte(addr, (uint8_t)(new_code >> 8)); - eeprom_update_byte(addr + 1, (uint8_t)(new_code & 0xFF)); + uint32_t offset = EEPROM_CUSTOM_ENCODER_OFFSET + (encoder_idx * 6) + (behavior * 2); + uint8_t hi = new_code >> 8; + uint8_t lo = new_code & 0xFF; + write_custom_config(&hi, offset+0, 1); + write_custom_config(&lo, offset+1, 1); #endif } diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c index 0361453c52..815e84901d 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c @@ -8,7 +8,6 @@ #include "matrix.h" #include "led.h" #include "host.h" -#include "oled_driver.h" #include "progmem.h" #include <stdio.h> @@ -16,6 +15,7 @@ void draw_default(void); void draw_clock(void); #ifdef OLED_ENABLE +#include "oled_driver.h" oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_0; } diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h index 969206b19a..28bc6b286a 100644 --- a/keyboards/cannonkeys/satisfaction75/config.h +++ b/keyboards/cannonkeys/satisfaction75/config.h @@ -42,4 +42,7 @@ // 6 for 3x custom encoder settings, left, right, and press (18 bytes) #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 - +// And if VIA isn't enabled, fall back to using standard QMK for configuration +#ifndef VIA_ENABLE +#define EECONFIG_KB_DATA_SIZE VIA_EEPROM_CUSTOM_CONFIG_SIZE +#endif diff --git a/keyboards/cannonkeys/satisfaction75_hs/config.h b/keyboards/cannonkeys/satisfaction75_hs/config.h index 658babd3c0..26c3e4080c 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/config.h +++ b/keyboards/cannonkeys/satisfaction75_hs/config.h @@ -40,5 +40,10 @@ // 6 for 3x custom encoder settings, left, right, and press (18 bytes) #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 +// And if VIA isn't enabled, fall back to using standard QMK for configuration +#ifndef VIA_ENABLE +#define EECONFIG_KB_DATA_SIZE VIA_EEPROM_CUSTOM_CONFIG_SIZE +#endif + // VIA lighting is handled by the keyboard-level code #define VIA_CUSTOM_LIGHTING_ENABLE diff --git a/keyboards/cipulot/common/ec_board.c b/keyboards/cipulot/common/ec_board.c index 0ccb9f6d3c..b15543e49e 100644 --- a/keyboards/cipulot/common/ec_board.c +++ b/keyboards/cipulot/common/ec_board.c @@ -36,7 +36,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); eeconfig_init_user(); } @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config); + eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; diff --git a/keyboards/cipulot/common/via_ec.c b/keyboards/cipulot/common/via_ec.c index ed34a579b2..7be6edd026 100644 --- a/keyboards/cipulot/common/via_ec.c +++ b/keyboards/cipulot/common/via_ec.c @@ -13,7 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "eeprom_tools.h" #include "ec_switch_matrix.h" #include "action.h" #include "print.h" @@ -73,7 +72,7 @@ void via_config_set_value(uint8_t *data) { uprintf("# Actuation Mode: Rapid Trigger #\n"); uprintf("#################################\n"); } - EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, actuation_mode); + eeconfig_update_kb_datablock_field(eeprom_ec_config, actuation_mode); break; } case id_mode_0_actuation_threshold: { @@ -293,7 +292,7 @@ void ec_save_threshold_data(uint8_t option) { ec_rescale_values(3); ec_rescale_values(4); } - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); uprintf("####################################\n"); uprintf("# New thresholds applied and saved #\n"); uprintf("####################################\n"); @@ -321,7 +320,7 @@ void ec_save_bottoming_reading(void) { ec_rescale_values(2); ec_rescale_values(3); ec_rescale_values(4); - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); } // Show the calibration data diff --git a/keyboards/cipulot/ec_980c/ec_980c.c b/keyboards/cipulot/ec_980c/ec_980c.c index eaa636ede6..7a2062a4e4 100644 --- a/keyboards/cipulot/ec_980c/ec_980c.c +++ b/keyboards/cipulot/ec_980c/ec_980c.c @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); eeconfig_init_user(); } @@ -52,7 +52,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config); + eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; diff --git a/keyboards/cipulot/ec_typek/ec_typek.c b/keyboards/cipulot/ec_typek/ec_typek.c index d4241f66f1..31616afc02 100644 --- a/keyboards/cipulot/ec_typek/ec_typek.c +++ b/keyboards/cipulot/ec_typek/ec_typek.c @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); eeconfig_init_user(); } @@ -52,7 +52,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config); + eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c index 415e22e81a..645005769a 100644 --- a/keyboards/contra/keymaps/default/keymap.c +++ b/keyboards/contra/keymaps/default/keymap.c @@ -222,9 +222,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index 0d8d24c575..3ee327f65e 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -311,9 +311,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/handwired/dactyl_cc/keyboard.json b/keyboards/handwired/dactyl_cc/keyboard.json index e607bfad1a..f4097b0487 100644 --- a/keyboards/handwired/dactyl_cc/keyboard.json +++ b/keyboards/handwired/dactyl_cc/keyboard.json @@ -23,7 +23,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_kinesis/keyboard.json b/keyboards/handwired/dactyl_kinesis/keyboard.json index ee68a2c515..26993fc974 100644 --- a/keyboards/handwired/dactyl_kinesis/keyboard.json +++ b/keyboards/handwired/dactyl_kinesis/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_lightcycle/keyboard.json b/keyboards/handwired/dactyl_lightcycle/keyboard.json index 1b5f2dd39a..6e56b18f6f 100644 --- a/keyboards/handwired/dactyl_lightcycle/keyboard.json +++ b/keyboards/handwired/dactyl_lightcycle/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "community_layouts": ["split_3x6_3", "split_3x5_3"], diff --git a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json index e0a1b531a5..ce4b6c648b 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json index 7efc4718ad..134793cac8 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json index d589c532a8..0d8af5eed1 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json index c0c24a8966..1846f2a661 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json @@ -32,7 +32,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json index 47ad7aa920..ab916b0353 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json index 353b148126..1bcba1b648 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json index 620ffdec06..7a0cff5e6c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0", + "serial": { + "pin": "D0" + }, "bootmagic": { "matrix": [6, 5] } diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json index fc7676aa4b..0694447ee9 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0", + "serial": { + "pin": "D0" + }, "bootmagic": { "matrix": [6, 5] } diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json index 974f1b8bc3..ae73995d49 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D3" + "serial": { + "pin": "D3" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json index 5b6bdfb86e..7d51a06c7c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json @@ -25,7 +25,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json index d40a45dfa7..cf5f579057 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json index 213a3c29f5..44ae441270 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json @@ -6,7 +6,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json index 98e96c9639..a011a2cc3b 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json index 153b6c75c4..bb016647da 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json @@ -32,7 +32,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_maximus/keyboard.json b/keyboards/handwired/dactyl_maximus/keyboard.json index 081fab571a..57e91cc3f4 100644 --- a/keyboards/handwired/dactyl_maximus/keyboard.json +++ b/keyboards/handwired/dactyl_maximus/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D1" + "serial": { + "pin": "D1" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_minidox/keyboard.json b/keyboards/handwired/dactyl_minidox/keyboard.json index 5bd5c5c05a..b488bac4b0 100644 --- a/keyboards/handwired/dactyl_minidox/keyboard.json +++ b/keyboards/handwired/dactyl_minidox/keyboard.json @@ -67,7 +67,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "community_layouts": ["split_3x5_3"], diff --git a/keyboards/handwired/dactyl_promicro/keyboard.json b/keyboards/handwired/dactyl_promicro/keyboard.json index 824ffe7e7e..df82505d94 100644 --- a/keyboards/handwired/dactyl_promicro/keyboard.json +++ b/keyboards/handwired/dactyl_promicro/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json index 3bc5dc0854..903aafc973 100644 --- a/keyboards/handwired/dactyl_rah/keyboard.json +++ b/keyboards/handwired/dactyl_rah/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_tracer/keyboard.json b/keyboards/handwired/dactyl_tracer/keyboard.json index 29e5990666..92a8a2c76b 100644 --- a/keyboards/handwired/dactyl_tracer/keyboard.json +++ b/keyboards/handwired/dactyl_tracer/keyboard.json @@ -24,7 +24,9 @@ "development_board": "promicro", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "layouts": { "LAYOUT" : { diff --git a/keyboards/handwired/franky36/config.h b/keyboards/handwired/franky36/config.h new file mode 100644 index 0000000000..3749ff5785 --- /dev/null +++ b/keyboards/handwired/franky36/config.h @@ -0,0 +1,21 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 diff --git a/keyboards/handwired/franky36/franky36.c b/keyboards/handwired/franky36/franky36.c new file mode 100644 index 0000000000..50e4d38b52 --- /dev/null +++ b/keyboards/handwired/franky36/franky36.c @@ -0,0 +1,68 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * 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 <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x00, 0x0A, 0x0A + }; + + oled_write_P(qmk_logo, false); +} + +static void render_mod_status(uint8_t modifiers) { + oled_write_P(PSTR("MODS:"), false); + oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); + oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); + oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); + oled_write_ln_P(PSTR("G"), (modifiers & MOD_MASK_GUI)); + oled_write_ln_P(PSTR(" "), false); +} + +static void render_layer_state(void) { + oled_write_ln_P(PSTR(" "), false); + oled_write_P("BASE ", layer_state_is(0)); + oled_write_P("LOWER", layer_state_is(1)); + oled_write_P("RAISE", layer_state_is(2)); + oled_write_P("NAV ", layer_state_is(3)); + oled_write_ln_P(PSTR(" "), false); +} + +static void render_capsword_state(bool on) { + oled_write_ln_P("CAPSW", on); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + render_layer_state(); + render_mod_status(get_mods() | get_oneshot_mods()); + render_capsword_state(is_caps_word_on()); + return false; +} + + #endif diff --git a/keyboards/cipulot/common/eeprom_tools.h b/keyboards/handwired/franky36/halconf.h index b3c90d8759..3c594066b6 100644 --- a/keyboards/cipulot/common/eeprom_tools.h +++ b/keyboards/handwired/franky36/halconf.h @@ -1,8 +1,8 @@ -/* Copyright 2023 Cipulot +/* Copyright 2024-2025 Grigory Avdyushin * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or + * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -13,14 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#pragma once -#include "eeprom.h" +#pragma once -#if (EECONFIG_KB_DATA_SIZE) > 0 -# define EEPROM_KB_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_KB_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) -#endif +#define HAL_USE_I2C TRUE -#if (EECONFIG_USER_DATA_SIZE) > 0 -# define EEPROM_USER_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_USER_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) -#endif +#include_next <halconf.h> diff --git a/keyboards/handwired/franky36/keyboard.json b/keyboards/handwired/franky36/keyboard.json new file mode 100644 index 0000000000..038fc1eb67 --- /dev/null +++ b/keyboards/handwired/franky36/keyboard.json @@ -0,0 +1,72 @@ +{ + "manufacturer": "Grigory Avdyushin", + "keyboard_name": "franky36", + "maintainer": "Grigory Avdyushin", + "bootloader": "rp2040", + "caps_word": { + "both_shifts_turns_on": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "caps_word": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP26", "GP27", "GP28"], + "rows": ["GP5", "GP4", "GP3", "GP2"] + }, + "processor": "RP2040", + "url": "https://github.com/avdyushin/franky36", + "usb": { + "device_version": "0.2.0", + "pid": "0x0001", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3} + ] + } + } +} diff --git a/keyboards/handwired/franky36/keymaps/default/keymap.c b/keyboards/handwired/franky36/keymaps/default/keymap.c new file mode 100644 index 0000000000..1b281124f9 --- /dev/null +++ b/keyboards/handwired/franky36/keymaps/default/keymap.c @@ -0,0 +1,123 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * 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 <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +enum my_layers { + _BASE = 0, + _LOWER, + _RAISE, + _NAV, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define NAV MO(_NAV) + +#define OSM_LSFT OSM(MOD_LSFT) // One Shot Right Shift + +#define KC_SFT_Z SFT_T(KC_Z) // Left Shift when held, Z when tapped +#define KC_SFT_SL RSFT_T(KC_SLSH) // Right Shift when held, / when tapped + +#define KC_SFT_BSLS RSFT_T(KC_BSLS) // Right Shift when held, \ when tapped + +#define KC_LWR_SPC LT(_LOWER, KC_SPC) // Lower layer when held, Space when tapped +#define KC_RSE_BSPC LT(_RAISE, KC_BSPC) // Raise layer when held, Backspace when tapped +#define KC_NAV_A LT(_NAV,KC_A) // Navigation layer when held, A when tapped + +#define KC_CMD_TAB CMD_T(KC_TAB) // Left Command when held, Tab when tapped +#define KC_CMD_ENT RCMD_T(KC_ENT) // Right Command when held, Enter when tapped + +#define KC_CTL_ESC CTL_T(KC_ESC) // Left Control when held, Escape when tapped +#define KC_OPT_OSM_SFT ROPT_T(OSM_LSFT) // Right Option when held, One Shot Shift when tapped + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;:│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │⇧/Z│ X │ C │ V │ B │ │ N │ M │ ,<│ .>│⇧/?│ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │CTL│CMD│SPC│ │ENT│CMD│OPT│ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_BASE] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_NAV_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL, + KC_CTL_ESC, KC_CMD_TAB, KC_LWR_SPC, KC_RSE_BSPC, KC_CMD_ENT, KC_ROPT + ), + + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ 1!│ 2@│ 3#│ 4$│ 5%│ │ 6^│ 7&│ 8*│ 9(│ 0)│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ `~│ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ '"│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ ⇧ │ │ │ │ │ │ -_│ =+│ [{│ ]}│ \|│ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_LOWER] = LAYOUT_split_3x5_3( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_GRV, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUOT, + KC_LSFT, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_SFT_BSLS, + _______, _______, _______, _______, _______, _______ + ), + + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ F1│ F2│ F3│ F4│ F5│ │ F6│ F7│ F8│ F9│F10│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_RAISE] = LAYOUT_split_3x5_3( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │HOM│ │ │END│ │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │PUP│ │ │PDN│ │ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_NAV] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, KC_HOME, _______, _______, KC_END, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, + _______, _______, _______, _______, _______, KC_PGUP, _______, _______, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/franky36/mcuconf.h b/keyboards/handwired/franky36/mcuconf.h new file mode 100644 index 0000000000..8d47159177 --- /dev/null +++ b/keyboards/handwired/franky36/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include_next <mcuconf.h> + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/handwired/franky36/readme.md b/keyboards/handwired/franky36/readme.md new file mode 100644 index 0000000000..62d1bfd5c3 --- /dev/null +++ b/keyboards/handwired/franky36/readme.md @@ -0,0 +1,25 @@ +# franky36 + +Franky36 is 36 key compact handwired split keyboard that uses single RP2040-Zero controller. + +* Keyboard Maintainer: [Grigory Avdyushin](https://github.com/avdyushin) +* Hardware Supported: RP2040-Zero +* Hardware Availability: Handwired [franky36](https://github.com/avdyushin/franky36) + +Make example for this keyboard (after setting up your build environment): + + make franky36:default + +Flashing example for this keyboard: + + make franky36:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold down the reset button on the controller and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/jankrp2040dactyl/keyboard.json b/keyboards/handwired/jankrp2040dactyl/keyboard.json index 0d155a70bd..485da14b66 100644 --- a/keyboards/handwired/jankrp2040dactyl/keyboard.json +++ b/keyboards/handwired/jankrp2040dactyl/keyboard.json @@ -6,9 +6,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "GP0", "serial": { - "driver": "vendor" + "driver": "vendor", + "pin": "GP0" } }, diff --git a/keyboards/handwired/onekey/keymaps/via_ci/config.h b/keyboards/handwired/onekey/keymaps/via_ci/config.h new file mode 100644 index 0000000000..ec6f1e1ec0 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/via_ci/config.h @@ -0,0 +1,4 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define TRANSIENT_EEPROM_SIZE 160 diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.c b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c new file mode 100644 index 0000000000..8261fc6329 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum custom_keycodes { + KC_HELLO = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_HELLO) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_HELLO: + if (record->event.pressed) { + send_string_P("Hello world!"); + } + return false; + } + return true; +} + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable=true; + debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; +} diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.json b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json new file mode 100644 index 0000000000..edb78b5742 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json @@ -0,0 +1,7 @@ +{ + "config": { + "features": { + "via": true + } + } +} diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk new file mode 100644 index 0000000000..d5978ba6f5 --- /dev/null +++ b/keyboards/handwired/onekey/teensy_32/rules.mk @@ -0,0 +1 @@ +EEPROM_DRIVER = transient diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index abd2f7fce9..d1a53e95d7 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,2 +1,2 @@ USE_CHIBIOS_CONTRIB = yes - +EEPROM_DRIVER = transient diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c index fc43167211..47f731c2c9 100644 --- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c @@ -182,9 +182,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/handwired/skakunm_dactyl/keyboard.json b/keyboards/handwired/skakunm_dactyl/keyboard.json index cc6f70b482..5d87f23f7b 100644 --- a/keyboards/handwired/skakunm_dactyl/keyboard.json +++ b/keyboards/handwired/skakunm_dactyl/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/splittest/promicro/keyboard.json b/keyboards/handwired/splittest/promicro/keyboard.json index 8aca1c3de7..93f09a47ca 100644 --- a/keyboards/handwired/splittest/promicro/keyboard.json +++ b/keyboards/handwired/splittest/promicro/keyboard.json @@ -8,7 +8,9 @@ "handedness": { "pin": "F6" }, - "soft_serial_pin": "D1" + "serial": { + "pin": "D1" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/splittest/teensy_2/keyboard.json b/keyboards/handwired/splittest/teensy_2/keyboard.json index c10b20a173..78d6c5f9a3 100644 --- a/keyboards/handwired/splittest/teensy_2/keyboard.json +++ b/keyboards/handwired/splittest/teensy_2/keyboard.json @@ -8,7 +8,9 @@ "handedness": { "pin": "F0" }, - "soft_serial_pin": "D1" + "serial": { + "pin": "D1" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/symmetric70_proto/promicro/info.json b/keyboards/handwired/symmetric70_proto/promicro/info.json index f143f518eb..43ecb4c1c0 100644 --- a/keyboards/handwired/symmetric70_proto/promicro/info.json +++ b/keyboards/handwired/symmetric70_proto/promicro/info.json @@ -12,7 +12,9 @@ } }, "split": { - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina" diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index e5730a4586..37633e5a56 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -22,7 +22,9 @@ "handedness": { "pin": "A6" }, - "soft_serial_pin": "D3", + "serial": { + "pin": "D3" + }, "bootmagic": { "matrix": [4, 5] } diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json index df810f2881..bd4c41e17b 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json @@ -6,7 +6,9 @@ }, "diode_direction": "COL2ROW", "split": { - "soft_serial_pin": "D0", + "serial": { + "pin": "D0" + }, "matrix_pins": { "right": { "cols": ["D6", "D7", "B4", "D3", "C6", "C7"], diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json index e6c0e42bde..739aad07ba 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json @@ -11,7 +11,9 @@ ] }, "split": { - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json index a131ac085b..5a091996b6 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json @@ -11,7 +11,9 @@ ] }, "split": { - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "E7" diff --git a/keyboards/helix/pico/info.json b/keyboards/helix/pico/info.json index d4fabc756e..7909bb0b30 100644 --- a/keyboards/helix/pico/info.json +++ b/keyboards/helix/pico/info.json @@ -10,7 +10,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "tapping": { "term": 100 diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json index fd829782c0..a8bdb23e41 100644 --- a/keyboards/helix/rev2/info.json +++ b/keyboards/helix/rev2/info.json @@ -15,7 +15,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "transport": { "sync": { "indicators": true, diff --git a/keyboards/helix/rev2/rev2.c b/keyboards/helix/rev2/rev2.c index ded22bbe93..7502ad0552 100644 --- a/keyboards/helix/rev2/rev2.c +++ b/keyboards/helix/rev2/rev2.c @@ -32,7 +32,7 @@ void set_mac_mode_kb(bool macmode) { * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } void matrix_init_kb(void) { diff --git a/keyboards/helix/rev3_4rows/keyboard.json b/keyboards/helix/rev3_4rows/keyboard.json index 5e9fd2dcd8..537c332d5c 100644 --- a/keyboards/helix/rev3_4rows/keyboard.json +++ b/keyboards/helix/rev3_4rows/keyboard.json @@ -33,7 +33,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/helix/rev3_4rows/rev3_4rows.c b/keyboards/helix/rev3_4rows/rev3_4rows.c index ff61027a96..7f655b6852 100644 --- a/keyboards/helix/rev3_4rows/rev3_4rows.c +++ b/keyboards/helix/rev3_4rows/rev3_4rows.c @@ -27,7 +27,7 @@ void set_mac_mode(bool macmode) { * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } #ifdef DIP_SWITCH_ENABLE diff --git a/keyboards/helix/rev3_5rows/keyboard.json b/keyboards/helix/rev3_5rows/keyboard.json index b61db7df86..485cfd924f 100644 --- a/keyboards/helix/rev3_5rows/keyboard.json +++ b/keyboards/helix/rev3_5rows/keyboard.json @@ -99,7 +99,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/helix/rev3_5rows/rev3_5rows.c b/keyboards/helix/rev3_5rows/rev3_5rows.c index 28fa314a7b..af7276a2b5 100644 --- a/keyboards/helix/rev3_5rows/rev3_5rows.c +++ b/keyboards/helix/rev3_5rows/rev3_5rows.c @@ -27,7 +27,7 @@ void set_mac_mode(bool macmode) { * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } #ifdef DIP_SWITCH_ENABLE diff --git a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h index f26f07fe12..87e2e813a4 100644 --- a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h +++ b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h @@ -18,6 +18,7 @@ #include <string.h> #include <math.h> #include <lib/lib8tion/lib8tion.h> +#include "eeconfig.h" #define LED_TRAIL 10 @@ -105,7 +106,7 @@ static void swirl_set_color(hsv_t hsv) { traverse_matrix(); if (!(top <= bottom && left <= right)) { - eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); + eeconfig_read_rgb_matrix(&rgb_matrix_config); rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); return; } diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c index 1052131a91..41a3ad8df7 100644 --- a/keyboards/inland/kb83/kb83.c +++ b/keyboards/inland/kb83/kb83.c @@ -317,7 +317,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } if(active){ keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return true; } diff --git a/keyboards/jian/keymaps/advanced/keymap.c b/keyboards/jian/keymaps/advanced/keymap.c index eaf57cdd78..e3e58a0e9f 100644 --- a/keyboards/jian/keymaps/advanced/keymap.c +++ b/keyboards/jian/keymaps/advanced/keymap.c @@ -472,9 +472,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case EXT_PLV: diff --git a/keyboards/mechboards/crkbd/pro/config.h b/keyboards/mechboards/crkbd/pro/config.h new file mode 100644 index 0000000000..43a4b3eb9f --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/crkbd/pro/keyboard.json b/keyboards/mechboards/crkbd/pro/keyboard.json new file mode 100644 index 0000000000..05bca63993 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/keyboard.json @@ -0,0 +1,171 @@ +{ + "manufacturer": "Mechboards", + "keyboard_name": "CRKBD Pro", + "maintainer": "dasky", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B6", "pin_b": "B2"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "os_detection": true, + "rgb_matrix": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], + "rows": ["D4", "C6", "D7", "E6"] + }, + "rgb_matrix": { + "animations": { + "cycle_left_right": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"x": 139, "y": 16, "flags": 2}, + {"x": 174, "y": 13, "flags": 2}, + {"x": 208, "y": 20, "flags": 2}, + {"x": 208, "y": 38, "flags": 2}, + {"x": 174, "y": 48, "flags": 2}, + {"x": 139, "y": 52, "flags": 2}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} + ], + "max_brightness": 120, + "split_count": [27, 27] + }, + "rgblight": { + "led_count": 54, + "max_brightness": 120, + "split_count": [27, 27] + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "matrix_state": true, + "oled": true, + "wpm": true + } + } + }, + "url": "mechboards.co.uk", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x7171" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [4, 5], "x": 8, "y": 0.25}, + {"matrix": [4, 4], "x": 9, "y": 0.125}, + {"matrix": [4, 3], "x": 10, "y": 0}, + {"matrix": [4, 2], "x": 11, "y": 0.125}, + {"matrix": [4, 1], "x": 12, "y": 0.25}, + {"matrix": [4, 0], "x": 13, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [5, 5], "x": 8, "y": 1.25}, + {"matrix": [5, 4], "x": 9, "y": 1.125}, + {"matrix": [5, 3], "x": 10, "y": 1}, + {"matrix": [5, 2], "x": 11, "y": 1.125}, + {"matrix": [5, 1], "x": 12, "y": 1.25}, + {"matrix": [5, 0], "x": 13, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.25}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [6, 5], "x": 8, "y": 2.25}, + {"matrix": [6, 4], "x": 9, "y": 2.125}, + {"matrix": [6, 3], "x": 10, "y": 2}, + {"matrix": [6, 2], "x": 11, "y": 2.125}, + {"matrix": [6, 1], "x": 12, "y": 2.25}, + {"matrix": [6, 0], "x": 13, "y": 2.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3.25}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5}, + {"matrix": [3, 5], "x": 5.5, "y": 3.75}, + {"matrix": [7, 5], "x": 7.5, "y": 3.75}, + {"matrix": [7, 4], "x": 8.5, "y": 3.5}, + {"matrix": [7, 3], "x": 9.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c b/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c new file mode 100644 index 0000000000..2e70e3091e --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, + KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT + +), + + [1] = LAYOUT_split_3x6_3( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT +), + + [2] = LAYOUT_split_3x6_3( + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT +), + + [3] = LAYOUT_split_3x6_3( + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT +) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { +[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT)}, +[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} +}; +#endif + +// clang-format on diff --git a/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk b/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/crkbd/pro/post_rules.mk b/keyboards/mechboards/crkbd/pro/post_rules.mk new file mode 100644 index 0000000000..4bfdc8ca89 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/post_rules.mk @@ -0,0 +1 @@ +include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/crkbd/pro/pro.c b/keyboards/mechboards/crkbd/pro/pro.c new file mode 100644 index 0000000000..05c41d3612 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/pro.c @@ -0,0 +1,15 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +void render_logo(void) { + static const char PROGMEM pro_logo[] = { + 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 248, 248, 24, 24, 24, 24, 24, 24, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 248, 248, 0, 0, 0, 128, 248, 248, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, + 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 6, 6, 6, 6, 255, 251, 0, 0, 255, 255, 6, 6, 15, 31, 249, 240, 0, 0, 255, 255, 6, 6, 6, 6, 255, 251, 0, 0, 255, 255, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, + 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 3, 3, 3, 3, 3, 3, 227, 241, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, + }; + oled_write_raw_P(pro_logo, sizeof(pro_logo)); +} +#endif diff --git a/keyboards/mechboards/crkbd/pro/readme.md b/keyboards/mechboards/crkbd/pro/readme.md new file mode 100644 index 0000000000..52fc199d5c --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/readme.md @@ -0,0 +1,25 @@ +# CRKBD Pro + +A refreshed CRKBD (Corne) PCB with RGB, battery, power switch and encoder support. + +* Keyboard Maintainer: [dasky](https://github.com/daskygit) +* Hardware Supported: Controllers using promicro footprint. +* Hardware Availability: https://mechboards.co.uk + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb mechboards/crkbd/pro -km default + +Flashing example for this keyboard: + + qmk flash -kb mechboards/crkbd/pro -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key/encoder or the top right key/encoder depending on which side you're connecting to usb. +* **Physical reset button**: Double press the button below the TRRS socket. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c index 60479ab801..2f7365e562 100644 --- a/keyboards/monsgeek/m1/m1.c +++ b/keyboards/monsgeek/m1/m1.c @@ -190,7 +190,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(MAC_B); layer_state_set(1<<MAC_B); keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case QK_RGB_MATRIX_TOGGLE: diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c index 4dd9a55f3c..bf5e038b3d 100644 --- a/keyboards/monsgeek/m3/m3.c +++ b/keyboards/monsgeek/m3/m3.c @@ -163,7 +163,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { if (record->event.pressed) { set_single_persistent_default_layer(MAC_B); keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case GU_TOGG: diff --git a/keyboards/omnikeyish/dynamic_macro.c b/keyboards/omnikeyish/dynamic_macro.c index b990a09a13..99b6d173b8 100644 --- a/keyboards/omnikeyish/dynamic_macro.c +++ b/keyboards/omnikeyish/dynamic_macro.c @@ -1,5 +1,6 @@ #include "omnikeyish.h" #include <string.h> +#include "eeprom.h" dynamic_macro_t dynamic_macros[DYNAMIC_MACRO_COUNT]; diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index cc8a69ceca..c08e58653a 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -215,9 +215,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/planck/rev7/keymaps/default/keymap.c b/keyboards/planck/rev7/keymaps/default/keymap.c index 47ded8aba5..6880e2fa94 100644 --- a/keyboards/planck/rev7/keymaps/default/keymap.c +++ b/keyboards/planck/rev7/keymaps/default/keymap.c @@ -255,9 +255,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h index 108a104cdc..fb2f9431cc 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h @@ -26,5 +26,5 @@ /* PMW33XX Settings */ #define PMW33XX_CS_PIN B0 -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } +#define ENCODER_A_PINS { F4 } +#define ENCODER_B_PINS { F0 } diff --git a/keyboards/rocketboard_16/keycode_lookup.c b/keyboards/rocketboard_16/keycode_lookup.c index 41fd5c8537..a29808d04d 100644 --- a/keyboards/rocketboard_16/keycode_lookup.c +++ b/keyboards/rocketboard_16/keycode_lookup.c @@ -14,6 +14,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <stdlib.h> #include "keycode_lookup.h" #include "quantum_keycodes.h" #include "keymap_us.h" diff --git a/keyboards/splitography/keymaps/default/keymap.c b/keyboards/splitography/keymaps/default/keymap.c index 9c6c7d6b26..5d26eb9682 100644 --- a/keyboards/splitography/keymaps/default/keymap.c +++ b/keyboards/splitography/keymaps/default/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } diff --git a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c index 787f448ffb..a3cb183758 100644 --- a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c +++ b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } diff --git a/keyboards/splitography/keymaps/dvorak/keymap.c b/keyboards/splitography/keymaps/dvorak/keymap.c index 992cfd0abb..0edec7043c 100644 --- a/keyboards/splitography/keymaps/dvorak/keymap.c +++ b/keyboards/splitography/keymaps/dvorak/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c index c9af479bf5..c01fb7b01d 100644 --- a/keyboards/system76/launch_1/launch_1.c +++ b/keyboards/system76/launch_1/launch_1.c @@ -16,6 +16,7 @@ */ #include "quantum.h" +#include "eeprom.h" #include "usb_mux.h" @@ -73,7 +74,7 @@ led_config_t g_led_config = { { } }; #endif // RGB_MATRIX_ENABLE -bool eeprom_is_valid(void) { +bool eeprom_is_valid(void) { return ( eeprom_read_word(((void *)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC && eeprom_read_byte(((void *)EEPROM_VERSION_ADDR)) == EEPROM_VERSION diff --git a/keyboards/vitamins_included/rev2/rev2.c b/keyboards/vitamins_included/rev2/rev2.c index e445a3da45..28bd73cc75 100644 --- a/keyboards/vitamins_included/rev2/rev2.c +++ b/keyboards/vitamins_included/rev2/rev2.c @@ -12,7 +12,7 @@ bool is_keyboard_left(void) { gpio_set_pin_input(SPLIT_HAND_PIN); return x; #elif defined(EE_HANDS) - return eeprom_read_byte(EECONFIG_HANDEDNESS); + return eeconfig_read_handedness(); #endif return is_keyboard_master(); diff --git a/keyboards/wilba_tech/wt_main.c b/keyboards/wilba_tech/wt_main.c index 92c43c794d..7e56d98356 100644 --- a/keyboards/wilba_tech/wt_main.c +++ b/keyboards/wilba_tech/wt_main.c @@ -33,7 +33,7 @@ // Called from via_init() if VIA_ENABLE // Called from matrix_init_kb() if not VIA_ENABLE -void via_init_kb(void) +void wt_main_init(void) { // This checks both an EEPROM reset (from bootmagic lite, keycodes) // and also firmware build date (from via_eeprom_is_valid()) @@ -64,11 +64,9 @@ void via_init_kb(void) void matrix_init_kb(void) { // If VIA is disabled, we still need to load backlight settings. - // Call via_init_kb() the same way as via_init(), with setting - // EEPROM valid afterwards. + // Call via_init_kb() the same way as via_init_kb() does. #ifndef VIA_ENABLE - via_init_kb(); - via_eeprom_set_valid(true); + wt_main_init(); #endif // VIA_ENABLE matrix_init_user(); @@ -109,6 +107,10 @@ void suspend_wakeup_init_kb(void) // Moving this to the bottom of this source file is a workaround // for an intermittent compiler error for Atmel compiler. #ifdef VIA_ENABLE +void via_init_kb(void) { + wt_main_init(); +} + void via_custom_value_command_kb(uint8_t *data, uint8_t length) { uint8_t *command_id = &(data[0]); uint8_t *channel_id = &(data[1]); @@ -159,50 +161,3 @@ void via_set_device_indication(uint8_t value) } #endif // VIA_ENABLE - -// -// In the case of VIA being disabled, we still need to check if -// keyboard level EEPROM memory is valid before loading. -// Thus these are copies of the same functions in VIA, since -// the backlight settings reuse VIA's EEPROM magic/version, -// and the ones in via.c won't be compiled in. -// -// Yes, this is sub-optimal, and is only here for completeness -// (i.e. catering to the 1% of people that want wilba.tech LED bling -// AND want persistent settings BUT DON'T want to use dynamic keymaps/VIA). -// -#ifndef VIA_ENABLE - -bool via_eeprom_is_valid(void) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 ); -} - -void via_eeprom_set_valid(bool valid) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF); -} - -void via_eeprom_reset(void) -{ - // Set the VIA specific EEPROM state as invalid. - via_eeprom_set_valid(false); - // Set the TMK/QMK EEPROM state as invalid. - eeconfig_disable(); -} - -#endif // VIA_ENABLE diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 01fefc8ecc..8359aab135 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -25,6 +25,8 @@ #include "progmem.h" #include "eeprom.h" +#include "nvm_eeprom_eeconfig_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm +#include "nvm_eeprom_via_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm #include "via.h" // uses EEPROM address, lighting value IDs #define MONO_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR) diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index e52d002060..744bcb262d 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -66,6 +66,8 @@ #include "quantum/color.h" #include "eeprom.h" +#include "nvm_eeprom_eeconfig_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm +#include "nvm_eeprom_via_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm #include "via.h" // uses EEPROM address, lighting value IDs #define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR) diff --git a/keyboards/xelus/la_plus/rgb_matrix_kb.inc b/keyboards/xelus/la_plus/rgb_matrix_kb.inc index 88dd2ab0a2..93d52ec9d0 100644 --- a/keyboards/xelus/la_plus/rgb_matrix_kb.inc +++ b/keyboards/xelus/la_plus/rgb_matrix_kb.inc @@ -31,7 +31,7 @@ static void startup_animation_setleds(effect_params_t* params, bool dots) { } else if (num == 0 || num == 1 || num == 2) { return; } else if (num >= 22) { - eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); + eeconfig_read_rgb_matrix(&rgb_matrix_config); rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); return; } |