From 1c080625f11ea6e8289149ab661ee5916fc0f7f5 Mon Sep 17 00:00:00 2001 From: zhaqian <80608733+zhaqian12@users.noreply.github.com> Date: Wed, 25 May 2022 11:44:52 +0800 Subject: [PATCH] add old kb zq64 --- keyboards/zhaqian/readme.md | 6 +- keyboards/zhaqian/readme_cn.md | 6 +- keyboards/zhaqian/zq64/board.h | 23 +++ keyboards/zhaqian/zq64/chconf.h | 24 +++ keyboards/zhaqian/zq64/config.h | 75 ++++++++ keyboards/zhaqian/zq64/halconf.h | 21 +++ .../zhaqian/zq64/keymaps/default/keymap.c | 48 +++++ .../zq64/keymaps/default/rgb_matrix_kb.inc | 39 ++++ .../zhaqian/zq64/keymaps/default/rules.mk | 7 + keyboards/zhaqian/zq64/keymaps/via/keymap.c | 48 +++++ .../zq64/keymaps/via/rgb_matrix_kb.inc | 39 ++++ keyboards/zhaqian/zq64/keymaps/via/rules.mk | 11 ++ keyboards/zhaqian/zq64/mcuconf.h | 23 +++ keyboards/zhaqian/zq64/readme.md | 15 ++ keyboards/zhaqian/zq64/rules.mk | 23 +++ keyboards/zhaqian/zq64/uf2_boot.c | 30 +++ keyboards/zhaqian/zq64/zq64.c | 53 ++++++ keyboards/zhaqian/zq64/zq64.h | 34 ++++ keyboards/zhaqian/zq64/zq64_via.json | 173 ++++++++++++++++++ .../zq68/keymaps/default/rgb_matrix_kb.inc | 39 ++-- keyboards/zhaqian/zq68/zq68_via.json | 2 +- 21 files changed, 707 insertions(+), 32 deletions(-) create mode 100644 keyboards/zhaqian/zq64/board.h create mode 100644 keyboards/zhaqian/zq64/chconf.h create mode 100644 keyboards/zhaqian/zq64/config.h create mode 100644 keyboards/zhaqian/zq64/halconf.h create mode 100644 keyboards/zhaqian/zq64/keymaps/default/keymap.c create mode 100644 keyboards/zhaqian/zq64/keymaps/default/rgb_matrix_kb.inc create mode 100644 keyboards/zhaqian/zq64/keymaps/default/rules.mk create mode 100644 keyboards/zhaqian/zq64/keymaps/via/keymap.c create mode 100644 keyboards/zhaqian/zq64/keymaps/via/rgb_matrix_kb.inc create mode 100644 keyboards/zhaqian/zq64/keymaps/via/rules.mk create mode 100644 keyboards/zhaqian/zq64/mcuconf.h create mode 100644 keyboards/zhaqian/zq64/readme.md create mode 100644 keyboards/zhaqian/zq64/rules.mk create mode 100644 keyboards/zhaqian/zq64/uf2_boot.c create mode 100644 keyboards/zhaqian/zq64/zq64.c create mode 100644 keyboards/zhaqian/zq64/zq64.h create mode 100644 keyboards/zhaqian/zq64/zq64_via.json diff --git a/keyboards/zhaqian/readme.md b/keyboards/zhaqian/readme.md index 67b63b4066da..12d3e59ac907 100644 --- a/keyboards/zhaqian/readme.md +++ b/keyboards/zhaqian/readme.md @@ -31,9 +31,9 @@ | zq11800 | 0x00AA | 0xAA0A | Solder | Atmel atmega32u4 | ENCODER, RGB | | wave87 | 0x00AA | 0xAA0B | Hotswap | Atmel atmega32u4 | LOGORGB | | zq980mini | 0x00AA | 0xAA0C | Hotswap | Atmel atmega32u4 | RGB, UGRGB | -| zq67rev2 | 0x00AA | 0xAA0D | Hotswap | ST stm32f103/f103 | RGB | -| zq64 | 0x00AA | 0xAA0E | Hotswap | Atmel atmega32u4 | RGB, ENCODER | -| zq68 | 0x00AA | 0xAA0F | Hotswap | Atmel atmega32u4 | RGB, ENCODER | +| zq67rev2 | 0x00AA | 0xAA0D | Hotswap | Atmel atmega32u4 | RGB | +| zq64 | 0x00AA | 0xAA0E | Hotswap | ST stm32f103/f103 | RGB, ENCODER | +| zq68 | 0x00AA | 0xAA0F | Hotswap | ST stm32f103/f103 | RGB, ENCODER | | toxic67 | 0x00AA | 0xAA10 | Hotswap | Atmel atmega32u4 | RGB | | zq46 | 0x00AA | 0xAA11 | Hotswap | ST stm32f401 | RGB, UGRGB, LOGORGB, ENCODER | | osu | 0x00AA | 0xAA12 | Hotswap | ST stm32f401 | UGRGB | diff --git a/keyboards/zhaqian/readme_cn.md b/keyboards/zhaqian/readme_cn.md index 0d68f8332e68..70def10082ae 100644 --- a/keyboards/zhaqian/readme_cn.md +++ b/keyboards/zhaqian/readme_cn.md @@ -30,9 +30,9 @@ | zq11800 | 0x00AA | 0xAA0A | Solder | Atmel atmega32u4 | ENCODER, RGB | | wave87 | 0x00AA | 0xAA0B | Hotswap | Atmel atmega32u4 | LOGORGB | | zq980mini | 0x00AA | 0xAA0C | Hotswap | Atmel atmega32u4 | RGB, UGRGB | -| zq67rev2 | 0x00AA | 0xAA0D | Hotswap | ST stm32f103/f103 | RGB | -| zq64 | 0x00AA | 0xAA0E | Hotswap | Atmel atmega32u4 | RGB, ENCODER | -| zq68 | 0x00AA | 0xAA0F | Hotswap | Atmel atmega32u4 | RGB, ENCODER | +| zq67rev2 | 0x00AA | 0xAA0D | Hotswap | Atmel atmega32u4 | RGB | +| zq64 | 0x00AA | 0xAA0E | Hotswap | ST stm32f103/f103 | RGB, ENCODER | +| zq68 | 0x00AA | 0xAA0F | Hotswap | ST stm32f103/f103 | RGB, ENCODER | | toxic67 | 0x00AA | 0xAA10 | Hotswap | Atmel atmega32u4 | RGB | | zq46 | 0x00AA | 0xAA11 | Hotswap | ST stm32f401 | RGB, UGRGB, LOGORGB, ENCODER | | osu | 0x00AA | 0xAA12 | Hotswap | ST stm32f401 | UGRGB | diff --git a/keyboards/zhaqian/zq64/board.h b/keyboards/zhaqian/zq64/board.h new file mode 100644 index 000000000000..466f23dfa148 --- /dev/null +++ b/keyboards/zhaqian/zq64/board.h @@ -0,0 +1,23 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (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 "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 8000000 + diff --git a/keyboards/zhaqian/zq64/chconf.h b/keyboards/zhaqian/zq64/chconf.h new file mode 100644 index 000000000000..524194b39c08 --- /dev/null +++ b/keyboards/zhaqian/zq64/chconf.h @@ -0,0 +1,24 @@ +/* Copyright 2020 QMK + * + * 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 CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_ST_TIMEDELTA 0 + +#include_next + diff --git a/keyboards/zhaqian/zq64/config.h b/keyboards/zhaqian/zq64/config.h new file mode 100644 index 000000000000..76ebb07ce61c --- /dev/null +++ b/keyboards/zhaqian/zq64/config.h @@ -0,0 +1,75 @@ +/* Copyright 2022 ZhaQian + * + * 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 "config_common.h" + +#define VENDOR_ID 0x00AA +#define PRODUCT_ID 0xAA0E +#define DEVICE_VER 0x0001 +#define MANUFACTURER ZhaQian +#define PRODUCT zq64 +#define DESCRIPTION Keyboard + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B15, A8, A9, B3, B10 } +#define MATRIX_COL_PINS { B12, B13, B14, A15, B4, B5, A2, A3, A4, A5, A6, A7, B0, B1} +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +// #define QMK_KEYS_PER_SCAN 12 +// #define FORCE_NKRO + +#ifdef RGB_MATRIX_ENABLE +#define RGB_DI_PIN A10 +#define RGBLED_NUM 64 +#define DRIVER_LED_TOTAL RGBLED_NUM +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 +#define WS2812_DMA_CHANNEL 5 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +#define RGB_DISABLE_WHEN_USB_SUSPENDED true +#define RGB_MATRIX_ANIMATION +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#ifdef RGB_MATRIX_CUSTOM_KB +#define RGB_MATRIX_CUSTOM_ANIMATION +#endif +#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 +#endif + +#ifdef ENCODER_ENABLE +#define ENCODERS_PAD_A { A0 } +#define ENCODERS_PAD_B { A1 } +#define ENCODER_RESOLUTION 4 +#ifdef ENCODER_TRIGGER_ENABLE +#define ENCODER_PAD_A_KEY_POS {4, 4} +#define ENCODER_PAD_B_KEY_POS {3, 4} +#endif +#endif + + diff --git a/keyboards/zhaqian/zq64/halconf.h b/keyboards/zhaqian/zq64/halconf.h new file mode 100644 index 000000000000..b1b259713f95 --- /dev/null +++ b/keyboards/zhaqian/zq64/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * 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_PWM TRUE + +#include_next diff --git a/keyboards/zhaqian/zq64/keymaps/default/keymap.c b/keyboards/zhaqian/zq64/keymaps/default/keymap.c new file mode 100644 index 000000000000..c02be6779639 --- /dev/null +++ b/keyboards/zhaqian/zq64/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 ZhaQian + * + * 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 "zq64.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + 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, KC_BSPC, + 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_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_LSFT, 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLD, KC_VOLU, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + LAYOUT( + 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/zhaqian/zq64/keymaps/default/rgb_matrix_kb.inc b/keyboards/zhaqian/zq64/keymaps/default/rgb_matrix_kb.inc new file mode 100644 index 000000000000..3c584068e822 --- /dev/null +++ b/keyboards/zhaqian/zq64/keymaps/default/rgb_matrix_kb.inc @@ -0,0 +1,39 @@ +#include "zqlib/rgb_matrix_effect/cycle_breathing.h" +#include "zqlib/rgb_matrix_effect/cycle_bandval.h" +#include "zqlib/rgb_matrix_effect/cycle_band_pinwheel_sat.h" +#include "zqlib/rgb_matrix_effect/cycle_band_pinwheel_val.h" +#include "zqlib/rgb_matrix_effect/cycle_band_spiral_sat.h" +#include "zqlib/rgb_matrix_effect/cycle_band_spiral_val.h" +#include "zqlib/rgb_matrix_effect/cycle_right_left.h" +#include "zqlib/rgb_matrix_effect/cycle_down_up.h" +#include "zqlib/rgb_matrix_effect/cycle_in_out.h" +#include "zqlib/rgb_matrix_effect/cycle_in_out_dual.h" +#include "zqlib/rgb_matrix_effect/fractal.h" +#include "zqlib/rgb_matrix_effect/fractal_rgb.h" +#include "zqlib/rgb_matrix_effect/kitt_rgb.h" +#include "zqlib/rgb_matrix_effect/cycle_sin_wave.h" +#include "zqlib/rgb_matrix_effect/rainbow_sin_wave.h" +#include "zqlib/rgb_matrix_effect/rainbow_sin_wave_reverse.h" +#include "zqlib/rgb_matrix_effect/alter.h" +#include "zqlib/rgb_matrix_effect/breathing_circle.h" +#include "zqlib/rgb_matrix_effect/bloom.h" +#include "zqlib/rgb_matrix_effect/commet.h" +#include "zqlib/rgb_matrix_effect/rotate_rainbow.h" +#include "zqlib/rgb_matrix_effect/motion_point.h" +#include "zqlib/rgb_matrix_effect/rotate_beam.h" +#include "zqlib/rgb_matrix_effect/stack.h" +#include "zqlib/rgb_matrix_effect/swap.h" +#include "zqlib/rgb_matrix_effect/zigzag.h" + +#include "zqlib/rgb_matrix_effect/candy_tap.h" + +#include "zqlib/rgb_matrix_effect/cycle_reactive_multiwide.h" +#include "zqlib/rgb_matrix_effect/cycle_reactive_multicross.h" +#include "zqlib/rgb_matrix_effect/cycle_reactive_multinexus.h" +#include "zqlib/rgb_matrix_effect/cycle_multisplash.h" + + +#include "zqlib/rgb_matrix_effect/reactive_multiwide_rgb.h" +#include "zqlib/rgb_matrix_effect/reactive_multicross_rgb.h" +#include "zqlib/rgb_matrix_effect/reactive_multinexus_rgb.h" + diff --git a/keyboards/zhaqian/zq64/keymaps/default/rules.mk b/keyboards/zhaqian/zq64/keymaps/default/rules.mk new file mode 100644 index 000000000000..97d27639e5e8 --- /dev/null +++ b/keyboards/zhaqian/zq64/keymaps/default/rules.mk @@ -0,0 +1,7 @@ +ENCODER_ENABLE = yes +ENCODER_TRIGGER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_CUSTOM_KB = yes +WS2812_DRIVER = pwm +RADIAL_CONTROLLER_ENABLE = yes diff --git a/keyboards/zhaqian/zq64/keymaps/via/keymap.c b/keyboards/zhaqian/zq64/keymaps/via/keymap.c new file mode 100644 index 000000000000..c02be6779639 --- /dev/null +++ b/keyboards/zhaqian/zq64/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 ZhaQian + * + * 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 "zq64.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + 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, KC_BSPC, + 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_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_LSFT, 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_VOLD, KC_VOLU, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + LAYOUT( + 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/zhaqian/zq64/keymaps/via/rgb_matrix_kb.inc b/keyboards/zhaqian/zq64/keymaps/via/rgb_matrix_kb.inc new file mode 100644 index 000000000000..3c584068e822 --- /dev/null +++ b/keyboards/zhaqian/zq64/keymaps/via/rgb_matrix_kb.inc @@ -0,0 +1,39 @@ +#include "zqlib/rgb_matrix_effect/cycle_breathing.h" +#include "zqlib/rgb_matrix_effect/cycle_bandval.h" +#include "zqlib/rgb_matrix_effect/cycle_band_pinwheel_sat.h" +#include "zqlib/rgb_matrix_effect/cycle_band_pinwheel_val.h" +#include "zqlib/rgb_matrix_effect/cycle_band_spiral_sat.h" +#include "zqlib/rgb_matrix_effect/cycle_band_spiral_val.h" +#include "zqlib/rgb_matrix_effect/cycle_right_left.h" +#include "zqlib/rgb_matrix_effect/cycle_down_up.h" +#include "zqlib/rgb_matrix_effect/cycle_in_out.h" +#include "zqlib/rgb_matrix_effect/cycle_in_out_dual.h" +#include "zqlib/rgb_matrix_effect/fractal.h" +#include "zqlib/rgb_matrix_effect/fractal_rgb.h" +#include "zqlib/rgb_matrix_effect/kitt_rgb.h" +#include "zqlib/rgb_matrix_effect/cycle_sin_wave.h" +#include "zqlib/rgb_matrix_effect/rainbow_sin_wave.h" +#include "zqlib/rgb_matrix_effect/rainbow_sin_wave_reverse.h" +#include "zqlib/rgb_matrix_effect/alter.h" +#include "zqlib/rgb_matrix_effect/breathing_circle.h" +#include "zqlib/rgb_matrix_effect/bloom.h" +#include "zqlib/rgb_matrix_effect/commet.h" +#include "zqlib/rgb_matrix_effect/rotate_rainbow.h" +#include "zqlib/rgb_matrix_effect/motion_point.h" +#include "zqlib/rgb_matrix_effect/rotate_beam.h" +#include "zqlib/rgb_matrix_effect/stack.h" +#include "zqlib/rgb_matrix_effect/swap.h" +#include "zqlib/rgb_matrix_effect/zigzag.h" + +#include "zqlib/rgb_matrix_effect/candy_tap.h" + +#include "zqlib/rgb_matrix_effect/cycle_reactive_multiwide.h" +#include "zqlib/rgb_matrix_effect/cycle_reactive_multicross.h" +#include "zqlib/rgb_matrix_effect/cycle_reactive_multinexus.h" +#include "zqlib/rgb_matrix_effect/cycle_multisplash.h" + + +#include "zqlib/rgb_matrix_effect/reactive_multiwide_rgb.h" +#include "zqlib/rgb_matrix_effect/reactive_multicross_rgb.h" +#include "zqlib/rgb_matrix_effect/reactive_multinexus_rgb.h" + diff --git a/keyboards/zhaqian/zq64/keymaps/via/rules.mk b/keyboards/zhaqian/zq64/keymaps/via/rules.mk new file mode 100644 index 000000000000..deb660e5af22 --- /dev/null +++ b/keyboards/zhaqian/zq64/keymaps/via/rules.mk @@ -0,0 +1,11 @@ +VIA_ENABLE = yes +ENCODER_ENABLE = yes +ENCODER_TRIGGER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_CUSTOM_KB = yes +WS2812_DRIVER = pwm +RADIAL_CONTROLLER_ENABLE = yes +VIA_CUSTOM_KEYCODE_ENABLE = yes +LTO_ENABLE = yes + diff --git a/keyboards/zhaqian/zq64/mcuconf.h b/keyboards/zhaqian/zq64/mcuconf.h new file mode 100644 index 000000000000..866f9db153f5 --- /dev/null +++ b/keyboards/zhaqian/zq64/mcuconf.h @@ -0,0 +1,23 @@ +/* Copyright 2020 QMK + * + * 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 STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + diff --git a/keyboards/zhaqian/zq64/readme.md b/keyboards/zhaqian/zq64/readme.md new file mode 100644 index 000000000000..1f2f0a3b492e --- /dev/null +++ b/keyboards/zhaqian/zq64/readme.md @@ -0,0 +1,15 @@ +# zq64 + +A 64 keys keyboard with rgb and encoder. + +* Keyboard Maintainer: [zhaqian](https://github.com/zhaqian12) +* Hardware Supported: zq64 +* Hardware Availability: [qmk-zq](https://github.com/zhaqian12/qmk_firmware) + +Make example for this keyboard (after setting up your build environment): + + make zhaqian/zq64:default + make zhaqian/zq64:via + +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). + \ No newline at end of file diff --git a/keyboards/zhaqian/zq64/rules.mk b/keyboards/zhaqian/zq64/rules.mk new file mode 100644 index 000000000000..19babb81b0e9 --- /dev/null +++ b/keyboards/zhaqian/zq64/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F103 +MCU_LDSCRIPT = STM32F103xB_uf2 +FIRMWARE_FORMAT = uf2 +BOARD = STM32_F103_STM32DUINO + +# Bootloader selection +BOOTLOADER = custom + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +SLEEP_LED_ENABLE = no +NKRO_ENABLE = yes +RGBLIGHT_ENABLE = no + +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE +SRC += uf2_boot.c diff --git a/keyboards/zhaqian/zq64/uf2_boot.c b/keyboards/zhaqian/zq64/uf2_boot.c new file mode 100644 index 000000000000..c09adb15d6f2 --- /dev/null +++ b/keyboards/zhaqian/zq64/uf2_boot.c @@ -0,0 +1,30 @@ +/* Copyright 2022 ZhaQian + * + * 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 "bootloader.h" + +#include + +#define MAGIC_BOOT 0x544F4F42UL +#define MAGIC_REG *(volatile uint32_t*)0x20004000 + +void bootloader_jump(void) { + MAGIC_REG = MAGIC_BOOT; + NVIC_SystemReset(); +} + +void enter_bootloader_mode_if_requested(void) {} + diff --git a/keyboards/zhaqian/zq64/zq64.c b/keyboards/zhaqian/zq64/zq64.c new file mode 100644 index 000000000000..16c7b1cb0bb2 --- /dev/null +++ b/keyboards/zhaqian/zq64/zq64.c @@ -0,0 +1,53 @@ +/* Copyright 2022 ZhaQian + * + * 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 "zq64.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { +{ + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, + {14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}, + {28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40}, + {41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54}, + {55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63}, +}, { + {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, + {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, + {6, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32}, + {8, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, + {2, 64}, {22, 64}, {42, 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, +}, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, + 1, 1, 1, 1, 1, 1, 4, 4, 4, +} +}; +#endif + +#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} +#endif diff --git a/keyboards/zhaqian/zq64/zq64.h b/keyboards/zhaqian/zq64/zq64.h new file mode 100644 index 000000000000..ffa200ac06d2 --- /dev/null +++ b/keyboards/zhaqian/zq64/zq64.h @@ -0,0 +1,34 @@ +/* Copyright 2022 ZhaQian + * + * 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" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K404, K405, K409, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \ + { K400, K401, K402, K403, K404, K405, KC_NO, KC_NO, KC_NO, K409, K410, K411, K412, K413 } \ +} + diff --git a/keyboards/zhaqian/zq64/zq64_via.json b/keyboards/zhaqian/zq64/zq64_via.json new file mode 100644 index 000000000000..5b69149ed846 --- /dev/null +++ b/keyboards/zhaqian/zq64/zq64_via.json @@ -0,0 +1,173 @@ +{ + "name": "ZQ64", + "vendorId": "0x00AA", + "productId": "0xAA0E", + "lighting": { + "extends": "none", + "keycodes": "qmk" + }, + "matrix": { "rows": 5, "cols": 14 }, + "customKeycodes": [ + { + "name": "Radial\nButton", + "title": "Radial Controller Button in Windows 10", + "shortName": "Radial\nButton" + }, + { + "name": "Radial\nLeft", + "title": "Radial Controller Counter Clockwise in Windows 10", + "shortName": "Radial\nLeft" + }, + { + "name": "Radial\nRight", + "title": "Radial Controller Clockwise in Windows 10", + "shortName": "Radial\nRight" + }, + { + "name": "Radial\nLeft\nHold", + "title": "Radial Controller Continue Counter Clockwise in Windows 10", + "shortName": "Radial\nLeftC" + }, + { + "name": "Radial\nRight\nHold", + "title": "Radial Controller Continue Clockwise in Windows 10", + "shortName": "Radial\nRightC" + } + ], + "layouts": { + "labels": [ + ["Encoder","CLOSE","OPEN"] + ], + "keymap":[ + [ + "4,3\n\n\n0,1", + { + "x": -1, + "d": true + }, + "\n\n\n0,0", + "0,0\n\n\n0,1", + { + "x": -1, + "c": "#777777" + }, + "0,0\n\n\n0,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", + { + "w": 2 + }, + "0,13" + ], + [ + "4,4\n\n\n0,1", + { + "x": -1, + "d": true + }, + "\n\n\n0,0", + { + "w": 1.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13" + ], + [ + { + "x": 1, + "w": 1.75 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "c": "#777777", + "w": 2.25 + }, + "2,13" + ], + [ + { + "x": 1, + "c": "#cccccc", + "w": 2 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + "3,12", + "3,13" + ], + [ + { + "x": 1, + "w": 1.25 + }, + "4,0", + { + "w": 1.25 + }, + "4,1", + { + "w": 1.25 + }, + "4,2", + { + "w": 6.25 + }, + "4,5", + "4,9", + "4,10", + "4,11", + "4,12", + "4,13" + ] + ] + } + } diff --git a/keyboards/zhaqian/zq68/keymaps/default/rgb_matrix_kb.inc b/keyboards/zhaqian/zq68/keymaps/default/rgb_matrix_kb.inc index 344eb4f5ac16..3c584068e822 100755 --- a/keyboards/zhaqian/zq68/keymaps/default/rgb_matrix_kb.inc +++ b/keyboards/zhaqian/zq68/keymaps/default/rgb_matrix_kb.inc @@ -1,27 +1,3 @@ -#ifdef RGB_MATRIX_CUSTOM_EFFECT_ANIMATION -#define RGB_MATRIX_EFFECT_CANDY_TAP -#define RGB_MATRIX_EFFECT_CYCLE_BAND_PINWHEEL_SAT -#define RGB_MATRIX_EFFECT_CYCLE_BAND_PINWHEEL_VAL -#define RGB_MATRIX_EFFECT_CYCLE_BAND_SPIRAL_SAT -#define RGB_MATRIX_EFFECT_CYCLE_BAND_SPIRAL_VAL -#define RGB_MATRIX_EFFECT_CYCLE_BANDVAL -#define RGB_MATRIX_EFFECT_CYCLE_BREATHING -#define RGB_MATRIX_EFFECT_CYCLE_DOWN_UP -#define RGB_MATRIX_EFFECT_CYCLE_IN_OUT_DUAL -#define RGB_MATRIX_EFFECT_CYCLE_IN_OUT -#define RGB_MATRIX_EFFECT_CYCLE_MULTISPLASH -#define RGB_MATRIX_EFFECT_CYCLE_REACTIVE_MULTICROSS -#define RGB_MATRIX_EFFECT_CYCLE_REACTIVE_MULTINEXUS -#define RGB_MATRIX_EFFECT_CYCLE_REACTIVE_MULTIWIDE -#define RGB_MATRIX_EFFECT_CYCLE_RIGHT_LEFT -#define RGB_MATRIX_EFFECT_FRACTAL_RGB -#define RGB_MATRIX_EFFECT_FRACTAL -#define RGB_MATRIX_EFFECT_KITT_RGB -#define RGB_MATRIX_EFFECT_REACTIVE_MULTICROSS_RGB -#define RGB_MATRIX_EFFECT_REACTIVE_MULTINEXUS_RGB -#define RGB_MATRIX_EFFECT_REACTIVE_MULTIWIDE_RGB -#endif - #include "zqlib/rgb_matrix_effect/cycle_breathing.h" #include "zqlib/rgb_matrix_effect/cycle_bandval.h" #include "zqlib/rgb_matrix_effect/cycle_band_pinwheel_sat.h" @@ -35,8 +11,22 @@ #include "zqlib/rgb_matrix_effect/fractal.h" #include "zqlib/rgb_matrix_effect/fractal_rgb.h" #include "zqlib/rgb_matrix_effect/kitt_rgb.h" +#include "zqlib/rgb_matrix_effect/cycle_sin_wave.h" +#include "zqlib/rgb_matrix_effect/rainbow_sin_wave.h" +#include "zqlib/rgb_matrix_effect/rainbow_sin_wave_reverse.h" +#include "zqlib/rgb_matrix_effect/alter.h" +#include "zqlib/rgb_matrix_effect/breathing_circle.h" +#include "zqlib/rgb_matrix_effect/bloom.h" +#include "zqlib/rgb_matrix_effect/commet.h" +#include "zqlib/rgb_matrix_effect/rotate_rainbow.h" +#include "zqlib/rgb_matrix_effect/motion_point.h" +#include "zqlib/rgb_matrix_effect/rotate_beam.h" +#include "zqlib/rgb_matrix_effect/stack.h" +#include "zqlib/rgb_matrix_effect/swap.h" +#include "zqlib/rgb_matrix_effect/zigzag.h" #include "zqlib/rgb_matrix_effect/candy_tap.h" + #include "zqlib/rgb_matrix_effect/cycle_reactive_multiwide.h" #include "zqlib/rgb_matrix_effect/cycle_reactive_multicross.h" #include "zqlib/rgb_matrix_effect/cycle_reactive_multinexus.h" @@ -47,4 +37,3 @@ #include "zqlib/rgb_matrix_effect/reactive_multicross_rgb.h" #include "zqlib/rgb_matrix_effect/reactive_multinexus_rgb.h" - diff --git a/keyboards/zhaqian/zq68/zq68_via.json b/keyboards/zhaqian/zq68/zq68_via.json index c3a4faec58d7..54ab1f1d6647 100755 --- a/keyboards/zhaqian/zq68/zq68_via.json +++ b/keyboards/zhaqian/zq68/zq68_via.json @@ -33,7 +33,7 @@ "title": "Radial Controller Continue Clockwise in Windows 10", "shortName": "Radial\nRightC" } - ], + ], "layouts": { "labels": [ ["Encoder", "CLOSE", "OPEN"]