From d654fad5480dd7aef1d1c8372e19cfa588d2c96d Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Mon, 30 Jun 2025 10:51:05 +0800 Subject: [PATCH 01/23] Added keyboard 8s200 --- keyboards/hfdkb/8s200/8s200.c | 439 ++++++++++++++++++ keyboards/hfdkb/8s200/8s200.h | 11 + .../hfdkb/8s200/8s200_via_v1_01_20250213.json | 234 ++++++++++ .../hfdkb/8s200/8s200_via_v1_06_20250613.json | 224 +++++++++ keyboards/hfdkb/8s200/config.h | 43 ++ keyboards/hfdkb/8s200/halconf.h | 24 + keyboards/hfdkb/8s200/keyboard.json | 234 ++++++++++ .../hfdkb/8s200/keymaps/default/keymap.c | 57 +++ keyboards/hfdkb/8s200/mcuconf.h | 34 ++ 9 files changed, 1300 insertions(+) create mode 100644 keyboards/hfdkb/8s200/8s200.c create mode 100644 keyboards/hfdkb/8s200/8s200.h create mode 100644 keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json create mode 100644 keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json create mode 100644 keyboards/hfdkb/8s200/config.h create mode 100644 keyboards/hfdkb/8s200/halconf.h create mode 100644 keyboards/hfdkb/8s200/keyboard.json create mode 100644 keyboards/hfdkb/8s200/keymaps/default/keymap.c create mode 100644 keyboards/hfdkb/8s200/mcuconf.h diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c new file mode 100644 index 00000000000..2bc67e52dff --- /dev/null +++ b/keyboards/hfdkb/8s200/8s200.c @@ -0,0 +1,439 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ + +#include "quantum.h" +// clang-format off + +#ifdef RGB_MATRIX_ENABLE +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {1, SW3_CS1, SW2_CS1, SW1_CS1}, + {1, C_2, B_2, A_2}, + {1, C_3, B_3, A_3}, + {1, C_4, B_4, A_4}, + {1, C_5, B_5, A_5}, + {1, C_6, B_6, A_6}, + {1, C_7, B_7, A_7}, + {1, C_8, B_8, A_8}, + {1, C_9, B_9, A_9}, + {1, C_10, B_10, A_10}, + {1, C_11, B_11, A_11}, + {1, C_12, B_12, A_12}, + {1, C_13, B_13, A_13}, + {1, C_14, B_14, A_14}, + {1, C_15, B_15, A_15}, + {1, C_16, B_16, A_16}, + + {0, F_1, E_1, D_1}, + {0, F_2, E_2, D_2}, + {0, F_3, E_3, D_3}, + {0, F_4, E_4, D_4}, + {0, F_5, E_5, D_5}, + {0, F_6, E_6, D_6}, + {0, F_7, E_7, D_7}, + {0, F_8, E_8, D_8}, + {0, F_9, E_9, D_9}, + {0, F_10, E_10, D_10}, + {0, F_11, E_11, D_11}, + {0, F_12, E_12, D_12}, + {0, F_13, E_13, D_13}, + {1, F_1, E_1, D_1}, + + {0, I_1, H_1, G_1}, + {0, I_2, H_2, G_2}, + {0, I_3, H_3, G_3}, + {0, I_4, H_4, G_4}, + {0, I_5, H_5, G_5}, + {0, I_6, H_6, G_6}, + {0, I_7, H_7, G_7}, + {0, I_8, H_8, G_8}, + {0, I_9, H_9, G_9}, + {0, I_10, H_10, G_10}, + {0, I_11, H_11, G_11}, + {0, I_12, H_12, G_12}, + {0, I_13, H_13, G_13}, + {1, F_5, E_5, D_5}, + {1, F_2, E_2, D_2}, + + {0, L_1, K_1, J_1}, + {0, L_3, K_3, J_3}, + {0, L_4, K_4, J_4}, + {0, L_5, K_5, J_5}, + {0, L_6, K_6, J_6}, + {0, L_7, K_7, J_7}, + {0, L_8, K_8, J_8}, + {0, L_9, K_9, J_9}, + {0, L_10, K_10, J_10}, + {0, L_11, K_11, J_11}, + {0, L_12, K_12, J_12}, + {1, F_9, E_9, D_9}, + {1, F_8, E_8, D_8}, + {1, F_6, E_6, D_6}, + {1, F_3, E_3, D_3}, + + {0, L_13, K_13, J_13}, + {0, L_14, K_14, J_14}, + {0, L_15, K_15, J_15}, + {0, L_16, K_16, J_16}, + + {0, I_14, H_14, G_14}, + + {0, I_15, H_15, G_15}, + {0, I_16, H_16, G_16}, + {0, F_14, E_14, D_14}, + {0, F_15, E_15, D_15}, + {0, F_16, E_16, D_16}, + {1, F_7, E_7, D_7}, + {1, F_4, E_4, D_4}, + + {0, L_2, K_2, J_2}, + {1, D_10, E_10, F_10}, + {1, D_11, E_11, F_11}, +}; +#endif +// clang-format on +typedef union { + uint32_t raw; + struct { + bool first_boot; + uint8_t rgb_mode; + }; +} keyboard_config_t; +keyboard_config_t keyboard_config; + +uint8_t rgb_test_en; +uint8_t rgb_test_index; +uint32_t long_pressed_time; +uint16_t long_pressed_keycode; +uint8_t all_blink_cnt; +uint32_t all_blink_time; +RGB all_blink_color; +uint8_t single_blink_cnt; +uint8_t single_blink_index; +RGB single_blink_color; +uint32_t single_blink_time; +uint8_t EE_CLR_blink_cnt; +RGB EE_CLR_blink_color; +uint32_t EE_CLR_blink_time; + +const uint8_t rgb_test_color_table[][3] = { + {RGB_WHITE}, + {RGB_RED}, + {RGB_GREEN}, + {RGB_BLUE}, +}; +// clang-format off +static uint8_t rgb_matrix_effects_table[] = { + RGB_MATRIX_BREATHING, + RGB_MATRIX_SOLID_COLOR, + RGB_MATRIX_CYCLE_LEFT_RIGHT, + RGB_MATRIX_RAINBOW_MOVING_CHEVRON, + RGB_MATRIX_CYCLE_OUT_IN_DUAL, + RGB_MATRIX_DUAL_BEACON, + RGB_MATRIX_RAINBOW_BEACON, + RGB_MATRIX_RAINDROPS, + RGB_MATRIX_SOLID_REACTIVE, +}; + +// clang-format on +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘按键事件 + if (process_record_user(keycode, record) != true) { // 自定义按键处理 + return false; // 用户已处理了按键事件无需进一步处理 + } + switch (keycode) { + case SW_OS1: + if (record->event.pressed) { + long_pressed_time = timer_read32(); + long_pressed_keycode = SW_OS1; + } else { + long_pressed_time = 0; + } + break; + case RGB_TEST: + if (record->event.pressed) { + long_pressed_time = timer_read32(); + long_pressed_keycode = RGB_TEST; + } else { + long_pressed_time = 0; + } + break; + case NK_TOGG: + if (record->event.pressed) { + long_pressed_time = timer_read32(); + long_pressed_keycode = NK_TOGG; + } else { + long_pressed_time = 0; + } + return false; + case EE_CLR: + if (record->event.pressed) { + long_pressed_time = timer_read32(); + long_pressed_keycode = EE_CLR; + } else { + long_pressed_time = 0; + } + return false; + case KC_DEL: + if (record->event.pressed) { + if (rgb_test_en) { + rgb_test_en = false; + return false; + } + } + break; + case KC_DOWN: + if (record->event.pressed) { + if (rgb_test_en) { + rgb_test_index++; + rgb_test_index %= 4; + return false; + } + } + break; + case RGB_SPI: + if (record->event.pressed) { + rgb_matrix_increase_speed(); + if (rgb_matrix_get_speed() >= 255) { + rgb_matrix_config.speed = 255; + } + } + return false; + case RGB_SPD: + if (record->event.pressed) { + rgb_matrix_decrease_speed(); + if (rgb_matrix_get_speed() <= 27) { + rgb_matrix_config.speed = 27; + } + } + return false; + // case GU_TOGG: + // if (record->event.pressed) { + // } else { + // if (keymap_config.no_gui) { + // single_blink_time = timer_read32(); + // single_blink_cnt = 2; + // single_blink_index = 74; + // single_blink_color = (RGB){100, 100, 100}; + // } + // } + // break; + case RGB_MOD: + if (record->event.pressed) { + keyboard_config.rgb_mode++; + if (keyboard_config.rgb_mode > (sizeof(rgb_matrix_effects_table) / sizeof(rgb_matrix_effects_table[0]))) { + keyboard_config.rgb_mode = 0; + } + eeconfig_update_user(keyboard_config.raw); + if (keyboard_config.rgb_mode == 9) { + // rgb_matrix_disable_noeeprom(); + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } else { + // rgb_matrix_enable(); + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); + } + // if (rgb_matrix_get_mode() == RGB_MATRIX_NONE) { + // } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + if (keyboard_config.rgb_mode == 9) { + return false; + } + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; + default: + break; + } + return true; +} + +void matrix_init_kb(void) { +#ifdef RGB_DRIVER_SDB_PIN + setPinOutputOpenDrain(RGB_DRIVER_SDB_PIN); + writePinHigh(RGB_DRIVER_SDB_PIN); +#endif + + matrix_init_user(); +} + +void keyboard_post_init_kb() { + // rgb_matrix_config.hsv.h = 170; + // rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); + keyboard_config.raw = eeconfig_read_user(); + rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); + if (keyboard_config.rgb_mode == 9) { + // rgb_matrix_disable_noeeprom(); + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + + keyboard_post_init_user(); // call matrix_init_user() at the end of this function +} + +void housekeeping_task_kb(void) { + if (!keyboard_config.first_boot) { + keymap_config.nkro = 1; // 全键无冲 + eeconfig_update_keymap(keymap_config.raw); + keyboard_config.first_boot = 1; + rgb_matrix_config.hsv.h = 170; + eeconfig_update_user(keyboard_config.raw); + // HSV hsv = rgb_matrix_get_hsv(); + // hsv.h = 170; + // RGB rgb = hsv_to_rgb(hsv); + // rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); + } + +#ifdef CONSOLE_ENABLE + debug_enable = true; +#endif + if ((timer_elapsed32(long_pressed_time) > 2000) && (long_pressed_time)) { // 检查是否有按键长按 + long_pressed_time = 0; + switch (long_pressed_keycode) { + case RGB_TEST: + rgb_test_en = 1; + break; + case SW_OS1: + if (get_highest_layer(default_layer_state) == 0) { // MAC_BASE + set_single_persistent_default_layer(2); + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); // Write default value to EEPROM now + single_blink_time = timer_read32(); + single_blink_cnt = 2; + single_blink_index = 73; + single_blink_color = (RGB){100, 100, 100}; + } else if (get_highest_layer(default_layer_state) == 2) { // WIN_BASE + set_single_persistent_default_layer(0); + single_blink_time = timer_read32(); + single_blink_cnt = 2; + single_blink_index = 73; + single_blink_color = (RGB){.r = 0, .g = 0, .b = 100}; + } + break; + case NK_TOGG: + keymap_config.nkro = !keymap_config.nkro; + eeconfig_update_keymap(keymap_config.raw); + single_blink_time = timer_read32(); + single_blink_cnt = 6; + single_blink_index = 13; + single_blink_color = (RGB){100, 100, 100}; + break; + case EE_CLR: + // eeconfig_update_rgb_matrix_default(); + + EE_CLR_blink_time = timer_read32(); + EE_CLR_blink_cnt = 6; + // EE_CLR_blink_index = 64; + EE_CLR_blink_color = (RGB){.r = 100, .g = 100, .b = 100}; + break; + default: + break; + } + } +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (rgb_matrix_indicators_advanced_user(led_min, led_max) != true) { + return false; + } + // rgb_matrix_set_color(73, 0, 0, 0); + // rgb_matrix_set_color(74, 0, 0, 0); + + if (rgb_test_en) { + rgb_matrix_set_color_all(rgb_test_color_table[rgb_test_index][0], rgb_test_color_table[rgb_test_index][1], rgb_test_color_table[rgb_test_index][2]); + } + + /*************************************************************************************/ + if (all_blink_cnt) { // 全键闪烁 + rgb_matrix_set_color_all(0, 0, 0); + if (timer_elapsed32(all_blink_time) > 300) { + all_blink_time = timer_read32(); + all_blink_cnt--; + } + if (all_blink_cnt & 0x1) { + rgb_matrix_set_color_all(all_blink_color.r, all_blink_color.g, all_blink_color.b); + } + } + + if (single_blink_cnt) { // 单键闪烁 + if (timer_elapsed32(single_blink_time) > 300) { + single_blink_time = timer_read32(); + single_blink_cnt--; + } + if (single_blink_cnt % 2) { + rgb_matrix_set_color(single_blink_index, single_blink_color.r, single_blink_color.g, single_blink_color.b); + } else { + rgb_matrix_set_color(single_blink_index, 0, 0, 0); + } + } + /*************************************************************************************/ + if (EE_CLR_blink_cnt) { // 复位闪烁 + if (EE_CLR_blink_cnt % 2) { + rgb_matrix_set_color(73, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); + rgb_matrix_set_color(74, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + rgb_matrix_set_color(74, 0, 0, 0); + } + if (timer_elapsed32(EE_CLR_blink_time) > 300) { + if (EE_CLR_blink_cnt > 0) { + EE_CLR_blink_time = timer_read32(); + EE_CLR_blink_cnt--; + } + if (!EE_CLR_blink_cnt) { + eeconfig_init(); + eeconfig_update_rgb_matrix_default(); + keyboard_config.rgb_mode = 0; + rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); + // rgb_matrix_set_color_all(RGB_BLUE); + rgb_matrix_config.hsv.h = 170; + eeconfig_update_user(keyboard_config.raw); // Write default value to EEPROM now + keymap_config.no_gui = 0; + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + } + } + /*************************************************************************************/ + // caps lock red + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(72, 100, 100, 100); + } else { + rgb_matrix_set_color(72, 0, 0, 0); + } + + if (keymap_config.no_gui) { + rgb_matrix_set_color(61, 100, 100, 100); + } + + return true; +} diff --git a/keyboards/hfdkb/8s200/8s200.h b/keyboards/hfdkb/8s200/8s200.h new file mode 100644 index 00000000000..42c5b29b0cd --- /dev/null +++ b/keyboards/hfdkb/8s200/8s200.h @@ -0,0 +1,11 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +enum user_keycodes { + SW_OS1 = QK_KB_0, + RGB_TEST, +}; diff --git a/keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json b/keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json new file mode 100644 index 00000000000..0745088db71 --- /dev/null +++ b/keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json @@ -0,0 +1,234 @@ +{ + "name": "AIRONE Pro", + "vendorId": "0xFFFE", + "productId": "0x0096", + "keycodes": ["qmk_lighting"], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [0, 200], + "content": ["id_qmk_rgb_matrix_brightness", 3, 1] + }, + { + "label": "Effect", + "type": "dropdown", + "content": ["id_qmk_rgb_matrix_effect", 3, 2], + "options": [ + ["All Off", 0], + ["SOLID_COLOR", 1], + ["BREATHING", 2], + ["CYCLE_ALL", 3], + ["CYCLE_LEFT_RIGHT", 4], + ["CYCLE_UP_DOWN", 5], + ["RAINBOW_MOVING_CHEVRON", 6], + ["CYCLE_OUT_IN", 7], + ["CYCLE_OUT_IN_DUAL", 8], + ["CYCLE_PINWHEEL", 9], + ["CYCKE_SPIRAL", 10], + ["DUAL_BEACON", 11], + ["RAINBOW_BEACON", 12], + ["RAINDROPS", 13], + ["TYPING_HEATMAP", 14], + ["SOLID_REACTIVE_SIMPLE", 15], + ["SOLID_REACTIVE", 16], + ["SOLID_REACTIVE_NEXUS", 17], + ["MATRIX_MULTISPLASH", 18] + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0", + "label": "Effect Speed", + "type": "range", + "options": [0, 255], + "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0", + "label": "Color", + "type": "color", + "content": ["id_qmk_rgb_matrix_color", 3, 4] + } + ] + } + ] + } + ], + "matrix": { "rows": 5, "cols": 16 }, + "customKeycodes":[ + {"name":"BT DEV1","title":"BT_HOST1","shortName":"BT_HOST1"}, + {"name":"BT DEV2","title":"BT_HOST2","shortName":"BT_HOST2"}, + {"name":"BT DEV3","title":"BT_HOST3","shortName":"BT_HOST3"}, + {"name":"2.4G","title":"BT_2_4G","shortName":"BT_2_4G"}, + {"name":"USB","title":"BT_USB","shortName":"BT_USB"}, + {"name":"BT_VOL","title":"BT_VOL","shortName":"BT_VOL"} + ], + "layouts": { + "keymap":[ + [ + { + "c": "#AAAAAA" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + "0,13", + { + "c": "#AAAAAA" + }, + "0,14", + "0,15" + ], + [ + { + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "x": 0.25, + "c": "#777777", + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "2,14", + { + "c": "#AAAAAA" + }, + "1,15" + ], + [ + { + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "x": 1.25, + "c": "#AAAAAA" + }, + "2,15" + ], + [ + { + "w": 2 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + "3,12", + { + "c": "#AAAAAA" + }, + "3,13", + { + "c": "#777777" + }, + "3,14", + { + "c": "#AAAAAA" + }, + "3,15" + ], + [ + { + "w": 1.25 + }, + "4,0", + { + "w": 1.25 + }, + "4,1", + { + "w": 1.25 + }, + "4,2", + "4,3", + { + "w": 3.5 + }, + "4,6", + "4,9", + { + "w": 1.25 + }, + "4,10", + { + "w": 1.25 + }, + "4,11", + { + "w": 1.25 + }, + "4,12", + { + "c": "#777777" + }, + "4,13", + "4,14", + "4,15" + ] + ] + } + } diff --git a/keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json b/keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json new file mode 100644 index 00000000000..b9f65b94277 --- /dev/null +++ b/keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json @@ -0,0 +1,224 @@ +{ + "name": "AIRONE PRO", + "vendorId": "0xFFFE", + "productId": "0x0096", + "keycodes": ["qmk_lighting"], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [0, 200], + "content": ["id_qmk_rgb_matrix_brightness", 3, 1] + }, + { + "label": "Effect", + "type": "dropdown", + "content": ["id_qmk_rgb_matrix_effect", 3, 2], + "options": [ + ["All Off", 0], + ["MATRIX_SOLID_COLOR", 1], + ["BREATHING", 2], + ["CYCLE_LEFT_RIGHT", 3], + ["RAINBOW_MOVING_CHEVRON", 4], + ["CYCLE_OUT_IN_DUAL", 5], + ["DUAL_BEACON", 6], + ["RAINBOW_BEACON", 7], + ["RAINDROPS", 8], + ["SOLID_REACTIVE", 16] + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0", + "label": "Effect Speed", + "type": "range", + "options": [0, 255], + "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0", + "label": "Color", + "type": "color", + "content": ["id_qmk_rgb_matrix_color", 3, 4] + } + ] + } + ] + } + ], + "customKeycodes":[ + {"name":"SW_OS1","title":"Switch OS between Mac and Windows","shortName":"SW_OS1"} + ], + "matrix": { "rows": 5, "cols": 16 }, + "layouts": { + "keymap":[ + [ + { + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + "0,13", + { + "c": "#AAAAAA" + }, + "0,14", + "0,15" + ], + [ + { + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "x": 0.25, + "c": "#777777", + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "2,14", + { + "c": "#AAAAAA" + }, + "1,15" + ], + [ + { + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "x": 1.25, + "c": "#AAAAAA" + }, + "2,15" + ], + [ + { + "w": 2 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + "3,12", + { + "c": "#AAAAAA" + }, + "3,13", + { + "c": "#777777" + }, + "3,14", + { + "c": "#AAAAAA" + }, + "3,15" + ], + [ + { + "w": 1.25 + }, + "4,0", + { + "w": 1.25 + }, + "4,1", + { + "w": 1.25 + }, + "4,2", + "4,3", + { + "w": 3.5, + "c": "#cccccc" + }, + "4,6", + { + "c": "#AAAAAA" + }, + "4,9", + { + "w": 1.25 + }, + "4,10", + { + "w": 1.25 + }, + "4,11", + { + "w": 1.25 + }, + "4,12", + { + "c": "#777777" + }, + "4,13", + "4,14", + "4,15" + ] + ] + } + } diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h new file mode 100644 index 00000000000..054f67e1bd6 --- /dev/null +++ b/keyboards/hfdkb/8s200/config.h @@ -0,0 +1,43 @@ +/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd + * + * 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 . + */ + +#pragma once + +/* Use 6 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +#define RGB_DRIVER_SDB_PIN A15 + +#define RGB_DRIVER_EN_PIN B2 + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PIN B6 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 diff --git a/keyboards/hfdkb/8s200/halconf.h b/keyboards/hfdkb/8s200/halconf.h new file mode 100644 index 00000000000..11715fe3156 --- /dev/null +++ b/keyboards/hfdkb/8s200/halconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd + * + * 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 . + */ + +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json new file mode 100644 index 00000000000..457c38d9ba7 --- /dev/null +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -0,0 +1,234 @@ +{ + "manufacturer": "hfd", + "keyboard_name": "AIRONE PRO", + "maintainer": "jonylee@hfd", + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "usb": { + "vid": "0xFFFE", + "pid": "0x0096", + "device_version": "1.0.9", + "suspend_wakeup_delay": 1000 + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "host": { + "default": { + "nkro": true + } + }, + "matrix_pins": { + "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4","C5","B0","B1","B2"], + "rows": ["C6", "C7", "C8", "C9", "A8"] + }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 8192 + } + }, + "rgb_matrix": { + "driver": "is31fl3731", + "max_brightness": 180, + "val_steps": 45, + "speed_steps": 57, + "hue_steps": 32, + "react_on_keyup": true, + "sleep": true, + "animations": { + "solid_color": false, + "breathing": true, + "cycle_all": false, + "cycle_left_right": true, + "cycle_up_down": false, + "cycle_out_in": false, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": false, + "cycle_spiral": false, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": false, + "solid_reactive_simple": false, + "solid_reactive": true, + "multisplash": false + }, + "default": { + "speed": 141 + }, + "layout": [ + { "flags": 4, "matrix": [0,0], "x": 7, "y": 3}, + { "flags": 4, "matrix": [0,1], "x": 21, "y": 3}, + { "flags": 4, "matrix": [0,2], "x": 35, "y": 3}, + { "flags": 4, "matrix": [0,3], "x": 49, "y": 3}, + { "flags": 4, "matrix": [0,4], "x": 63, "y": 3}, + { "flags": 4, "matrix": [0,5], "x": 77, "y": 3}, + { "flags": 4, "matrix": [0,6], "x": 91, "y": 3}, + { "flags": 4, "matrix": [0,7], "x": 105, "y": 3}, + { "flags": 4, "matrix": [0,8], "x": 119, "y": 3}, + { "flags": 4, "matrix": [0,9], "x": 133, "y": 3}, + { "flags": 4, "matrix": [0,10], "x": 147, "y": 3}, + { "flags": 4, "matrix": [0,11], "x": 161, "y": 3}, + { "flags": 4, "matrix": [0,12], "x": 175, "y": 3}, + { "flags": 4, "matrix": [0,13], "x": 189, "y": 3}, + { "flags": 4, "matrix": [0,14], "x": 203, "y": 3}, + { "flags": 4, "matrix": [0,15], "x": 217, "y": 3}, + + { "flags": 4, "matrix": [1,0], "x": 10, "y": 16}, + { "flags": 4, "matrix": [1,1], "x": 28, "y": 16}, + { "flags": 4, "matrix": [1,2], "x": 42, "y": 16}, + { "flags": 4, "matrix": [1,3], "x": 56, "y": 16}, + { "flags": 4, "matrix": [1,4], "x": 70, "y": 16}, + { "flags": 4, "matrix": [1,5], "x": 84, "y": 16}, + { "flags": 4, "matrix": [1,6], "x": 98, "y": 16}, + { "flags": 4, "matrix": [1,7], "x": 112, "y": 16}, + { "flags": 4, "matrix": [1,8], "x": 126, "y": 16}, + { "flags": 4, "matrix": [1,9], "x": 140, "y": 16}, + { "flags": 4, "matrix": [1,10], "x": 154, "y": 16}, + { "flags": 4, "matrix": [1,11], "x": 168, "y": 16}, + { "flags": 4, "matrix": [1,12], "x": 182, "y": 16}, + { "flags": 4, "matrix": [1,15], "x": 217, "y": 16}, + + { "flags": 1, "matrix": [2,0], "x": 12, "y": 29}, + { "flags": 4, "matrix": [2,1], "x": 32, "y": 29}, + { "flags": 4, "matrix": [2,2], "x": 46, "y": 29}, + { "flags": 4, "matrix": [2,3], "x": 60, "y": 29}, + { "flags": 4, "matrix": [2,4], "x": 74, "y": 29}, + { "flags": 4, "matrix": [2,5], "x": 88, "y": 29}, + { "flags": 4, "matrix": [2,6], "x": 102, "y": 29}, + { "flags": 4, "matrix": [2,7], "x": 116, "y": 29}, + { "flags": 4, "matrix": [2,8], "x": 130, "y": 29}, + { "flags": 4, "matrix": [2,9], "x": 144, "y": 29}, + { "flags": 4, "matrix": [2,10], "x": 158, "y": 29}, + { "flags": 4, "matrix": [2,11], "x": 172, "y": 29}, + { "flags": 1, "matrix": [2,12], "x": 186, "y": 29}, + { "flags": 4, "matrix": [2,14], "x": 201, "y": 19}, + { "flags": 4, "matrix": [2,15], "x": 217, "y": 29}, + + { "flags": 1, "matrix": [3,0], "x": 14, "y": 41}, + { "flags": 4, "matrix": [3,2], "x": 35, "y": 41}, + { "flags": 4, "matrix": [3,3], "x": 49, "y": 41}, + { "flags": 4, "matrix": [3,4], "x": 63, "y": 41}, + { "flags": 4, "matrix": [3,5], "x": 77, "y": 41}, + { "flags": 4, "matrix": [3,6], "x": 91, "y": 41}, + { "flags": 4, "matrix": [3,7], "x": 105, "y": 41}, + { "flags": 4, "matrix": [3,8], "x": 119, "y": 41}, + { "flags": 4, "matrix": [3,9], "x": 133, "y": 41}, + { "flags": 4, "matrix": [3,10], "x": 147, "y": 41}, + { "flags": 4, "matrix": [3,11], "x": 161, "y": 41}, + { "flags": 4, "matrix": [3,12], "x": 175, "y": 41}, + { "flags": 1, "matrix": [3,13], "x": 189, "y": 41}, + { "flags": 1, "matrix": [3,14], "x": 203, "y": 41}, + { "flags": 1, "matrix": [3,15], "x": 217, "y": 41}, + + { "flags": 1, "matrix": [4,0], "x": 9, "y": 54}, + { "flags": 1, "matrix": [4,1], "x": 26, "y": 54}, + { "flags": 1, "matrix": [4,2], "x": 44, "y": 54}, + { "flags": 1, "matrix": [4,3], "x": 60, "y": 54}, + { "flags": 4, "matrix": [4,6], "x": 91, "y": 54}, + { "flags": 1, "matrix": [4,9], "x": 122, "y": 54}, + { "flags": 1, "matrix": [4,10], "x": 138, "y": 54}, + { "flags": 1, "matrix": [4,11], "x": 156, "y": 54}, + { "flags": 1, "matrix": [4,12], "x": 173, "y": 54}, + { "flags": 1, "matrix": [4,13], "x": 189, "y": 54}, + { "flags": 1, "matrix": [4,14], "x": 203, "y": 54}, + { "flags": 1, "matrix": [4,15], "x": 217, "y": 54}, + + { "flags": 2, "x": 10, "y": 29}, + { "flags": 2, "x": 81, "y": 54}, + { "flags": 2, "x": 101, "y": 54} + ] + }, + "layouts": { + "LAYOUT_ansi": { + "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": [0,10], "x": 10, "y":0 }, + { "matrix": [0,11], "x": 11, "y":0 }, + { "matrix": [0,12], "x": 12, "y":0 }, + { "matrix": [0,13], "x": 13, "y":0 }, + { "matrix": [0,14], "x": 14, "y":0 }, + { "matrix": [0,15], "x": 15, "y":0 }, + + { "matrix": [1,0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1,1], "x": 1.5, "y": 1 }, + { "matrix": [1,2], "x": 2.5, "y": 1 }, + { "matrix": [1,3], "x": 3.5, "y": 1 }, + { "matrix": [1,4], "x": 4.5, "y": 1 }, + { "matrix": [1,5], "x": 5.5, "y": 1 }, + { "matrix": [1,6], "x": 6.5, "y": 1 }, + { "matrix": [1,7], "x": 7.5, "y": 1 }, + { "matrix": [1,8], "x": 8.5, "y": 1 }, + { "matrix": [1,9], "x": 9.5, "y": 1 }, + { "matrix": [1,10], "x": 10.5, "y": 1 }, + { "matrix": [1,11], "x": 11.5, "y": 1 }, + { "matrix": [1,12], "x": 12.5, "y": 1 }, + { "matrix": [1,15], "x": 15, "y": 1 }, + + { "matrix": [2,0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2,1], "x": 1.75, "y": 2 }, + { "matrix": [2,2], "x": 2.75, "y": 2 }, + { "matrix": [2,3], "x": 3.75, "y": 2 }, + { "matrix": [2,4], "x": 4.75, "y": 2 }, + { "matrix": [2,5], "x": 5.75, "y": 2 }, + { "matrix": [2,6], "x": 6.75, "y": 2 }, + { "matrix": [2,7], "x": 7.75, "y": 2 }, + { "matrix": [2,8], "x": 8.75, "y": 2 }, + { "matrix": [2,9], "x": 9.75, "y": 2 }, + { "matrix": [2,10], "x": 10.75, "y": 2 }, + { "matrix": [2,11], "x": 11.75, "y": 2 }, + { "matrix": [2,12], "x": 12.75, "y": 2 }, + { "matrix": [2,14], "w": 1.25, "h": 2, "x": 13.75, "y": 2 }, + { "matrix": [2,15], "x": 15, "y": 2 }, + + { "matrix": [3,0], "w": 2, "x": 2.25, "y": 3 }, + { "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 }, + { "matrix": [3,8], "x": 8, "y": 3 }, + { "matrix": [3,9], "x": 9, "y": 3 }, + { "matrix": [3,10], "x": 10, "y": 3 }, + { "matrix": [3,11], "x": 11, "y": 3 }, + { "matrix": [3,12], "x": 12, "y": 3 }, + { "matrix": [3,13], "x": 13, "y": 3 }, + { "matrix": [3,14], "x": 14, "y": 3 }, + { "matrix": [3,15], "x": 15, "y": 3 }, + + { "matrix": [4,0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4,1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4,2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4,3], "x": 3.75, "y": 4 }, + { "matrix": [4,6], "w": 3.5, "x": 4.75, "y": 4 }, + { "matrix": [4,9], "x": 8.25, "y": 4 }, + { "matrix": [4,10], "w": 1.25, "x": 9.25, "y": 4 }, + { "matrix": [4,11], "w": 1.25, "x": 10.5, "y": 4 }, + { "matrix": [4,12], "w": 1.25, "x": 11.75, "y": 4 }, + { "matrix": [4,13], "x": 13, "y": 4 }, + { "matrix": [4,14], "x": 14, "y": 4 }, + { "matrix": [4,15], "x": 15, "y": 4 } + ] + } + } +} diff --git a/keyboards/hfdkb/8s200/keymaps/default/keymap.c b/keyboards/hfdkb/8s200/keymaps/default/keymap.c new file mode 100644 index 00000000000..7599ed7ef50 --- /dev/null +++ b/keyboards/hfdkb/8s200/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┬────┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│INS│HOME│DEL | + * ├───├───├───├───├───├───├───├───├───├───├───├───├───├───┴────├────┤ + * │` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp │PGUP│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PGDN│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┤────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │END │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┬───┘────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ ↑ │ICON│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬────┼───┼────┤ + * │Ctrl│GUI │Alt │ │Alt│Ctl│FN │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴────┴───┴────┘ + */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_HOME, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/hfdkb/8s200/mcuconf.h b/keyboards/hfdkb/8s200/mcuconf.h new file mode 100644 index 00000000000..23a3f1e9682 --- /dev/null +++ b/keyboards/hfdkb/8s200/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ + +#pragma once + +#include_next + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE + +#undef WB32_SPI_QSPI_IRQ_PRIORITY +#define WB32_SPI_QSPI_IRQ_PRIORITY 9 + +#undef WB32_SPI_SPIM2_IRQ_PRIORITY +#define WB32_SPI_SPIM2_IRQ_PRIORITY 10 From 14e14305c353a6cb5a7cd1163cbde27c76da6ffa Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Mon, 30 Jun 2025 17:58:55 +0800 Subject: [PATCH 02/23] 8s200: Updated to new pattern --- keyboards/hfdkb/8s200/8s200.c | 283 +++++++----------- keyboards/hfdkb/8s200/8s200.h | 1 - .../hfdkb/8s200/8s200_via_v1_01_20250213.json | 234 --------------- .../hfdkb/8s200/8s200_via_v1_06_20250613.json | 224 -------------- keyboards/hfdkb/8s200/config.h | 6 +- keyboards/hfdkb/8s200/keyboard.json | 4 +- .../hfdkb/8s200/keymaps/default/keymap.c | 121 ++++---- 7 files changed, 183 insertions(+), 690 deletions(-) delete mode 100644 keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json delete mode 100644 keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 2bc67e52dff..73f00c6de5c 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -14,101 +14,100 @@ * along with this program. If not, see . */ -#include "quantum.h" -// clang-format off +#include QMK_KEYBOARD_H +// clang-format off #ifdef RGB_MATRIX_ENABLE -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location - * | | G location - * | | | B location - * | | | | */ + * | | G location + * | | | B location + * | | | | */ {1, SW3_CS1, SW2_CS1, SW1_CS1}, - {1, C_2, B_2, A_2}, - {1, C_3, B_3, A_3}, - {1, C_4, B_4, A_4}, - {1, C_5, B_5, A_5}, - {1, C_6, B_6, A_6}, - {1, C_7, B_7, A_7}, - {1, C_8, B_8, A_8}, - {1, C_9, B_9, A_9}, - {1, C_10, B_10, A_10}, - {1, C_11, B_11, A_11}, - {1, C_12, B_12, A_12}, - {1, C_13, B_13, A_13}, - {1, C_14, B_14, A_14}, - {1, C_15, B_15, A_15}, - {1, C_16, B_16, A_16}, + {1, SW3_CS2, SW2_CS2, SW1_CS2}, + {1, SW3_CS3, SW2_CS3, SW1_CS3}, + {1, SW3_CS4, SW2_CS4, SW1_CS4}, + {1, SW3_CS5, SW2_CS5, SW1_CS5}, + {1, SW3_CS6, SW2_CS6, SW1_CS6}, + {1, SW3_CS7, SW2_CS7, SW1_CS7}, + {1, SW3_CS8, SW2_CS8, SW1_CS8}, + {1, SW3_CS9, SW2_CS9, SW1_CS9}, + {1, SW3_CS10, SW2_CS10, SW1_CS10}, + {1, SW3_CS11, SW2_CS11, SW1_CS11}, + {1, SW3_CS12, SW2_CS12, SW1_CS12}, + {1, SW3_CS13, SW2_CS13, SW1_CS13}, + {1, SW3_CS14, SW2_CS14, SW1_CS14}, + {1, SW3_CS15, SW2_CS15, SW1_CS15}, + {1, SW3_CS16, SW2_CS16, SW1_CS16}, - {0, F_1, E_1, D_1}, - {0, F_2, E_2, D_2}, - {0, F_3, E_3, D_3}, - {0, F_4, E_4, D_4}, - {0, F_5, E_5, D_5}, - {0, F_6, E_6, D_6}, - {0, F_7, E_7, D_7}, - {0, F_8, E_8, D_8}, - {0, F_9, E_9, D_9}, - {0, F_10, E_10, D_10}, - {0, F_11, E_11, D_11}, - {0, F_12, E_12, D_12}, - {0, F_13, E_13, D_13}, - {1, F_1, E_1, D_1}, + {0, SW6_CS1, SW5_CS1, SW4_CS1}, + {0, SW6_CS2, SW5_CS2, SW4_CS2}, + {0, SW6_CS3, SW5_CS3, SW4_CS3}, + {0, SW6_CS4, SW5_CS4, SW4_CS4}, + {0, SW6_CS5, SW5_CS5, SW4_CS5}, + {0, SW6_CS6, SW5_CS6, SW4_CS6}, + {0, SW6_CS7, SW5_CS7, SW4_CS7}, + {0, SW6_CS8, SW5_CS8, SW4_CS8}, + {0, SW6_CS9, SW5_CS9, SW4_CS9}, + {0, SW6_CS10, SW5_CS10, SW4_CS10}, + {0, SW6_CS11, SW5_CS11, SW4_CS11}, + {0, SW6_CS12, SW5_CS12, SW4_CS12}, + {0, SW6_CS13, SW5_CS13, SW4_CS13}, + {1, SW6_CS1, SW5_CS1, SW4_CS1}, - {0, I_1, H_1, G_1}, - {0, I_2, H_2, G_2}, - {0, I_3, H_3, G_3}, - {0, I_4, H_4, G_4}, - {0, I_5, H_5, G_5}, - {0, I_6, H_6, G_6}, - {0, I_7, H_7, G_7}, - {0, I_8, H_8, G_8}, - {0, I_9, H_9, G_9}, - {0, I_10, H_10, G_10}, - {0, I_11, H_11, G_11}, - {0, I_12, H_12, G_12}, - {0, I_13, H_13, G_13}, - {1, F_5, E_5, D_5}, - {1, F_2, E_2, D_2}, + {0, SW9_CS1, SW8_CS1, SW7_CS1}, + {0, SW9_CS2, SW8_CS2, SW7_CS2}, + {0, SW9_CS3, SW8_CS3, SW7_CS3}, + {0, SW9_CS4, SW8_CS4, SW7_CS4}, + {0, SW9_CS5, SW8_CS5, SW7_CS5}, + {0, SW9_CS6, SW8_CS6, SW7_CS6}, + {0, SW9_CS7, SW8_CS7, SW7_CS7}, + {0, SW9_CS8, SW8_CS8, SW7_CS8}, + {0, SW9_CS9, SW8_CS9, SW7_CS9}, + {0, SW9_CS10, SW8_CS10, SW7_CS10}, + {0, SW9_CS11, SW8_CS11, SW7_CS11}, + {0, SW9_CS12, SW8_CS12, SW7_CS12}, + {0, SW9_CS13, SW8_CS13, SW7_CS13}, + {1, SW6_CS5, SW5_CS5, SW4_CS5}, + {1, SW6_CS2, SW5_CS2, SW4_CS2}, - {0, L_1, K_1, J_1}, - {0, L_3, K_3, J_3}, - {0, L_4, K_4, J_4}, - {0, L_5, K_5, J_5}, - {0, L_6, K_6, J_6}, - {0, L_7, K_7, J_7}, - {0, L_8, K_8, J_8}, - {0, L_9, K_9, J_9}, - {0, L_10, K_10, J_10}, - {0, L_11, K_11, J_11}, - {0, L_12, K_12, J_12}, - {1, F_9, E_9, D_9}, - {1, F_8, E_8, D_8}, - {1, F_6, E_6, D_6}, - {1, F_3, E_3, D_3}, + {0, SW12_CS1, SW11_CS1, SW10_CS1}, + {0, SW12_CS3, SW11_CS3, SW10_CS3}, + {0, SW12_CS4, SW11_CS4, SW10_CS4}, + {0, SW12_CS5, SW11_CS5, SW10_CS5}, + {0, SW12_CS6, SW11_CS6, SW10_CS6}, + {0, SW12_CS7, SW11_CS7, SW10_CS7}, + {0, SW12_CS8, SW11_CS8, SW10_CS8}, + {0, SW12_CS9, SW11_CS9, SW10_CS9}, + {0, SW12_CS10, SW11_CS10, SW10_CS10}, + {0, SW12_CS11, SW11_CS11, SW10_CS11}, + {0, SW12_CS12, SW11_CS12, SW10_CS12}, + {1, SW6_CS9, SW5_CS9, SW4_CS9}, + {1, SW6_CS8, SW5_CS8, SW4_CS8}, + {1, SW6_CS6, SW5_CS6, SW4_CS6}, + {1, SW6_CS3, SW5_CS3, SW4_CS3}, - {0, L_13, K_13, J_13}, - {0, L_14, K_14, J_14}, - {0, L_15, K_15, J_15}, - {0, L_16, K_16, J_16}, + {0, SW12_CS13, SW11_CS13, SW10_CS13}, + {0, SW12_CS14, SW11_CS14, SW10_CS14}, + {0, SW12_CS15, SW11_CS15, SW10_CS15}, + {0, SW12_CS16, SW11_CS16, SW10_CS16}, + {0, SW9_CS14, SW8_CS14, SW7_CS14}, + {0, SW9_CS15, SW8_CS15, SW7_CS15}, + {0, SW9_CS16, SW8_CS16, SW7_CS16}, + {0, SW6_CS14, SW5_CS14, SW4_CS14}, + {0, SW6_CS15, SW5_CS15, SW4_CS15}, + {0, SW6_CS16, SW5_CS16, SW4_CS16}, + {1, SW6_CS7, SW5_CS7, SW4_CS7}, + {1, SW6_CS4, SW5_CS4, SW4_CS4}, - {0, I_14, H_14, G_14}, - - {0, I_15, H_15, G_15}, - {0, I_16, H_16, G_16}, - {0, F_14, E_14, D_14}, - {0, F_15, E_15, D_15}, - {0, F_16, E_16, D_16}, - {1, F_7, E_7, D_7}, - {1, F_4, E_4, D_4}, - - {0, L_2, K_2, J_2}, - {1, D_10, E_10, F_10}, - {1, D_11, E_11, F_11}, + {0, SW12_CS2, SW11_CS2, SW10_CS2}, + {1, SW6_CS10, SW5_CS10, SW4_CS10}, + {1, SW6_CS11, SW5_CS11, SW4_CS11}, }; #endif + // clang-format on typedef union { uint32_t raw; @@ -119,8 +118,6 @@ typedef union { } keyboard_config_t; keyboard_config_t keyboard_config; -uint8_t rgb_test_en; -uint8_t rgb_test_index; uint32_t long_pressed_time; uint16_t long_pressed_keycode; uint8_t all_blink_cnt; @@ -152,11 +149,10 @@ static uint8_t rgb_matrix_effects_table[] = { RGB_MATRIX_RAINDROPS, RGB_MATRIX_SOLID_REACTIVE, }; - // clang-format on -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘按键事件 - if (process_record_user(keycode, record) != true) { // 自定义按键处理 - return false; // 用户已处理了按键事件无需进一步处理 +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (process_record_user(keycode, record) != true) { + return false; } switch (keycode) { case SW_OS1: @@ -167,14 +163,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘 long_pressed_time = 0; } break; - case RGB_TEST: - if (record->event.pressed) { - long_pressed_time = timer_read32(); - long_pressed_keycode = RGB_TEST; - } else { - long_pressed_time = 0; - } - break; case NK_TOGG: if (record->event.pressed) { long_pressed_time = timer_read32(); @@ -191,24 +179,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘 long_pressed_time = 0; } return false; - case KC_DEL: - if (record->event.pressed) { - if (rgb_test_en) { - rgb_test_en = false; - return false; - } - } - break; - case KC_DOWN: - if (record->event.pressed) { - if (rgb_test_en) { - rgb_test_index++; - rgb_test_index %= 4; - return false; - } - } - break; - case RGB_SPI: + case RM_SPDU: if (record->event.pressed) { rgb_matrix_increase_speed(); if (rgb_matrix_get_speed() >= 255) { @@ -216,7 +187,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘 } } return false; - case RGB_SPD: + case RM_SPDD: if (record->event.pressed) { rgb_matrix_decrease_speed(); if (rgb_matrix_get_speed() <= 27) { @@ -224,18 +195,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘 } } return false; - // case GU_TOGG: - // if (record->event.pressed) { - // } else { - // if (keymap_config.no_gui) { - // single_blink_time = timer_read32(); - // single_blink_cnt = 2; - // single_blink_index = 74; - // single_blink_color = (RGB){100, 100, 100}; - // } - // } - // break; - case RGB_MOD: + case RM_NEXT: if (record->event.pressed) { keyboard_config.rgb_mode++; if (keyboard_config.rgb_mode > (sizeof(rgb_matrix_effects_table) / sizeof(rgb_matrix_effects_table[0]))) { @@ -243,19 +203,15 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘 } eeconfig_update_user(keyboard_config.raw); if (keyboard_config.rgb_mode == 9) { - // rgb_matrix_disable_noeeprom(); rgb_matrix_set_flags(LED_FLAG_NONE); rgb_matrix_set_color_all(0, 0, 0); } else { - // rgb_matrix_enable(); rgb_matrix_set_flags(LED_FLAG_ALL); rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); } - // if (rgb_matrix_get_mode() == RGB_MATRIX_NONE) { - // } } return false; - case RGB_TOG: + case QK_RGB_MATRIX_TOGGLE: if (record->event.pressed) { if (keyboard_config.rgb_mode == 9) { return false; @@ -270,6 +226,10 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // 处理键盘 } break; } } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } return false; default: break; @@ -282,56 +242,39 @@ void matrix_init_kb(void) { setPinOutputOpenDrain(RGB_DRIVER_SDB_PIN); writePinHigh(RGB_DRIVER_SDB_PIN); #endif - matrix_init_user(); } void keyboard_post_init_kb() { - // rgb_matrix_config.hsv.h = 170; - // rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); keyboard_config.raw = eeconfig_read_user(); rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); if (keyboard_config.rgb_mode == 9) { - // rgb_matrix_disable_noeeprom(); rgb_matrix_set_flags(LED_FLAG_NONE); rgb_matrix_set_color_all(0, 0, 0); } - - keyboard_post_init_user(); // call matrix_init_user() at the end of this function + keyboard_post_init_user(); } void housekeeping_task_kb(void) { if (!keyboard_config.first_boot) { - keymap_config.nkro = 1; // 全键无冲 - eeconfig_update_keymap(keymap_config.raw); keyboard_config.first_boot = 1; rgb_matrix_config.hsv.h = 170; eeconfig_update_user(keyboard_config.raw); - // HSV hsv = rgb_matrix_get_hsv(); - // hsv.h = 170; - // RGB rgb = hsv_to_rgb(hsv); - // rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); } -#ifdef CONSOLE_ENABLE - debug_enable = true; -#endif - if ((timer_elapsed32(long_pressed_time) > 2000) && (long_pressed_time)) { // 检查是否有按键长按 + if ((timer_elapsed32(long_pressed_time) > 2000) && (long_pressed_time)) { long_pressed_time = 0; switch (long_pressed_keycode) { - case RGB_TEST: - rgb_test_en = 1; - break; case SW_OS1: - if (get_highest_layer(default_layer_state) == 0) { // MAC_BASE + if (get_highest_layer(default_layer_state) == 0) { set_single_persistent_default_layer(2); keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); // Write default value to EEPROM now + eeconfig_update_keymap(&keymap_config); single_blink_time = timer_read32(); single_blink_cnt = 2; single_blink_index = 73; single_blink_color = (RGB){100, 100, 100}; - } else if (get_highest_layer(default_layer_state) == 2) { // WIN_BASE + } else if (get_highest_layer(default_layer_state) == 2) { set_single_persistent_default_layer(0); single_blink_time = timer_read32(); single_blink_cnt = 2; @@ -341,18 +284,15 @@ void housekeeping_task_kb(void) { break; case NK_TOGG: keymap_config.nkro = !keymap_config.nkro; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); single_blink_time = timer_read32(); single_blink_cnt = 6; single_blink_index = 13; single_blink_color = (RGB){100, 100, 100}; break; case EE_CLR: - // eeconfig_update_rgb_matrix_default(); - - EE_CLR_blink_time = timer_read32(); - EE_CLR_blink_cnt = 6; - // EE_CLR_blink_index = 64; + EE_CLR_blink_time = timer_read32(); + EE_CLR_blink_cnt = 6; EE_CLR_blink_color = (RGB){.r = 100, .g = 100, .b = 100}; break; default: @@ -365,15 +305,9 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (rgb_matrix_indicators_advanced_user(led_min, led_max) != true) { return false; } - // rgb_matrix_set_color(73, 0, 0, 0); - // rgb_matrix_set_color(74, 0, 0, 0); - - if (rgb_test_en) { - rgb_matrix_set_color_all(rgb_test_color_table[rgb_test_index][0], rgb_test_color_table[rgb_test_index][1], rgb_test_color_table[rgb_test_index][2]); - } /*************************************************************************************/ - if (all_blink_cnt) { // 全键闪烁 + if (all_blink_cnt) { rgb_matrix_set_color_all(0, 0, 0); if (timer_elapsed32(all_blink_time) > 300) { all_blink_time = timer_read32(); @@ -384,7 +318,7 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } } - if (single_blink_cnt) { // 单键闪烁 + if (single_blink_cnt) { if (timer_elapsed32(single_blink_time) > 300) { single_blink_time = timer_read32(); single_blink_cnt--; @@ -396,7 +330,7 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } } /*************************************************************************************/ - if (EE_CLR_blink_cnt) { // 复位闪烁 + if (EE_CLR_blink_cnt) { if (EE_CLR_blink_cnt % 2) { rgb_matrix_set_color(73, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); rgb_matrix_set_color(74, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); @@ -414,16 +348,15 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { eeconfig_update_rgb_matrix_default(); keyboard_config.rgb_mode = 0; rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); - // rgb_matrix_set_color_all(RGB_BLUE); rgb_matrix_config.hsv.h = 170; - eeconfig_update_user(keyboard_config.raw); // Write default value to EEPROM now + eeconfig_update_user(keyboard_config.raw); keymap_config.no_gui = 0; keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } } - /*************************************************************************************/ + // caps lock red if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(72, 100, 100, 100); @@ -433,6 +366,10 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (keymap_config.no_gui) { rgb_matrix_set_color(61, 100, 100, 100); + } else { + if (!rgb_matrix_get_flags()) { + rgb_matrix_set_color(61, 0, 0, 0); + } } return true; diff --git a/keyboards/hfdkb/8s200/8s200.h b/keyboards/hfdkb/8s200/8s200.h index 42c5b29b0cd..5137826fd4a 100644 --- a/keyboards/hfdkb/8s200/8s200.h +++ b/keyboards/hfdkb/8s200/8s200.h @@ -7,5 +7,4 @@ enum user_keycodes { SW_OS1 = QK_KB_0, - RGB_TEST, }; diff --git a/keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json b/keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json deleted file mode 100644 index 0745088db71..00000000000 --- a/keyboards/hfdkb/8s200/8s200_via_v1_01_20250213.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "name": "AIRONE Pro", - "vendorId": "0xFFFE", - "productId": "0x0096", - "keycodes": ["qmk_lighting"], - "menus": [ - { - "label": "Lighting", - "content": [ - { - "label": "Backlight", - "content": [ - { - "label": "Brightness", - "type": "range", - "options": [0, 200], - "content": ["id_qmk_rgb_matrix_brightness", 3, 1] - }, - { - "label": "Effect", - "type": "dropdown", - "content": ["id_qmk_rgb_matrix_effect", 3, 2], - "options": [ - ["All Off", 0], - ["SOLID_COLOR", 1], - ["BREATHING", 2], - ["CYCLE_ALL", 3], - ["CYCLE_LEFT_RIGHT", 4], - ["CYCLE_UP_DOWN", 5], - ["RAINBOW_MOVING_CHEVRON", 6], - ["CYCLE_OUT_IN", 7], - ["CYCLE_OUT_IN_DUAL", 8], - ["CYCLE_PINWHEEL", 9], - ["CYCKE_SPIRAL", 10], - ["DUAL_BEACON", 11], - ["RAINBOW_BEACON", 12], - ["RAINDROPS", 13], - ["TYPING_HEATMAP", 14], - ["SOLID_REACTIVE_SIMPLE", 15], - ["SOLID_REACTIVE", 16], - ["SOLID_REACTIVE_NEXUS", 17], - ["MATRIX_MULTISPLASH", 18] - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0", - "label": "Effect Speed", - "type": "range", - "options": [0, 255], - "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0", - "label": "Color", - "type": "color", - "content": ["id_qmk_rgb_matrix_color", 3, 4] - } - ] - } - ] - } - ], - "matrix": { "rows": 5, "cols": 16 }, - "customKeycodes":[ - {"name":"BT DEV1","title":"BT_HOST1","shortName":"BT_HOST1"}, - {"name":"BT DEV2","title":"BT_HOST2","shortName":"BT_HOST2"}, - {"name":"BT DEV3","title":"BT_HOST3","shortName":"BT_HOST3"}, - {"name":"2.4G","title":"BT_2_4G","shortName":"BT_2_4G"}, - {"name":"USB","title":"BT_USB","shortName":"BT_USB"}, - {"name":"BT_VOL","title":"BT_VOL","shortName":"BT_VOL"} - ], - "layouts": { - "keymap":[ - [ - { - "c": "#AAAAAA" - }, - "0,0", - { - "c": "#cccccc" - }, - "0,1", - "0,2", - "0,3", - "0,4", - "0,5", - "0,6", - "0,7", - "0,8", - "0,9", - "0,10", - "0,11", - "0,12", - "0,13", - { - "c": "#AAAAAA" - }, - "0,14", - "0,15" - ], - [ - { - "w": 1.5 - }, - "1,0", - { - "c": "#cccccc" - }, - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - "1,11", - "1,12", - { - "x": 0.25, - "c": "#777777", - "w": 1.25, - "h": 2, - "w2": 1.5, - "h2": 1, - "x2": -0.25 - }, - "2,14", - { - "c": "#AAAAAA" - }, - "1,15" - ], - [ - { - "w": 1.75 - }, - "2,0", - { - "c": "#cccccc" - }, - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - "2,11", - "2,12", - { - "x": 1.25, - "c": "#AAAAAA" - }, - "2,15" - ], - [ - { - "w": 2 - }, - "3,0", - { - "c": "#cccccc" - }, - "3,2", - "3,3", - "3,4", - "3,5", - "3,6", - "3,7", - "3,8", - "3,9", - "3,10", - "3,11", - "3,12", - { - "c": "#AAAAAA" - }, - "3,13", - { - "c": "#777777" - }, - "3,14", - { - "c": "#AAAAAA" - }, - "3,15" - ], - [ - { - "w": 1.25 - }, - "4,0", - { - "w": 1.25 - }, - "4,1", - { - "w": 1.25 - }, - "4,2", - "4,3", - { - "w": 3.5 - }, - "4,6", - "4,9", - { - "w": 1.25 - }, - "4,10", - { - "w": 1.25 - }, - "4,11", - { - "w": 1.25 - }, - "4,12", - { - "c": "#777777" - }, - "4,13", - "4,14", - "4,15" - ] - ] - } - } diff --git a/keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json b/keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json deleted file mode 100644 index b9f65b94277..00000000000 --- a/keyboards/hfdkb/8s200/8s200_via_v1_06_20250613.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "name": "AIRONE PRO", - "vendorId": "0xFFFE", - "productId": "0x0096", - "keycodes": ["qmk_lighting"], - "menus": [ - { - "label": "Lighting", - "content": [ - { - "label": "Backlight", - "content": [ - { - "label": "Brightness", - "type": "range", - "options": [0, 200], - "content": ["id_qmk_rgb_matrix_brightness", 3, 1] - }, - { - "label": "Effect", - "type": "dropdown", - "content": ["id_qmk_rgb_matrix_effect", 3, 2], - "options": [ - ["All Off", 0], - ["MATRIX_SOLID_COLOR", 1], - ["BREATHING", 2], - ["CYCLE_LEFT_RIGHT", 3], - ["RAINBOW_MOVING_CHEVRON", 4], - ["CYCLE_OUT_IN_DUAL", 5], - ["DUAL_BEACON", 6], - ["RAINBOW_BEACON", 7], - ["RAINDROPS", 8], - ["SOLID_REACTIVE", 16] - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0", - "label": "Effect Speed", - "type": "range", - "options": [0, 255], - "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0", - "label": "Color", - "type": "color", - "content": ["id_qmk_rgb_matrix_color", 3, 4] - } - ] - } - ] - } - ], - "customKeycodes":[ - {"name":"SW_OS1","title":"Switch OS between Mac and Windows","shortName":"SW_OS1"} - ], - "matrix": { "rows": 5, "cols": 16 }, - "layouts": { - "keymap":[ - [ - { - "c": "#777777" - }, - "0,0", - { - "c": "#cccccc" - }, - "0,1", - "0,2", - "0,3", - "0,4", - "0,5", - "0,6", - "0,7", - "0,8", - "0,9", - "0,10", - "0,11", - "0,12", - "0,13", - { - "c": "#AAAAAA" - }, - "0,14", - "0,15" - ], - [ - { - "w": 1.5 - }, - "1,0", - { - "c": "#cccccc" - }, - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - "1,11", - "1,12", - { - "x": 0.25, - "c": "#777777", - "w": 1.25, - "h": 2, - "w2": 1.5, - "h2": 1, - "x2": -0.25 - }, - "2,14", - { - "c": "#AAAAAA" - }, - "1,15" - ], - [ - { - "w": 1.75 - }, - "2,0", - { - "c": "#cccccc" - }, - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - "2,11", - "2,12", - { - "x": 1.25, - "c": "#AAAAAA" - }, - "2,15" - ], - [ - { - "w": 2 - }, - "3,0", - { - "c": "#cccccc" - }, - "3,2", - "3,3", - "3,4", - "3,5", - "3,6", - "3,7", - "3,8", - "3,9", - "3,10", - "3,11", - "3,12", - { - "c": "#AAAAAA" - }, - "3,13", - { - "c": "#777777" - }, - "3,14", - { - "c": "#AAAAAA" - }, - "3,15" - ], - [ - { - "w": 1.25 - }, - "4,0", - { - "w": 1.25 - }, - "4,1", - { - "w": 1.25 - }, - "4,2", - "4,3", - { - "w": 3.5, - "c": "#cccccc" - }, - "4,6", - { - "c": "#AAAAAA" - }, - "4,9", - { - "w": 1.25 - }, - "4,10", - { - "w": 1.25 - }, - "4,11", - { - "w": 1.25 - }, - "4,12", - { - "c": "#777777" - }, - "4,13", - "4,14", - "4,15" - ] - ] - } - } diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index 054f67e1bd6..88e580f796f 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -24,9 +24,9 @@ #define RGB_DRIVER_EN_PIN B2 /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define IS31FL3733_DRIVER_COUNT 2 +#define IS31FL3733_I2C_ADDRESS_1 0b1110100 +#define IS31FL3733_I2C_ADDRESS_2 0b1110111 #define I2C1_SDA_PIN B7 #define I2C1_SCL_PIN B6 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index 457c38d9ba7..baaadba63e6 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -37,7 +37,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3731", + "driver": "is31fl3733", "max_brightness": 180, "val_steps": 45, "speed_steps": 57, @@ -150,7 +150,7 @@ ] }, "layouts": { - "LAYOUT_ansi": { + "LAYOUT_72_jis": { "layout": [ { "matrix": [0,0], "x": 0, "y":0 }, { "matrix": [0,1], "x": 1, "y":0 }, diff --git a/keyboards/hfdkb/8s200/keymaps/default/keymap.c b/keyboards/hfdkb/8s200/keymaps/default/keymap.c index 7599ed7ef50..9d43608094e 100644 --- a/keyboards/hfdkb/8s200/keymaps/default/keymap.c +++ b/keyboards/hfdkb/8s200/keymaps/default/keymap.c @@ -1,57 +1,72 @@ -// Copyright 2023 JoyLee (@itarze) -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 . + */ #include QMK_KEYBOARD_H +#include "keymap_japanese.h" -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┬────┐ - * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│INS│HOME│DEL | - * ├───├───├───├───├───├───├───├───├───├───├───├───├───├───┴────├────┤ - * │` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp │PGUP│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤────┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PGDN│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┤────┤ - * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │END │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┬───┘────┤ - * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ ↑ │ICON│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬────┼───┼────┤ - * │Ctrl│GUI │Alt │ │Alt│Ctl│FN │ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴────┴───┴────┘ - */ - [0] = LAYOUT_all( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_HOME, KC_DEL, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, _______, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_all( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) +enum layers { + WIN_BASE, + WIN_FN, + MAC_BASE, + MAC_FN, + FUNCTION, + RESERVED, +}; +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[WIN_BASE] = LAYOUT_72_jis( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, JP_YEN, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[WIN_FN] = LAYOUT_72_jis( /* FN */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, + _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, + _______, GU_TOGG, _______, _______, _______, _______, MO(FUNCTION), _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + +[MAC_BASE] = LAYOUT_72_jis( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, JP_YEN, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[MAC_FN] = LAYOUT_72_jis( /* FN */ + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, + _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, + _______, _______, _______, _______, _______, MO(FUNCTION), _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), + +[FUNCTION] = LAYOUT_72_jis( /* Function keys */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[RESERVED] = LAYOUT_72_jis( /* Rerserved layer */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; From 7f8100c8fa6fa0d3757f03a9518bd8522c2d0926 Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Thu, 3 Jul 2025 10:09:34 +0800 Subject: [PATCH 03/23] Refacted some codes --- keyboards/hfdkb/8s200/8s200.c | 67 +++++++++---------- keyboards/hfdkb/8s200/8s200.h | 19 +++++- keyboards/hfdkb/8s200/config.h | 14 ++-- keyboards/hfdkb/8s200/halconf.h | 2 - keyboards/hfdkb/8s200/keyboard.json | 12 +--- .../hfdkb/8s200/keymaps/default/keymap.c | 62 ++++++++--------- keyboards/hfdkb/8s200/readme.md | 24 +++++++ 7 files changed, 112 insertions(+), 88 deletions(-) create mode 100644 keyboards/hfdkb/8s200/readme.md diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 73f00c6de5c..7124c6f4a25 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2022 jonylee@hfd +/* Copyright (C) 2025 jonylee@hfd * * 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 @@ -103,8 +103,8 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS4, SW5_CS4, SW4_CS4}, {0, SW12_CS2, SW11_CS2, SW10_CS2}, - {1, SW6_CS10, SW5_CS10, SW4_CS10}, - {1, SW6_CS11, SW5_CS11, SW4_CS11}, + {1, SW4_CS10, SW5_CS10, SW6_CS10}, + {1, SW4_CS11, SW5_CS11, SW6_CS11}, }; #endif @@ -112,31 +112,24 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { typedef union { uint32_t raw; struct { - bool first_boot; uint8_t rgb_mode; }; } keyboard_config_t; keyboard_config_t keyboard_config; -uint32_t long_pressed_time; -uint16_t long_pressed_keycode; -uint8_t all_blink_cnt; -uint32_t all_blink_time; -RGB all_blink_color; -uint8_t single_blink_cnt; -uint8_t single_blink_index; -RGB single_blink_color; -uint32_t single_blink_time; -uint8_t EE_CLR_blink_cnt; -RGB EE_CLR_blink_color; -uint32_t EE_CLR_blink_time; +static uint32_t long_pressed_time; +static uint16_t long_pressed_keycode; +static uint8_t all_blink_cnt; +static uint32_t all_blink_time; +static RGB all_blink_color; +static uint8_t single_blink_cnt; +static uint8_t single_blink_index; +static RGB single_blink_color; +static uint32_t single_blink_time; +static uint8_t EE_CLR_blink_cnt; +static RGB EE_CLR_blink_color; +static uint32_t EE_CLR_blink_time; -const uint8_t rgb_test_color_table[][3] = { - {RGB_WHITE}, - {RGB_RED}, - {RGB_GREEN}, - {RGB_BLUE}, -}; // clang-format off static uint8_t rgb_matrix_effects_table[] = { RGB_MATRIX_BREATHING, @@ -149,6 +142,9 @@ static uint8_t rgb_matrix_effects_table[] = { RGB_MATRIX_RAINDROPS, RGB_MATRIX_SOLID_REACTIVE, }; + +#define RGB_MATRIX_EFFECTS_COUNT (sizeof(rgb_matrix_effects_table) / sizeof(rgb_matrix_effects_table[0])) + // clang-format on bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (process_record_user(keycode, record) != true) { @@ -198,11 +194,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case RM_NEXT: if (record->event.pressed) { keyboard_config.rgb_mode++; - if (keyboard_config.rgb_mode > (sizeof(rgb_matrix_effects_table) / sizeof(rgb_matrix_effects_table[0]))) { + if (keyboard_config.rgb_mode > RGB_MATRIX_EFFECTS_COUNT) { keyboard_config.rgb_mode = 0; } eeconfig_update_user(keyboard_config.raw); - if (keyboard_config.rgb_mode == 9) { + if (keyboard_config.rgb_mode == RGB_MATRIX_EFFECTS_COUNT) { rgb_matrix_set_flags(LED_FLAG_NONE); rgb_matrix_set_color_all(0, 0, 0); } else { @@ -213,7 +209,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; case QK_RGB_MATRIX_TOGGLE: if (record->event.pressed) { - if (keyboard_config.rgb_mode == 9) { + if (keyboard_config.rgb_mode == RGB_MATRIX_EFFECTS_COUNT) { return false; } switch (rgb_matrix_get_flags()) { @@ -237,6 +233,13 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return true; } +void eeconfig_init_kb() { + rgb_matrix_config.hsv.h = 170; + eeconfig_update_user(keyboard_config.raw); + + eeconfig_init_user(); +} + void matrix_init_kb(void) { #ifdef RGB_DRIVER_SDB_PIN setPinOutputOpenDrain(RGB_DRIVER_SDB_PIN); @@ -248,7 +251,7 @@ void matrix_init_kb(void) { void keyboard_post_init_kb() { keyboard_config.raw = eeconfig_read_user(); rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); - if (keyboard_config.rgb_mode == 9) { + if (keyboard_config.rgb_mode == RGB_MATRIX_EFFECTS_COUNT) { rgb_matrix_set_flags(LED_FLAG_NONE); rgb_matrix_set_color_all(0, 0, 0); } @@ -256,12 +259,6 @@ void keyboard_post_init_kb() { } void housekeeping_task_kb(void) { - if (!keyboard_config.first_boot) { - keyboard_config.first_boot = 1; - rgb_matrix_config.hsv.h = 170; - eeconfig_update_user(keyboard_config.raw); - } - if ((timer_elapsed32(long_pressed_time) > 2000) && (long_pressed_time)) { long_pressed_time = 0; switch (long_pressed_keycode) { @@ -299,6 +296,8 @@ void housekeeping_task_kb(void) { break; } } + + housekeeping_task_user(); } bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { @@ -306,7 +305,6 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { return false; } - /*************************************************************************************/ if (all_blink_cnt) { rgb_matrix_set_color_all(0, 0, 0); if (timer_elapsed32(all_blink_time) > 300) { @@ -329,7 +327,7 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(single_blink_index, 0, 0, 0); } } - /*************************************************************************************/ + if (EE_CLR_blink_cnt) { if (EE_CLR_blink_cnt % 2) { rgb_matrix_set_color(73, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); @@ -364,6 +362,7 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(72, 0, 0, 0); } + // GUI lock white if (keymap_config.no_gui) { rgb_matrix_set_color(61, 100, 100, 100); } else { diff --git a/keyboards/hfdkb/8s200/8s200.h b/keyboards/hfdkb/8s200/8s200.h index 5137826fd4a..5e554b9b8cb 100644 --- a/keyboards/hfdkb/8s200/8s200.h +++ b/keyboards/hfdkb/8s200/8s200.h @@ -1,10 +1,23 @@ -// Copyright 2023 JoyLee (@itarze) -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright (C) 2025 jonylee@hfd + * + * 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 . + */ #pragma once #include "quantum.h" enum user_keycodes { - SW_OS1 = QK_KB_0, + SW_OS1 = SAFE_RANGE, }; diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index 88e580f796f..d4c9fd7eb41 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -16,13 +16,6 @@ #pragma once -/* Use 6 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - -#define RGB_DRIVER_SDB_PIN A15 - -#define RGB_DRIVER_EN_PIN B2 - /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_I2C_ADDRESS_1 0b1110100 @@ -33,6 +26,10 @@ #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 +#define RGB_DRIVER_SDB_PIN A15 + +#define RGB_DRIVER_EN_PIN B2 + /* SPI Config for spi flash*/ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN B3 @@ -41,3 +38,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 + +/* Use 6 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 diff --git a/keyboards/hfdkb/8s200/halconf.h b/keyboards/hfdkb/8s200/halconf.h index 11715fe3156..b25fa8815fa 100644 --- a/keyboards/hfdkb/8s200/halconf.h +++ b/keyboards/hfdkb/8s200/halconf.h @@ -18,7 +18,5 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD #include_next diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index baaadba63e6..7d6da6582e7 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -13,8 +13,6 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, - "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, @@ -47,21 +45,13 @@ "animations": { "solid_color": false, "breathing": true, - "cycle_all": false, "cycle_left_right": true, - "cycle_up_down": false, - "cycle_out_in": false, "cycle_out_in_dual": true, "rainbow_moving_chevron": true, - "cycle_pinwheel": false, - "cycle_spiral": false, "dual_beacon": true, "rainbow_beacon": true, "raindrops": true, - "typing_heatmap": false, - "solid_reactive_simple": false, - "solid_reactive": true, - "multisplash": false + "solid_reactive": true }, "default": { "speed": 141 diff --git a/keyboards/hfdkb/8s200/keymaps/default/keymap.c b/keyboards/hfdkb/8s200/keymaps/default/keymap.c index 9d43608094e..b35a05d558c 100644 --- a/keyboards/hfdkb/8s200/keymaps/default/keymap.c +++ b/keyboards/hfdkb/8s200/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 @ Keychron (https://www.keychron.com) +/* Copyright (C) 2025 jonylee@hfd * * 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 @@ -19,51 +19,51 @@ enum layers { WIN_BASE, - WIN_FN, + _FN1, MAC_BASE, - MAC_FN, - FUNCTION, - RESERVED, + _FN2, + _FN3, + _FN4, }; // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[WIN_BASE] = LAYOUT_72_jis( /* Base */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, JP_YEN, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +[WIN_BASE] = LAYOUT_72_jis( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, JP_YEN, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), -[WIN_FN] = LAYOUT_72_jis( /* FN */ - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, - _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, - _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, - _______, GU_TOGG, _______, _______, _______, _______, MO(FUNCTION), _______, _______, RM_SPDD, RM_VALD, RM_SPDU), +[_FN1] = LAYOUT_72_jis( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, + _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, + _______, GU_TOGG, _______, _______, _______, _______, MO(_FN3),_______, _______, RM_SPDD, RM_VALD, RM_SPDU), -[MAC_BASE] = LAYOUT_72_jis( /* Base */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, JP_YEN, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +[MAC_BASE] = LAYOUT_72_jis( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, JP_YEN, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN2),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), -[MAC_FN] = LAYOUT_72_jis( /* FN */ - KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, - _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, - _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, - _______, _______, _______, _______, _______, MO(FUNCTION), _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), +[_FN2] = LAYOUT_72_jis( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, + _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, + _______, _______, _______, _______, _______, MO(_FN3),_______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), -[FUNCTION] = LAYOUT_72_jis( /* Function keys */ +[_FN3] = LAYOUT_72_jis( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -[RESERVED] = LAYOUT_72_jis( /* Rerserved layer */ +[_FN4] = LAYOUT_72_jis( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/hfdkb/8s200/readme.md b/keyboards/hfdkb/8s200/readme.md new file mode 100644 index 00000000000..f7172ccb6ca --- /dev/null +++ b/keyboards/hfdkb/8s200/readme.md @@ -0,0 +1,24 @@ +# 8s200 + +This is a customizable 65% and jis keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: 8s200 + +Make example for this keyboard (after setting up your build environment): + + make hfdkb/8s200:default + +Flashing example for this keyboard: + + make hfdkb/8s200: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: + +* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. +* **Physical reset button**: Briefly press the button on the back of the PCB From 65c5a7a1eafa089eed34bcba299f5c482696e7ce Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Fri, 4 Jul 2025 10:01:38 +0800 Subject: [PATCH 04/23] Initialize the keyboard_config to zero --- keyboards/hfdkb/8s200/8s200.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 7124c6f4a25..823646c0914 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -235,6 +235,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { void eeconfig_init_kb() { rgb_matrix_config.hsv.h = 170; + keyboard_config.raw = 0; eeconfig_update_user(keyboard_config.raw); eeconfig_init_user(); From bbb1d764fe2da17abb6442fae9e14e6fbbbde34e Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Fri, 4 Jul 2025 16:47:40 +0800 Subject: [PATCH 05/23] Added picture and link for 8s200 --- keyboards/hfdkb/8s200/readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/hfdkb/8s200/readme.md b/keyboards/hfdkb/8s200/readme.md index f7172ccb6ca..dbe117a909b 100644 --- a/keyboards/hfdkb/8s200/readme.md +++ b/keyboards/hfdkb/8s200/readme.md @@ -1,9 +1,12 @@ # 8s200 +![8s200](https://imgur.com/l50MY40) + This is a customizable 65% and jis keyboard. * Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) * Hardware Supported: 8s200 +* Hardware Availability: [Mistel AIRONE PRO Black-JIS keyboard](https://mistelkeyboard.com/products/2a25e7752bf9a3d8e66548816250028a) Make example for this keyboard (after setting up your build environment): From 5b7e69c121a8384183c5e78510e8a8d698684e6c Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Fri, 4 Jul 2025 17:04:46 +0800 Subject: [PATCH 06/23] Updated the picture link --- keyboards/hfdkb/8s200/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/readme.md b/keyboards/hfdkb/8s200/readme.md index dbe117a909b..879b1b32262 100644 --- a/keyboards/hfdkb/8s200/readme.md +++ b/keyboards/hfdkb/8s200/readme.md @@ -1,6 +1,6 @@ # 8s200 -![8s200](https://imgur.com/l50MY40) +![8s200](https://imgur.com/gallery/airone-pro-mBx46Fm#l50MY40) This is a customizable 65% and jis keyboard. From 329775594335ec2e55cbe45e9a573486b94b4ef8 Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Fri, 4 Jul 2025 17:07:17 +0800 Subject: [PATCH 07/23] Back to origional picture link --- keyboards/hfdkb/8s200/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/readme.md b/keyboards/hfdkb/8s200/readme.md index 879b1b32262..dbe117a909b 100644 --- a/keyboards/hfdkb/8s200/readme.md +++ b/keyboards/hfdkb/8s200/readme.md @@ -1,6 +1,6 @@ # 8s200 -![8s200](https://imgur.com/gallery/airone-pro-mBx46Fm#l50MY40) +![8s200](https://imgur.com/l50MY40) This is a customizable 65% and jis keyboard. From 121eb2b79dc3aa1924e84616d7a3b95f0c6dd6a4 Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Fri, 4 Jul 2025 17:17:26 +0800 Subject: [PATCH 08/23] Updated the picture link --- keyboards/hfdkb/8s200/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/readme.md b/keyboards/hfdkb/8s200/readme.md index dbe117a909b..113c8c8ef4f 100644 --- a/keyboards/hfdkb/8s200/readme.md +++ b/keyboards/hfdkb/8s200/readme.md @@ -1,6 +1,6 @@ # 8s200 -![8s200](https://imgur.com/l50MY40) +![8s200](https://imgur.com/l50MY40.png) This is a customizable 65% and jis keyboard. From 5b791829ef3e575714cdd8e711272adf585b04e2 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Sun, 6 Jul 2025 18:24:53 +0800 Subject: [PATCH 09/23] Update keyboards/hfdkb/8s200/8s200.c Co-authored-by: Drashna Jaelre --- keyboards/hfdkb/8s200/8s200.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 823646c0914..ac3c900d747 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -241,12 +241,12 @@ void eeconfig_init_kb() { eeconfig_init_user(); } -void matrix_init_kb(void) { +void keyboard_pre_init_kb(void) { #ifdef RGB_DRIVER_SDB_PIN - setPinOutputOpenDrain(RGB_DRIVER_SDB_PIN); - writePinHigh(RGB_DRIVER_SDB_PIN); + gpio_set_pin_output_open_drain(RGB_DRIVER_SDB_PIN); + gpio_write_pin_high(RGB_DRIVER_SDB_PIN); #endif - matrix_init_user(); + keyboard_pre_init_user(); } void keyboard_post_init_kb() { From 436bbfc014165d9dff84d9a95aa0d771137c85cc Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Sun, 6 Jul 2025 18:25:04 +0800 Subject: [PATCH 10/23] Update keyboards/hfdkb/8s200/8s200.h Co-authored-by: Drashna Jaelre --- keyboards/hfdkb/8s200/8s200.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/8s200.h b/keyboards/hfdkb/8s200/8s200.h index 5e554b9b8cb..c43f568c475 100644 --- a/keyboards/hfdkb/8s200/8s200.h +++ b/keyboards/hfdkb/8s200/8s200.h @@ -19,5 +19,5 @@ #include "quantum.h" enum user_keycodes { - SW_OS1 = SAFE_RANGE, + SW_OS1 = QK_KB, }; From 18961b319d15fcfac644043b45bad404b2c9f534 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:21:43 +0800 Subject: [PATCH 11/23] Update keyboards/hfdkb/8s200/8s200.c Co-authored-by: Drashna Jaelre --- keyboards/hfdkb/8s200/8s200.c | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index ac3c900d747..8eea435b289 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -234,7 +234,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } void eeconfig_init_kb() { - rgb_matrix_config.hsv.h = 170; keyboard_config.raw = 0; eeconfig_update_user(keyboard_config.raw); From a7344a4932d88a3b0f79d3656d91ebcb15cb51ac Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:22:01 +0800 Subject: [PATCH 12/23] Update keyboards/hfdkb/8s200/config.h Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index d4c9fd7eb41..a5daae236ec 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -38,6 +38,3 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 - -/* Use 6 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 From 0695a9dd87d3d26fa8dcc6b3cf48af347b3380f8 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:22:12 +0800 Subject: [PATCH 13/23] Update keyboards/hfdkb/8s200/keyboard.json Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/keyboard.json | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index 7d6da6582e7..b6582e5704c 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -43,7 +43,6 @@ "react_on_keyup": true, "sleep": true, "animations": { - "solid_color": false, "breathing": true, "cycle_left_right": true, "cycle_out_in_dual": true, From 264f70adaaf43079e3d8855737b22357157393fa Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:22:58 +0800 Subject: [PATCH 14/23] Update keyboards/hfdkb/8s200/config.h Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/config.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index a5daae236ec..7fd5639ea39 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -18,8 +18,11 @@ /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 -#define IS31FL3733_I2C_ADDRESS_1 0b1110100 -#define IS31FL3733_I2C_ADDRESS_2 0b1110111 +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_SCL_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_SCL_VCC +#define IS31FL3733_SDB_PIN A15 + + #define I2C1_SDA_PIN B7 #define I2C1_SCL_PIN B6 #define I2C1_SCL_PAL_MODE 4 From 55102f2ff69e242e9a3b0ec6eb85d8cf6cd68189 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:23:22 +0800 Subject: [PATCH 15/23] Update keyboards/hfdkb/8s200/config.h Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/config.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index 7fd5639ea39..0774cbb2eff 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -23,10 +23,6 @@ #define IS31FL3733_SDB_PIN A15 -#define I2C1_SDA_PIN B7 -#define I2C1_SCL_PIN B6 -#define I2C1_SCL_PAL_MODE 4 -#define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 #define RGB_DRIVER_SDB_PIN A15 From 2f2455fda49bdd868faed27bef8e9dfefc97ed38 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:23:33 +0800 Subject: [PATCH 16/23] Update keyboards/hfdkb/8s200/config.h Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index 0774cbb2eff..d47e21b643b 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -24,9 +24,6 @@ #define I2C1_CLOCK_SPEED 400000 - -#define RGB_DRIVER_SDB_PIN A15 - #define RGB_DRIVER_EN_PIN B2 /* SPI Config for spi flash*/ From 7ac8b0685628b4a7d55f8bb77ef76ba0ec23dc1f Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:23:46 +0800 Subject: [PATCH 17/23] Update keyboards/hfdkb/8s200/config.h Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index d47e21b643b..a604d816cbd 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -17,7 +17,6 @@ #pragma once /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_SCL_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_SCL_VCC #define IS31FL3733_SDB_PIN A15 From 80ecf62f08bc005d831ff2c70b04ee812f525737 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:23:56 +0800 Subject: [PATCH 18/23] Update keyboards/hfdkb/8s200/keyboard.json Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/keyboard.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index b6582e5704c..85ca9f9762b 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -37,9 +37,6 @@ "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 180, - "val_steps": 45, - "speed_steps": 57, - "hue_steps": 32, "react_on_keyup": true, "sleep": true, "animations": { From ea203947a3c85a1512a08a67e8ea52d64a38591a Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:24:06 +0800 Subject: [PATCH 19/23] Update keyboards/hfdkb/8s200/keyboard.json Co-authored-by: Drashna Jaelre --- keyboards/hfdkb/8s200/keyboard.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index 85ca9f9762b..9358f440df8 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -50,6 +50,7 @@ "solid_reactive": true }, "default": { + "hue": 170, "speed": 141 }, "layout": [ From 6965bb744077a3898708811a86dfb8f59c87ff8c Mon Sep 17 00:00:00 2001 From: galican <2831039915@qq.com> Date: Mon, 7 Jul 2025 14:53:38 +0800 Subject: [PATCH 20/23] Removed 8s200.h. Replaced the rbg matrix deriver with snled27351 according to actual schematic diagram. Removed all ''blink' and "rgb_matrix_effect_table" logic. Removed unused pin definiton like RGB_DRIVER_SDB_PIN and RGB_DRIVER_EN_PIN. --- keyboards/hfdkb/8s200/8s200.c | 365 ++++-------------- keyboards/hfdkb/8s200/8s200.h | 23 -- keyboards/hfdkb/8s200/config.h | 8 +- keyboards/hfdkb/8s200/keyboard.json | 5 +- .../hfdkb/8s200/keymaps/default/keymap.c | 4 +- 5 files changed, 84 insertions(+), 321 deletions(-) delete mode 100644 keyboards/hfdkb/8s200/8s200.h diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 8eea435b289..284d360bfc2 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -18,200 +18,104 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location * | | G location * | | | B location * | | | | */ - {1, SW3_CS1, SW2_CS1, SW1_CS1}, - {1, SW3_CS2, SW2_CS2, SW1_CS2}, - {1, SW3_CS3, SW2_CS3, SW1_CS3}, - {1, SW3_CS4, SW2_CS4, SW1_CS4}, - {1, SW3_CS5, SW2_CS5, SW1_CS5}, - {1, SW3_CS6, SW2_CS6, SW1_CS6}, - {1, SW3_CS7, SW2_CS7, SW1_CS7}, - {1, SW3_CS8, SW2_CS8, SW1_CS8}, - {1, SW3_CS9, SW2_CS9, SW1_CS9}, - {1, SW3_CS10, SW2_CS10, SW1_CS10}, - {1, SW3_CS11, SW2_CS11, SW1_CS11}, - {1, SW3_CS12, SW2_CS12, SW1_CS12}, - {1, SW3_CS13, SW2_CS13, SW1_CS13}, - {1, SW3_CS14, SW2_CS14, SW1_CS14}, - {1, SW3_CS15, SW2_CS15, SW1_CS15}, - {1, SW3_CS16, SW2_CS16, SW1_CS16}, + {1, CB3_CA1, CB2_CA1, CB1_CA1}, + {1, CB3_CA2, CB2_CA2, CB1_CA2}, + {1, CB3_CA3, CB2_CA3, CB1_CA3}, + {1, CB3_CA4, CB2_CA4, CB1_CA4}, + {1, CB3_CA5, CB2_CA5, CB1_CA5}, + {1, CB3_CA6, CB2_CA6, CB1_CA6}, + {1, CB3_CA7, CB2_CA7, CB1_CA7}, + {1, CB3_CA8, CB2_CA8, CB1_CA8}, + {1, CB3_CA9, CB2_CA9, CB1_CA9}, + {1, CB3_CA10, CB2_CA10, CB1_CA10}, + {1, CB3_CA11, CB2_CA11, CB1_CA11}, + {1, CB3_CA12, CB2_CA12, CB1_CA12}, + {1, CB3_CA13, CB2_CA13, CB1_CA13}, + {1, CB3_CA14, CB2_CA14, CB1_CA14}, + {1, CB3_CA15, CB2_CA15, CB1_CA15}, + {1, CB3_CA16, CB2_CA16, CB1_CA16}, - {0, SW6_CS1, SW5_CS1, SW4_CS1}, - {0, SW6_CS2, SW5_CS2, SW4_CS2}, - {0, SW6_CS3, SW5_CS3, SW4_CS3}, - {0, SW6_CS4, SW5_CS4, SW4_CS4}, - {0, SW6_CS5, SW5_CS5, SW4_CS5}, - {0, SW6_CS6, SW5_CS6, SW4_CS6}, - {0, SW6_CS7, SW5_CS7, SW4_CS7}, - {0, SW6_CS8, SW5_CS8, SW4_CS8}, - {0, SW6_CS9, SW5_CS9, SW4_CS9}, - {0, SW6_CS10, SW5_CS10, SW4_CS10}, - {0, SW6_CS11, SW5_CS11, SW4_CS11}, - {0, SW6_CS12, SW5_CS12, SW4_CS12}, - {0, SW6_CS13, SW5_CS13, SW4_CS13}, - {1, SW6_CS1, SW5_CS1, SW4_CS1}, + {0, CB6_CA1, CB5_CA1, CB4_CA1}, + {0, CB6_CA2, CB5_CA2, CB4_CA2}, + {0, CB6_CA3, CB5_CA3, CB4_CA3}, + {0, CB6_CA4, CB5_CA4, CB4_CA4}, + {0, CB6_CA5, CB5_CA5, CB4_CA5}, + {0, CB6_CA6, CB5_CA6, CB4_CA6}, + {0, CB6_CA7, CB5_CA7, CB4_CA7}, + {0, CB6_CA8, CB5_CA8, CB4_CA8}, + {0, CB6_CA9, CB5_CA9, CB4_CA9}, + {0, CB6_CA10, CB5_CA10, CB4_CA10}, + {0, CB6_CA11, CB5_CA11, CB4_CA11}, + {0, CB6_CA12, CB5_CA12, CB4_CA12}, + {0, CB6_CA13, CB5_CA13, CB4_CA13}, + {1, CB6_CA1, CB5_CA1, CB4_CA1}, - {0, SW9_CS1, SW8_CS1, SW7_CS1}, - {0, SW9_CS2, SW8_CS2, SW7_CS2}, - {0, SW9_CS3, SW8_CS3, SW7_CS3}, - {0, SW9_CS4, SW8_CS4, SW7_CS4}, - {0, SW9_CS5, SW8_CS5, SW7_CS5}, - {0, SW9_CS6, SW8_CS6, SW7_CS6}, - {0, SW9_CS7, SW8_CS7, SW7_CS7}, - {0, SW9_CS8, SW8_CS8, SW7_CS8}, - {0, SW9_CS9, SW8_CS9, SW7_CS9}, - {0, SW9_CS10, SW8_CS10, SW7_CS10}, - {0, SW9_CS11, SW8_CS11, SW7_CS11}, - {0, SW9_CS12, SW8_CS12, SW7_CS12}, - {0, SW9_CS13, SW8_CS13, SW7_CS13}, - {1, SW6_CS5, SW5_CS5, SW4_CS5}, - {1, SW6_CS2, SW5_CS2, SW4_CS2}, + {0, CB9_CA1, CB8_CA1, CB7_CA1}, + {0, CB9_CA2, CB8_CA2, CB7_CA2}, + {0, CB9_CA3, CB8_CA3, CB7_CA3}, + {0, CB9_CA4, CB8_CA4, CB7_CA4}, + {0, CB9_CA5, CB8_CA5, CB7_CA5}, + {0, CB9_CA6, CB8_CA6, CB7_CA6}, + {0, CB9_CA7, CB8_CA7, CB7_CA7}, + {0, CB9_CA8, CB8_CA8, CB7_CA8}, + {0, CB9_CA9, CB8_CA9, CB7_CA9}, + {0, CB9_CA10, CB8_CA10, CB7_CA10}, + {0, CB9_CA11, CB8_CA11, CB7_CA11}, + {0, CB9_CA12, CB8_CA12, CB7_CA12}, + {0, CB9_CA13, CB8_CA13, CB7_CA13}, + {1, CB6_CA5, CB5_CA5, CB4_CA5}, + {1, CB6_CA2, CB5_CA2, CB4_CA2}, - {0, SW12_CS1, SW11_CS1, SW10_CS1}, - {0, SW12_CS3, SW11_CS3, SW10_CS3}, - {0, SW12_CS4, SW11_CS4, SW10_CS4}, - {0, SW12_CS5, SW11_CS5, SW10_CS5}, - {0, SW12_CS6, SW11_CS6, SW10_CS6}, - {0, SW12_CS7, SW11_CS7, SW10_CS7}, - {0, SW12_CS8, SW11_CS8, SW10_CS8}, - {0, SW12_CS9, SW11_CS9, SW10_CS9}, - {0, SW12_CS10, SW11_CS10, SW10_CS10}, - {0, SW12_CS11, SW11_CS11, SW10_CS11}, - {0, SW12_CS12, SW11_CS12, SW10_CS12}, - {1, SW6_CS9, SW5_CS9, SW4_CS9}, - {1, SW6_CS8, SW5_CS8, SW4_CS8}, - {1, SW6_CS6, SW5_CS6, SW4_CS6}, - {1, SW6_CS3, SW5_CS3, SW4_CS3}, + {0, CB12_CA1, CB11_CA1, CB10_CA1}, + {0, CB12_CA3, CB11_CA3, CB10_CA3}, + {0, CB12_CA4, CB11_CA4, CB10_CA4}, + {0, CB12_CA5, CB11_CA5, CB10_CA5}, + {0, CB12_CA6, CB11_CA6, CB10_CA6}, + {0, CB12_CA7, CB11_CA7, CB10_CA7}, + {0, CB12_CA8, CB11_CA8, CB10_CA8}, + {0, CB12_CA9, CB11_CA9, CB10_CA9}, + {0, CB12_CA10, CB11_CA10, CB10_CA10}, + {0, CB12_CA11, CB11_CA11, CB10_CA11}, + {0, CB12_CA12, CB11_CA12, CB10_CA12}, + {1, CB6_CA9, CB5_CA9, CB4_CA9}, + {1, CB6_CA8, CB5_CA8, CB4_CA8}, + {1, CB6_CA6, CB5_CA6, CB4_CA6}, + {1, CB6_CA3, CB5_CA3, CB4_CA3}, - {0, SW12_CS13, SW11_CS13, SW10_CS13}, - {0, SW12_CS14, SW11_CS14, SW10_CS14}, - {0, SW12_CS15, SW11_CS15, SW10_CS15}, - {0, SW12_CS16, SW11_CS16, SW10_CS16}, - {0, SW9_CS14, SW8_CS14, SW7_CS14}, - {0, SW9_CS15, SW8_CS15, SW7_CS15}, - {0, SW9_CS16, SW8_CS16, SW7_CS16}, - {0, SW6_CS14, SW5_CS14, SW4_CS14}, - {0, SW6_CS15, SW5_CS15, SW4_CS15}, - {0, SW6_CS16, SW5_CS16, SW4_CS16}, - {1, SW6_CS7, SW5_CS7, SW4_CS7}, - {1, SW6_CS4, SW5_CS4, SW4_CS4}, + {0, CB12_CA13, CB11_CA13, CB10_CA13}, + {0, CB12_CA14, CB11_CA14, CB10_CA14}, + {0, CB12_CA15, CB11_CA15, CB10_CA15}, + {0, CB12_CA16, CB11_CA16, CB10_CA16}, + {0, CB9_CA14, CB8_CA14, CB7_CA14}, + {0, CB9_CA15, CB8_CA15, CB7_CA15}, + {0, CB9_CA16, CB8_CA16, CB7_CA16}, + {0, CB6_CA14, CB5_CA14, CB4_CA14}, + {0, CB6_CA15, CB5_CA15, CB4_CA15}, + {0, CB6_CA16, CB5_CA16, CB4_CA16}, + {1, CB6_CA7, CB5_CA7, CB4_CA7}, + {1, CB6_CA4, CB5_CA4, CB4_CA4}, - {0, SW12_CS2, SW11_CS2, SW10_CS2}, - {1, SW4_CS10, SW5_CS10, SW6_CS10}, - {1, SW4_CS11, SW5_CS11, SW6_CS11}, + {0, CB12_CA2, CB11_CA2, CB10_CA2}, + {1, CB4_CA10, CB5_CA10, CB6_CA10}, + {1, CB4_CA11, CB5_CA11, CB6_CA11}, }; #endif -// clang-format on -typedef union { - uint32_t raw; - struct { - uint8_t rgb_mode; - }; -} keyboard_config_t; -keyboard_config_t keyboard_config; - -static uint32_t long_pressed_time; -static uint16_t long_pressed_keycode; -static uint8_t all_blink_cnt; -static uint32_t all_blink_time; -static RGB all_blink_color; -static uint8_t single_blink_cnt; -static uint8_t single_blink_index; -static RGB single_blink_color; -static uint32_t single_blink_time; -static uint8_t EE_CLR_blink_cnt; -static RGB EE_CLR_blink_color; -static uint32_t EE_CLR_blink_time; - -// clang-format off -static uint8_t rgb_matrix_effects_table[] = { - RGB_MATRIX_BREATHING, - RGB_MATRIX_SOLID_COLOR, - RGB_MATRIX_CYCLE_LEFT_RIGHT, - RGB_MATRIX_RAINBOW_MOVING_CHEVRON, - RGB_MATRIX_CYCLE_OUT_IN_DUAL, - RGB_MATRIX_DUAL_BEACON, - RGB_MATRIX_RAINBOW_BEACON, - RGB_MATRIX_RAINDROPS, - RGB_MATRIX_SOLID_REACTIVE, -}; - -#define RGB_MATRIX_EFFECTS_COUNT (sizeof(rgb_matrix_effects_table) / sizeof(rgb_matrix_effects_table[0])) - // clang-format on bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (process_record_user(keycode, record) != true) { return false; } switch (keycode) { - case SW_OS1: - if (record->event.pressed) { - long_pressed_time = timer_read32(); - long_pressed_keycode = SW_OS1; - } else { - long_pressed_time = 0; - } - break; - case NK_TOGG: - if (record->event.pressed) { - long_pressed_time = timer_read32(); - long_pressed_keycode = NK_TOGG; - } else { - long_pressed_time = 0; - } - return false; - case EE_CLR: - if (record->event.pressed) { - long_pressed_time = timer_read32(); - long_pressed_keycode = EE_CLR; - } else { - long_pressed_time = 0; - } - return false; - case RM_SPDU: - if (record->event.pressed) { - rgb_matrix_increase_speed(); - if (rgb_matrix_get_speed() >= 255) { - rgb_matrix_config.speed = 255; - } - } - return false; - case RM_SPDD: - if (record->event.pressed) { - rgb_matrix_decrease_speed(); - if (rgb_matrix_get_speed() <= 27) { - rgb_matrix_config.speed = 27; - } - } - return false; - case RM_NEXT: - if (record->event.pressed) { - keyboard_config.rgb_mode++; - if (keyboard_config.rgb_mode > RGB_MATRIX_EFFECTS_COUNT) { - keyboard_config.rgb_mode = 0; - } - eeconfig_update_user(keyboard_config.raw); - if (keyboard_config.rgb_mode == RGB_MATRIX_EFFECTS_COUNT) { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } else { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); - } - } - return false; case QK_RGB_MATRIX_TOGGLE: if (record->event.pressed) { - if (keyboard_config.rgb_mode == RGB_MATRIX_EFFECTS_COUNT) { - return false; - } switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: { rgb_matrix_set_flags(LED_FLAG_NONE); @@ -233,128 +137,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return true; } -void eeconfig_init_kb() { - keyboard_config.raw = 0; - eeconfig_update_user(keyboard_config.raw); - - eeconfig_init_user(); -} - -void keyboard_pre_init_kb(void) { -#ifdef RGB_DRIVER_SDB_PIN - gpio_set_pin_output_open_drain(RGB_DRIVER_SDB_PIN); - gpio_write_pin_high(RGB_DRIVER_SDB_PIN); -#endif - keyboard_pre_init_user(); -} - -void keyboard_post_init_kb() { - keyboard_config.raw = eeconfig_read_user(); - rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); - if (keyboard_config.rgb_mode == RGB_MATRIX_EFFECTS_COUNT) { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - keyboard_post_init_user(); -} - -void housekeeping_task_kb(void) { - if ((timer_elapsed32(long_pressed_time) > 2000) && (long_pressed_time)) { - long_pressed_time = 0; - switch (long_pressed_keycode) { - case SW_OS1: - if (get_highest_layer(default_layer_state) == 0) { - set_single_persistent_default_layer(2); - keymap_config.no_gui = 0; - eeconfig_update_keymap(&keymap_config); - single_blink_time = timer_read32(); - single_blink_cnt = 2; - single_blink_index = 73; - single_blink_color = (RGB){100, 100, 100}; - } else if (get_highest_layer(default_layer_state) == 2) { - set_single_persistent_default_layer(0); - single_blink_time = timer_read32(); - single_blink_cnt = 2; - single_blink_index = 73; - single_blink_color = (RGB){.r = 0, .g = 0, .b = 100}; - } - break; - case NK_TOGG: - keymap_config.nkro = !keymap_config.nkro; - eeconfig_update_keymap(&keymap_config); - single_blink_time = timer_read32(); - single_blink_cnt = 6; - single_blink_index = 13; - single_blink_color = (RGB){100, 100, 100}; - break; - case EE_CLR: - EE_CLR_blink_time = timer_read32(); - EE_CLR_blink_cnt = 6; - EE_CLR_blink_color = (RGB){.r = 100, .g = 100, .b = 100}; - break; - default: - break; - } - } - - housekeeping_task_user(); -} - bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (rgb_matrix_indicators_advanced_user(led_min, led_max) != true) { return false; } - if (all_blink_cnt) { - rgb_matrix_set_color_all(0, 0, 0); - if (timer_elapsed32(all_blink_time) > 300) { - all_blink_time = timer_read32(); - all_blink_cnt--; - } - if (all_blink_cnt & 0x1) { - rgb_matrix_set_color_all(all_blink_color.r, all_blink_color.g, all_blink_color.b); - } - } - - if (single_blink_cnt) { - if (timer_elapsed32(single_blink_time) > 300) { - single_blink_time = timer_read32(); - single_blink_cnt--; - } - if (single_blink_cnt % 2) { - rgb_matrix_set_color(single_blink_index, single_blink_color.r, single_blink_color.g, single_blink_color.b); - } else { - rgb_matrix_set_color(single_blink_index, 0, 0, 0); - } - } - - if (EE_CLR_blink_cnt) { - if (EE_CLR_blink_cnt % 2) { - rgb_matrix_set_color(73, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); - rgb_matrix_set_color(74, EE_CLR_blink_color.r, EE_CLR_blink_color.g, EE_CLR_blink_color.b); - } else { - rgb_matrix_set_color(73, 0, 0, 0); - rgb_matrix_set_color(74, 0, 0, 0); - } - if (timer_elapsed32(EE_CLR_blink_time) > 300) { - if (EE_CLR_blink_cnt > 0) { - EE_CLR_blink_time = timer_read32(); - EE_CLR_blink_cnt--; - } - if (!EE_CLR_blink_cnt) { - eeconfig_init(); - eeconfig_update_rgb_matrix_default(); - keyboard_config.rgb_mode = 0; - rgb_matrix_mode(rgb_matrix_effects_table[keyboard_config.rgb_mode]); - rgb_matrix_config.hsv.h = 170; - eeconfig_update_user(keyboard_config.raw); - keymap_config.no_gui = 0; - keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); - } - } - } - // caps lock red if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(72, 100, 100, 100); diff --git a/keyboards/hfdkb/8s200/8s200.h b/keyboards/hfdkb/8s200/8s200.h deleted file mode 100644 index c43f568c475..00000000000 --- a/keyboards/hfdkb/8s200/8s200.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (C) 2025 jonylee@hfd - * - * 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 . - */ - -#pragma once - -#include "quantum.h" - -enum user_keycodes { - SW_OS1 = QK_KB, -}; diff --git a/keyboards/hfdkb/8s200/config.h b/keyboards/hfdkb/8s200/config.h index a604d816cbd..d658bee051a 100644 --- a/keyboards/hfdkb/8s200/config.h +++ b/keyboards/hfdkb/8s200/config.h @@ -17,13 +17,11 @@ #pragma once /* I2C Config for LED Driver */ -#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_SCL_GND -#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_SCL_VCC -#define IS31FL3733_SDB_PIN A15 - +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO +#define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 -#define RGB_DRIVER_EN_PIN B2 /* SPI Config for spi flash*/ #define SPI_DRIVER SPIDQ diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index 9358f440df8..1c4d1ddc47d 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -4,6 +4,7 @@ "maintainer": "jonylee@hfd", "processor": "WB32FQ95", "bootloader": "wb32-dfu", + "url": "https://github.com/jonylee1986", "usb": { "vid": "0xFFFE", "pid": "0x0096", @@ -35,7 +36,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "react_on_keyup": true, "sleep": true, @@ -51,7 +52,7 @@ }, "default": { "hue": 170, - "speed": 141 + "animation": "breathing" }, "layout": [ { "flags": 4, "matrix": [0,0], "x": 7, "y": 3}, diff --git a/keyboards/hfdkb/8s200/keymaps/default/keymap.c b/keyboards/hfdkb/8s200/keymaps/default/keymap.c index b35a05d558c..dbeacc6ef35 100644 --- a/keyboards/hfdkb/8s200/keymaps/default/keymap.c +++ b/keyboards/hfdkb/8s200/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, - _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, + _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, PDF(2), _______, _______, _______, _______, RM_VALU, _______, _______, GU_TOGG, _______, _______, _______, _______, MO(_FN3),_______, _______, RM_SPDD, RM_VALD, RM_SPDU), [MAC_BASE] = LAYOUT_72_jis( @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, EE_CLR, _______, KC_CALC, _______, KC_UP, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, RM_HUEU, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, _______, _______, _______, _______, - _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, SW_OS1, _______, _______, _______, _______, RM_VALU, _______, + _______, KC_APP, _______, _______, _______, _______, _______, RM_NEXT, PDF(0), _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, MO(_FN3),_______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), [_FN3] = LAYOUT_72_jis( From e5259ada981a2f1db562310c89d0b6e223aeb04c Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Tue, 8 Jul 2025 09:06:10 +0800 Subject: [PATCH 21/23] Update keyboards/hfdkb/8s200/8s200.c Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/8s200.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 284d360bfc2..1b3c5d945d1 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -137,8 +137,8 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return true; } -bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { - if (rgb_matrix_indicators_advanced_user(led_min, led_max) != true) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { return false; } From 5eeb3df25dd154c547b6d0514ab6360a22b23290 Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Tue, 8 Jul 2025 09:06:55 +0800 Subject: [PATCH 22/23] Update keyboards/hfdkb/8s200/keyboard.json Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/keyboard.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/hfdkb/8s200/keyboard.json b/keyboards/hfdkb/8s200/keyboard.json index 1c4d1ddc47d..d82f5abb0b2 100644 --- a/keyboards/hfdkb/8s200/keyboard.json +++ b/keyboards/hfdkb/8s200/keyboard.json @@ -35,6 +35,9 @@ "backing_size": 8192 } }, + "dynamic_keymap": { + "layer_count": 6 + }, "rgb_matrix": { "driver": "snled27351", "max_brightness": 180, From bfe6d4f51ca4c8875eeddb6e2fe02be85be6958d Mon Sep 17 00:00:00 2001 From: lalalademaxiya <148926153+galican@users.noreply.github.com> Date: Thu, 10 Jul 2025 22:05:59 +0800 Subject: [PATCH 23/23] Update keyboards/hfdkb/8s200/8s200.c All right, thanks~ Co-authored-by: Joel Challis --- keyboards/hfdkb/8s200/8s200.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hfdkb/8s200/8s200.c b/keyboards/hfdkb/8s200/8s200.c index 1b3c5d945d1..cec0537da50 100644 --- a/keyboards/hfdkb/8s200/8s200.c +++ b/keyboards/hfdkb/8s200/8s200.c @@ -110,7 +110,7 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { // clang-format on bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (process_record_user(keycode, record) != true) { + if (!process_record_user(keycode, record)) { return false; } switch (keycode) {