diff options
author | adophoxia <100170946+adophoxia@users.noreply.github.com> | 2022-09-24 11:53:22 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-24 11:53:22 -0700 |
commit | 7caf0b1ab89224c92671e4617f023b6ea1fa1531 (patch) | |
tree | 21977fbe90a54ea87e2b3be1c18102074b51e979 /keyboards/keychron/q0/rev_0130 | |
parent | dfa6fd4b2a5087b4775288038b8956051fd034f8 (diff) |
[Keyboard] Add Keychron Q0 (#18348)
Diffstat (limited to 'keyboards/keychron/q0/rev_0130')
-rw-r--r-- | keyboards/keychron/q0/rev_0130/config.h | 24 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/info.json | 43 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c | 37 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c | 53 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/readme.md | 1 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/rev_0130.c | 88 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/rev_0130.h | 38 | ||||
-rw-r--r-- | keyboards/keychron/q0/rev_0130/rules.mk | 27 |
9 files changed, 312 insertions, 0 deletions
diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h new file mode 100644 index 0000000000..e7fabed664 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -0,0 +1,24 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 21 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 4 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json new file mode 100644 index 0000000000..d42a43ef66 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -0,0 +1,43 @@ +{ + "keyboard_name": "Q0", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0130", + "device_version": "1.0.2" + }, + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + {"label":"Fn", "x":0, "y":0}, + {"label":"Esc", "x":1, "y":0}, + {"label":"Backspace", "x":2, "y":0}, + {"label":"Tab", "x":3, "y":0}, + + {"label":"Num Lock", "x":0, "y":1}, + {"label":"/", "x":1, "y":1}, + {"label":"*", "x":2, "y":1}, + {"label":"-", "x":3, "y":1}, + + {"label":"7", "x":0, "y":2}, + {"label":"8", "x":1, "y":2}, + {"label":"9", "x":2, "y":2}, + + {"label":"4", "x":0, "y":3}, + {"label":"5", "x":1, "y":3}, + {"label":"6", "x":2, "y":3}, + {"label":"+", "x":3, "y":2, "h":2}, + + {"label":"1", "x":0, "y":4}, + {"label":"2", "x":1, "y":4}, + {"label":"3", "x":2, "y":4}, + + {"label":"0", "x":0, "y":5, "w":2}, + {"label":".", "x":2, "y":5}, + {"label":"Enter", "x":3, "y":4, "h":2} + ] + } + } +}
\ No newline at end of file diff --git a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c new file mode 100644 index 0000000000..6a05648074 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +enum layers { _BASE, _FN1}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPACE, KC_TAB, + KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______) +}; diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c new file mode 100644 index 0000000000..078ede4041 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +enum layers { _BASE, _FN1, _RESERVED1, _RESERVED2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPACE, KC_TAB, + KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______), + + [_RESERVED1] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______), + + [_RESERVED2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______) +}; diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk b/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/q0/rev_0130/readme.md b/keyboards/keychron/q0/rev_0130/readme.md new file mode 100644 index 0000000000..a6db5bc015 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/readme.md @@ -0,0 +1 @@ +# The base variant of the Keychron Q0 diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c new file mode 100644 index 0000000000..468e3cf04f --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rev_0130.c @@ -0,0 +1,88 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +/* Refer to CKLED manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, F_5, D_5, E_5}, // 0 + {0, I_5, G_5, H_5}, // 1 + {0, L_5, J_5, K_5}, // 2 + {0, C_5, A_5, B_5}, // 3 + + {0, F_4, D_4, E_4}, // 4 + {0, I_4, G_4, H_4}, // 5 + {0, L_4, J_4, K_4}, // 6 + {0, C_4, A_4, B_4}, // 7 + + {0, F_6, D_6, E_6}, // 8 + {0, I_6, G_6, H_6}, // 9 + {0, L_6, J_6, K_6}, // 10 + + {0, F_3, D_3, E_3}, // 11 + {0, I_3, G_3, H_3}, // 12 + {0, L_3, J_3, K_3}, // 13 + {0, C_6, A_6, B_6}, // 14 + + {0, F_2, D_2, E_2}, // 15 + {0, I_2, G_2, H_2}, // 16 + {0, L_2, J_2, K_2}, // 17 + + {0, F_1, D_1, E_1}, // 18 + {0, L_1, J_1, K_1}, // 19 + {0, C_2, A_2, B_2}, // 20 +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3 }, + { 4, 5, 6, 7 }, + { 8, 9, 10, 14 }, + { 11, 12, 13, __ }, + { 15, 16, 17, 20 }, + { 18, __, 19, __ } + }, + { + // LED Index to Physical Position + {0,0}, {74,0}, {150,0}, {224,0}, + {0,13}, {74,13}, {150,13}, {224,13}, + {0,26}, {74,26}, {150,26}, + {0,38}, {74,38}, {150,38}, {224,32}, + {0,51}, {74,51}, {150,51}, + {36,64}, {150,64}, {224,58}, + }, + { + // LED Index to Flag + 1, 1, 1, 1, + 9, 4, 4, 4, + 4, 4, 4, + 4, 4, 4, 4, + 4, 4, 4, + 4, 4, 1 + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.h b/keyboards/keychron/q0/rev_0130/rev_0130.h new file mode 100644 index 0000000000..d66c880aa9 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rev_0130.h @@ -0,0 +1,38 @@ +/* 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 <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_numpad_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, \ + K30, K31, K32, K23, \ + K40, K41, K42, \ + K50, K52, K43 \ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, XXX }, \ + { K40, K41, K42, K43 }, \ + { K50, XXX, K52, XXX }, \ +} diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk new file mode 100644 index 0000000000..5a04c755cd --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32L432 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable. +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # 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 USB N-key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +LTO_ENABLE = yes +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE |