From ca79aa41798930bb1e9828e67257e744c55b3618 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:59:06 -0700 Subject: [PATCH] Update Keychron Q0 (#22068) Co-authored-by: Ryan Co-authored-by: Duncan Sutherland --- data/mappings/keyboard_aliases.hjson | 3 ++ .../q0/{rev_0130/rev_0130.c => base/base.c} | 0 .../keychron/q0/{rev_0130 => base}/config.h | 3 +- .../keychron/q0/{rev_0130 => base}/info.json | 47 +---------------- .../keymaps/default/keymap.c | 0 .../keymaps/keychron/keymap.c | 0 .../keymaps/keychron/rules.mk | 0 .../{rev_0130 => base}/keymaps/via/keymap.c | 0 .../{rev_0130 => base}/keymaps/via/rules.mk | 0 .../keychron/q0/{rev_0130 => base}/readme.md | 0 keyboards/keychron/q0/base/rules.mk | 1 + keyboards/keychron/q0/config.h | 4 -- keyboards/keychron/q0/info.json | 52 +++++++++++++++++++ .../keychron/q0/{rev_0131 => plus}/config.h | 9 ++-- .../keychron/q0/{rev_0131 => plus}/info.json | 49 ++--------------- .../keymaps/default/keymap.c | 0 .../keymaps/default/rules.mk | 0 .../keymaps/keychron/keymap.c | 0 .../keymaps/keychron/rules.mk | 0 .../{rev_0131 => plus}/keymaps/via/keymap.c | 0 .../{rev_0131 => plus}/keymaps/via/rules.mk | 0 .../q0/{rev_0131/rev_0131.c => plus/plus.c} | 0 keyboards/keychron/q0/plus/readme.md | 12 +++++ keyboards/keychron/q0/plus/rules.mk | 1 + keyboards/keychron/q0/readme.md | 10 ++-- keyboards/keychron/q0/rev_0130/rules.mk | 1 - keyboards/keychron/q0/rev_0131/readme.md | 6 --- keyboards/keychron/q0/rev_0131/rules.mk | 1 - 28 files changed, 86 insertions(+), 113 deletions(-) rename keyboards/keychron/q0/{rev_0130/rev_0130.c => base/base.c} (100%) rename keyboards/keychron/q0/{rev_0130 => base}/config.h (92%) rename keyboards/keychron/q0/{rev_0130 => base}/info.json (66%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/default/keymap.c (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/via/keymap.c (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/via/rules.mk (100%) rename keyboards/keychron/q0/{rev_0130 => base}/readme.md (100%) create mode 100644 keyboards/keychron/q0/base/rules.mk create mode 100644 keyboards/keychron/q0/info.json rename keyboards/keychron/q0/{rev_0131 => plus}/config.h (90%) rename keyboards/keychron/q0/{rev_0131 => plus}/info.json (72%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/default/keymap.c (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/default/rules.mk (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/via/keymap.c (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/via/rules.mk (100%) rename keyboards/keychron/q0/{rev_0131/rev_0131.c => plus/plus.c} (100%) create mode 100644 keyboards/keychron/q0/plus/readme.md create mode 100644 keyboards/keychron/q0/plus/rules.mk delete mode 100644 keyboards/keychron/q0/rev_0130/rules.mk delete mode 100644 keyboards/keychron/q0/rev_0131/readme.md delete mode 100644 keyboards/keychron/q0/rev_0131/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 626c3eb2f0c3..c870d76d79a6 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -890,6 +890,9 @@ "kelowna/rgb64": { "target": "weirdo/kelowna/rgb64" }, + "keychron/q0": { + "target": "keychron/q0/base" + }, "keychron/q1": { "target": "keychron/q1v1" } diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/base/base.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/rev_0130.c rename to keyboards/keychron/q0/base/base.c diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/base/config.h similarity index 92% rename from keyboards/keychron/q0/rev_0130/config.h rename to keyboards/keychron/q0/base/config.h index 8b14e05a29d2..566f808762a6 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/base/config.h @@ -21,8 +21,7 @@ #define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 21 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT 21 /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 4 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/base/info.json similarity index 66% rename from keyboards/keychron/q0/rev_0130/info.json rename to keyboards/keychron/q0/base/info.json index 6b5a29d7eaba..ad89cf84da1c 100644 --- a/keyboards/keychron/q0/rev_0130/info.json +++ b/keyboards/keychron/q0/base/info.json @@ -1,58 +1,14 @@ { "keyboard_name": "Q0", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0130", - "device_version": "1.0.2", - "force_nkro": true + "device_version": "1.0.2" }, "matrix_pins": { "cols": ["A5", "A6", "A7", "B0"], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] }, - "features": { - "audio": false, - "backlight": false, - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true, - "rgblight": false - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "snled27351", - "animations": { - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "jellybean_raindrops": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive_multiwide": true, - "solid_reactive_multinexus": true, - "splash": true, - "solid_splash": true - }, "center_point": [56, 16], "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, @@ -83,6 +39,7 @@ {"flags": 1, "matrix": [4, 3], "x": 112, "y": 29} ] }, + "community_layouts": ["numpad_6x4"], "layouts": { "LAYOUT_numpad_6x4": { "layout": [ diff --git a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c b/keyboards/keychron/q0/base/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c rename to keyboards/keychron/q0/base/keymaps/default/keymap.c diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c b/keyboards/keychron/q0/base/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c rename to keyboards/keychron/q0/base/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk b/keyboards/keychron/q0/base/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk rename to keyboards/keychron/q0/base/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c b/keyboards/keychron/q0/base/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c rename to keyboards/keychron/q0/base/keymaps/via/keymap.c diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk b/keyboards/keychron/q0/base/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk rename to keyboards/keychron/q0/base/keymaps/via/rules.mk diff --git a/keyboards/keychron/q0/rev_0130/readme.md b/keyboards/keychron/q0/base/readme.md similarity index 100% rename from keyboards/keychron/q0/rev_0130/readme.md rename to keyboards/keychron/q0/base/readme.md diff --git a/keyboards/keychron/q0/base/rules.mk b/keyboards/keychron/q0/base/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/keychron/q0/base/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h index f4ec4170437a..24b629a5206a 100644 --- a/keyboards/keychron/q0/config.h +++ b/keyboards/keychron/q0/config.h @@ -21,9 +21,5 @@ /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED -/* EEPROM Driver Configuration */ -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) - #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json new file mode 100644 index 000000000000..70a726c5208b --- /dev/null +++ b/keyboards/keychron/q0/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "Keychron", + "maintainer": "lalalademaxiya1", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "processor": "STM32L432", + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "snled27351" + }, + "url": "https://github.com/Keychron", + "usb": { + "force_nkro": true, + "vid": "0x3434" + } +} \ No newline at end of file diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/plus/config.h similarity index 90% rename from keyboards/keychron/q0/rev_0131/config.h rename to keyboards/keychron/q0/plus/config.h index f3187704a7f8..1c47234f12b6 100644 --- a/keyboards/keychron/q0/rev_0131/config.h +++ b/keyboards/keychron/q0/plus/config.h @@ -21,13 +21,12 @@ #define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 26 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT 26 #define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +/* Encoder Configuration*/ +#define ENCODER_DEFAULT_POS 0x3 + /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 5 - -/* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/plus/info.json similarity index 72% rename from keyboards/keychron/q0/rev_0131/info.json rename to keyboards/keychron/q0/plus/info.json index 24d2a0488a19..b187a7913964 100644 --- a/keyboards/keychron/q0/rev_0131/info.json +++ b/keyboards/keychron/q0/plus/info.json @@ -1,33 +1,15 @@ { "keyboard_name": "Keychron Q0 Plus", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0131", - "device_version": "1.0.0", - "force_nkro": true + "device_version": "1.0.0" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2"], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] }, - "features": { - "audio": false, - "backlight": false, - "bootmagic": true, - "command": false, - "console": false, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true, - "rgblight": false - }, - "diode_direction": "ROW2COL", "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A3", "pin_b": "A4"} ] @@ -35,33 +17,7 @@ "bootmagic": { "matrix": [0, 1] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "snled27351", - "animations": { - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "jellybean_raindrops": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive_multiwide": true, - "solid_reactive_multinexus": true, - "splash": true, - "solid_splash": true - }, "layout": [ {"flags": 1, "matrix": [0, 1], "x": 56, "y": 0}, {"flags": 1, "matrix": [0, 2], "x": 112, "y": 0}, @@ -96,6 +52,7 @@ {"flags": 1, "matrix": [5, 3], "x": 168, "y": 64} ] }, + "community_layouts": ["numpad_6x5"], "layouts": { "LAYOUT_numpad_6x5": { "layout": [ diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c b/keyboards/keychron/q0/plus/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c rename to keyboards/keychron/q0/plus/keymaps/default/keymap.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk b/keyboards/keychron/q0/plus/keymaps/default/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk rename to keyboards/keychron/q0/plus/keymaps/default/rules.mk diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c b/keyboards/keychron/q0/plus/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c rename to keyboards/keychron/q0/plus/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk b/keyboards/keychron/q0/plus/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk rename to keyboards/keychron/q0/plus/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c b/keyboards/keychron/q0/plus/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c rename to keyboards/keychron/q0/plus/keymaps/via/keymap.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk b/keyboards/keychron/q0/plus/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk rename to keyboards/keychron/q0/plus/keymaps/via/rules.mk diff --git a/keyboards/keychron/q0/rev_0131/rev_0131.c b/keyboards/keychron/q0/plus/plus.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/rev_0131.c rename to keyboards/keychron/q0/plus/plus.c diff --git a/keyboards/keychron/q0/plus/readme.md b/keyboards/keychron/q0/plus/readme.md new file mode 100644 index 000000000000..6cc6e263f42b --- /dev/null +++ b/keyboards/keychron/q0/plus/readme.md @@ -0,0 +1,12 @@ +# Keychron Q0 Plus + +![Keychron Q0 Plus](https://i.imgur.com/EDbfVVOh.jpg) + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q0 Plus +* Hardware Availability: [Keychron Q0 Plus QMK Custom Number Pad](https://www.keychron.com/products/keychron-q0-plus-qmk-custom-number-pad) + +1. The name of this keyboard is "Keychron Q0 Plus" +2. Enables EC11 rotary encoder + - Turn clockwise to increase volume and turn anti-clockwise to decrease volume + - Press the knob button to mute diff --git a/keyboards/keychron/q0/plus/rules.mk b/keyboards/keychron/q0/plus/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/keychron/q0/plus/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q0/readme.md b/keyboards/keychron/q0/readme.md index d0180d386e0f..aa6d109a29e3 100644 --- a/keyboards/keychron/q0/readme.md +++ b/keyboards/keychron/q0/readme.md @@ -1,18 +1,22 @@ # Keychron Q0 +![Keychron Q0](https://i.imgur.com/cLbEiZ0h.jpg) + A customizable number keypad. * Keyboard Maintainer: [Keychron](https://github.com/keychron) * Hardware Supported: Keychron Q0 -* Hardware Availability: [Keychron](https://www.keychron.com) +* Hardware Availability: [Keychron Q0 QMK Custom Number Pad](https://www.keychron.com/products/keychron-q0-qmk-custom-number-pad) Make example for this keyboard (after setting up your build environment): - make keychron/q0/rev_0130:default + make keychron/q0/base:default + make keychron/q0/plus:default Flashing example for this keyboard: - make keychron/q0/rev_0130:default:flash + make keychron/q0/base:default:flash + make keychron/q0/plus:default:flash **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk deleted file mode 100644 index 6e7633bfe015..000000000000 --- a/keyboards/keychron/q0/rev_0130/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/keychron/q0/rev_0131/readme.md b/keyboards/keychron/q0/rev_0131/readme.md deleted file mode 100644 index df07c40e49ae..000000000000 --- a/keyboards/keychron/q0/rev_0131/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# The enhanced version with encoder of the Keychron Q0 - -- The name of this keyboard is "Q0 Plus" -- Enable EC11 rotary encoder -- Turn clockwise to increase volume and turn anti-clockwise to decrease volume -- Press the knob button to mute diff --git a/keyboards/keychron/q0/rev_0131/rules.mk b/keyboards/keychron/q0/rev_0131/rules.mk deleted file mode 100644 index 6e7633bfe015..000000000000 --- a/keyboards/keychron/q0/rev_0131/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank