diff --git a/keyboards/hfdkb/ac001/ac001.c b/keyboards/hfdkb/ac001/ac001.c new file mode 100644 index 00000000000..a977f9c80da --- /dev/null +++ b/keyboards/hfdkb/ac001/ac001.c @@ -0,0 +1,36 @@ +/* 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 "ac001.h" +/* + 3---------------2 + | | | + | | | + 4-------0-------1 +*/ +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4} +}, { + // LED Index to Physical Position + { 64, 112 }, { 64, 224 }, { 224, 0 }, { 0, 0 }, { 64, 0 }, + +}, { + // LED Index to Flag + 4, 4, 4, 4, 4 +} }; +#endif diff --git a/keyboards/mode/m75s/chconf.h b/keyboards/hfdkb/ac001/ac001.h similarity index 67% rename from keyboards/mode/m75s/chconf.h rename to keyboards/hfdkb/ac001/ac001.h index dedd4d5e28f..0758584ee8e 100644 --- a/keyboards/mode/m75s/chconf.h +++ b/keyboards/hfdkb/ac001/ac001.h @@ -1,4 +1,4 @@ -/* Copyright 2020 QMK +/* 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 @@ -14,17 +14,13 @@ * along with this program. If not, see . */ -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/acheron/austin/chconf.h -r platforms/chibios/common/configs/chconf.h` - */ - #pragma once -#define CH_CFG_ST_FREQUENCY 10000 - -#define CH_CFG_OPTIMIZE_SPEED FALSE - -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE +#include "quantum.h" -#include_next +#define LAYOUT( \ + K000, K001, K002, K003, K004 \ +) { \ + { K000, K001, K002, K003, K004 } \ +} +// clang-format on diff --git a/keyboards/hfdkb/ac001/config.h b/keyboards/hfdkb/ac001/config.h new file mode 100644 index 00000000000..a03f9066a97 --- /dev/null +++ b/keyboards/hfdkb/ac001/config.h @@ -0,0 +1,105 @@ +/* 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 FORCE_NKRO + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B15} +#define MATRIX_COL_PINS { A5, A6, A7, C4, C5} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +#define TAP_CODE_DELAY 5 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN A1 +#define RGB_MATRIX_LED_COUNT 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* 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 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +//#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +//#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +//#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define ENABLE_RGB_MATRIX_DUAL_BEACON +//#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define ENABLE_RGB_MATRIX_RAINDROPS +// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +// #define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +//#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +//#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +//#define ENABLE_RGB_MATRIX_SOLID_SPLASH +//#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define USB_SUSPEND_WAKEUP_DELAY 1500 //Wakeup host USB + diff --git a/keyboards/hfdkb/ac001/halconf.h b/keyboards/hfdkb/ac001/halconf.h new file mode 100644 index 00000000000..7ad0a62d2eb --- /dev/null +++ b/keyboards/hfdkb/ac001/halconf.h @@ -0,0 +1,22 @@ +/* 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_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/hfdkb/ac001/info.json b/keyboards/hfdkb/ac001/info.json new file mode 100644 index 00000000000..2e1011b7f63 --- /dev/null +++ b/keyboards/hfdkb/ac001/info.json @@ -0,0 +1,23 @@ +{ + "keyboard_name": "ac001", + "manufacturer": "hfd", + "url": "", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"~", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"3", "x":2, "y":0}, + {"label":"4", "x":3, "y":0}, + {"label":"@", "x":4, "y":0}] + } + } +} diff --git a/keyboards/hfdkb/ac001/keymaps/default/keymap.c b/keyboards/hfdkb/ac001/keymaps/default/keymap.c new file mode 100644 index 00000000000..56c767503ed --- /dev/null +++ b/keyboards/hfdkb/ac001/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +/* 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO), +}; + diff --git a/keyboards/hfdkb/ac001/keymaps/via/keymap.c b/keyboards/hfdkb/ac001/keymaps/via/keymap.c new file mode 100644 index 00000000000..72b9720d5cd --- /dev/null +++ b/keyboards/hfdkb/ac001/keymaps/via/keymap.c @@ -0,0 +1,29 @@ +/* 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO), + [1] = LAYOUT( + RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO), + [2] = LAYOUT( + RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO), + [3] = LAYOUT( + RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO) +}; + diff --git a/keyboards/hfdkb/ac001/keymaps/via/rules.mk b/keyboards/hfdkb/ac001/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/hfdkb/ac001/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/hfdkb/ac001/mcuconf.h b/keyboards/hfdkb/ac001/mcuconf.h new file mode 100644 index 00000000000..bebb786824a --- /dev/null +++ b/keyboards/hfdkb/ac001/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + diff --git a/keyboards/hfdkb/ac001/readme.md b/keyboards/hfdkb/ac001/readme.md new file mode 100644 index 00000000000..8f88f0d3c38 --- /dev/null +++ b/keyboards/hfdkb/ac001/readme.md @@ -0,0 +1,24 @@ +# ac001 + +This is an enter key with rgb . + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: ac001 + +Make example for this keyboard (after setting up your build environment): + + make hfdkb/ac001:default + +Flashing example for this keyboard: + + make hfdkb/ac001: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 encoder and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB diff --git a/keyboards/hfdkb/ac001/rules.mk b/keyboards/hfdkb/ac001/rules.mk new file mode 100644 index 00000000000..cf3008c6e46 --- /dev/null +++ b/keyboards/hfdkb/ac001/rules.mk @@ -0,0 +1,15 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h index 7bbeb8c937e..09e9b7bc736 100644 --- a/keyboards/mode/m75s/config.h +++ b/keyboards/mode/m75s/config.h @@ -17,9 +17,9 @@ along with this program. If not, see . #pragma once - //C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 + // C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 #define MATRIX_COL_PINS { C8, A8, A10, B13, B12, B10, B1, C10, C11, D2, C12, B3, B4, B5, B8, B9 } - //R0, R1, R2, R3, R4, R5 , R6 + // R0, R1, R2, R3, R4, R5 , R6 #define MATRIX_ROW_PINS { C5, B0, B14, B15, C7 , C9 , A15} #define DIODE_DIRECTION COL2ROW @@ -28,28 +28,13 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define EEPROM_I2C_24LC128 -//#define I2C1_CLOCK_SPEED 400000 -//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 +#define BACKLIGHT_PIN C6 +#define BACKLIGHT_LEVELS 20 +#define BACKLIGHT_CAPS_LOCK +#define BACKLIGHT_DEFAULT_LEVEL 20 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 2 -#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -#define TAP_CODE_DELAY 50 - -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 16383 // Overriding to use more EEPROM +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE 4096 diff --git a/keyboards/mode/m75s/halconf.h b/keyboards/mode/m75s/halconf.h index 6c53f594c76..5f1a1aa2be1 100644 --- a/keyboards/mode/m75s/halconf.h +++ b/keyboards/mode/m75s/halconf.h @@ -21,6 +21,7 @@ #pragma once -#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE #include_next diff --git a/keyboards/mode/m75s/m75s.c b/keyboards/mode/m75s/m75s.c index bd323a435be..87e643653cc 100644 --- a/keyboards/mode/m75s/m75s.c +++ b/keyboards/mode/m75s/m75s.c @@ -1,5 +1,5 @@ /* - Copyright 2020 Álvaro "Gondolindrim" Volpato + Copyright 2022 Gondolindrim 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 @@ -16,7 +16,3 @@ along with this program. If not, see . */ #include "m75s.h" - -void board_init(void) { - setPinInput(B10); -} diff --git a/keyboards/mode/m75s/m75s.h b/keyboards/mode/m75s/m75s.h index 7306874a232..7ce003dfe5e 100644 --- a/keyboards/mode/m75s/m75s.h +++ b/keyboards/mode/m75s/m75s.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Álvaro "Gondolindrim" Volpato +Copyright 2022 Gondolindrim 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 diff --git a/keyboards/mode/m75s/mcuconf.h b/keyboards/mode/m75s/mcuconf.h index dd68a8c1e77..0cc9c2023d7 100644 --- a/keyboards/mode/m75s/mcuconf.h +++ b/keyboards/mode/m75s/mcuconf.h @@ -23,5 +23,5 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/mode/m75s/rules.mk b/keyboards/mode/m75s/rules.mk index ee752a964b3..396c7121478 100644 --- a/keyboards/mode/m75s/rules.mk +++ b/keyboards/mode/m75s/rules.mk @@ -2,15 +2,16 @@ # change yes to no to disable # BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = legacy LTO_ENABLE = yes # Enter lower-power sleep mode when on the ChibiOS idle thread diff --git a/keyboards/peej/lumberjack/keymaps/via/keymap.c b/keyboards/peej/lumberjack/keymaps/via/keymap.c index a1981cd5be3..018f284a4f7 100644 --- a/keyboards/peej/lumberjack/keymaps/via/keymap.c +++ b/keyboards/peej/lumberjack/keymaps/via/keymap.c @@ -48,3 +48,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; + +void keyboard_pre_init_user() { + writePin(LED1, true); + writePin(LED2, true); +} + +void keyboard_post_init_user() { + writePin(LED1, false); + writePin(LED2, false); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + writePin(LED1, record->event.pressed); + + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(LED2, state); + + return state; +} diff --git a/keyboards/peej/lumberjack/lumberjack.c b/keyboards/peej/lumberjack/lumberjack.c index 2bdb49f6e3d..111092d5792 100644 --- a/keyboards/peej/lumberjack/lumberjack.c +++ b/keyboards/peej/lumberjack/lumberjack.c @@ -16,14 +16,9 @@ #include "lumberjack.h" -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - writePin(LED1, record->event.pressed); +void keyboard_pre_init_kb() { + setPinOutput(LED1); + setPinOutput(LED2); - return process_record_user(keycode, record); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - writePin(LED2, state); - - return layer_state_set_user(state); + keyboard_pre_init_user(); }