summaryrefslogtreecommitdiffstats
path: root/keyboards/handwired/horrortroll
diff options
context:
space:
mode:
authorHorrorTroll <sonicvipduc@gmail.com>2022-01-10 17:21:53 +0700
committerGitHub <noreply@github.com>2022-01-10 02:21:53 -0800
commitf59cbfb75c0b161187d22d07b58e242ef225611a (patch)
tree3a4670bce76e5f98b0bb5278a0d073392919a36f /keyboards/handwired/horrortroll
parentc5728aebeeb75e0069642f984d579e4691ec9677 (diff)
[Keyboard] Added Handwired Redragon K552 Kumara (RGB) (#14004)
* Added Handwired Redragon K552 with default and via keymaps * Resolve some request changes, and change the cols pin to a better one. * Resolved request changes * Added OLED support and resolve request change * Increase polling rate to 1000hz * Update font for OLED, and change logo * Added LED Underglow support * Add personal custom keymap * Nit some line, to get better way to look on code * Refactor everything and solved some issue. * Resolved issue
Diffstat (limited to 'keyboards/handwired/horrortroll')
-rw-r--r--keyboards/handwired/horrortroll/k552/boards/k552/board.c49
-rw-r--r--keyboards/handwired/horrortroll/k552/boards/k552/board.h145
-rw-r--r--keyboards/handwired/horrortroll/k552/boards/k552/board.mk5
-rw-r--r--keyboards/handwired/horrortroll/k552/chconf.h29
-rw-r--r--keyboards/handwired/horrortroll/k552/config.h102
-rw-r--r--keyboards/handwired/horrortroll/k552/halconf.h26
-rw-r--r--keyboards/handwired/horrortroll/k552/info.json103
-rw-r--r--keyboards/handwired/horrortroll/k552/k552.c64
-rw-r--r--keyboards/handwired/horrortroll/k552/k552.h54
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/keymap.c98
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/keymap_stuff.h304
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/led/cool_diagonal.c22
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/led/custom_gradient.c74
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/led/diagonal.c22
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/led/kitt.c68
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/led/random_breath_rainbow.c55
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/oled/oled_stuff.h69
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/readme.md16
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/rgb_matrix_user.inc15
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/default/rules.mk1
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/config.h19
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/keymap.c98
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/keymap_stuff.h304
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/led/cool_diagonal.c22
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/led/custom_gradient.c74
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/led/diagonal.c22
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/led/kitt.c68
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/led/random_breath_rainbow.c55
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/oled/oled_stuff.h69
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/readme.md16
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/rgb_matrix_user.inc15
-rw-r--r--keyboards/handwired/horrortroll/k552/keymaps/via/rules.mk3
-rw-r--r--keyboards/handwired/horrortroll/k552/ld/k552_f103.ld85
-rw-r--r--keyboards/handwired/horrortroll/k552/lib/bongocat.c376
-rw-r--r--keyboards/handwired/horrortroll/k552/lib/galaxy.c58
-rw-r--r--keyboards/handwired/horrortroll/k552/lib/glcdfont.c248
-rw-r--r--keyboards/handwired/horrortroll/k552/lib/logo.c58
-rw-r--r--keyboards/handwired/horrortroll/k552/lib/wave.c133
-rw-r--r--keyboards/handwired/horrortroll/k552/mcuconf.h27
-rw-r--r--keyboards/handwired/horrortroll/k552/readme.md22
-rw-r--r--keyboards/handwired/horrortroll/k552/rules.mk33
41 files changed, 3126 insertions, 0 deletions
diff --git a/keyboards/handwired/horrortroll/k552/boards/k552/board.c b/keyboards/handwired/horrortroll/k552/boards/k552/board.c
new file mode 100644
index 0000000000..65269520ea
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/boards/k552/board.c
@@ -0,0 +1,49 @@
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include <hal.h>
+
+/**
+ * @brief PAL setup.
+ * @details Digital I/O ports static configuration as defined in @p board.h.
+ * This variable is used by the HAL when initializing the PAL driver.
+ */
+#if HAL_USE_PAL || defined(__DOXYGEN__)
+const PALConfig pal_default_config =
+{
+ {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
+ {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
+ {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
+ {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
+};
+#endif
+
+/*
+ * Early initialization code.
+ * This initialization must be performed just after stack setup and before
+ * any other initialization.
+ */
+void __early_init(void) {
+ stm32_clock_init();
+
+}
+
+/*
+ * Board-specific initialization code.
+ */
+void boardInit(void) {
+
+}
diff --git a/keyboards/handwired/horrortroll/k552/boards/k552/board.h b/keyboards/handwired/horrortroll/k552/boards/k552/board.h
new file mode 100644
index 0000000000..f9b38b0caf
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/boards/k552/board.h
@@ -0,0 +1,145 @@
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _BOARD_H_
+#define _BOARD_H_
+
+/*
+ * Board identifier.
+ */
+#define BOARD_K552
+#define BOARD_NAME "K552 keyboard"
+
+/*
+ * Board frequencies.
+ */
+#define STM32_LSECLK 32768
+#define STM32_HSECLK 8000000
+
+/*
+ * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
+ *
+ * Only xC (256KB Flash) is defined, but it's identical to the
+ * x8 version (64KB Flash) except for the Flash region size in the
+ * linker script. For x8 parts use xC here and change to the x8 linker
+ * script in the project Makefile.
+ */
+#pragma once
+#include_next <board.h>
+#undef STM32F103xB
+#define STM32F103xE
+
+/*
+ * IO pins assignments
+ *
+ * numbering is sorted by onboard/connectors, as from the schematics in
+ * http://www.vcc-gnd.com/read.php?tid=369
+ */
+
+/* on-board */
+#define GPIOA_USBDM 11 // pin 8
+#define GPIOA_USBDP 12 // pin 9
+
+#define GPIOC_OSC32_IN 14
+#define GPIOC_OSC32_OUT 15
+
+/*
+ * I/O ports initial setup, this configuration is established soon after reset
+ * in the initialization code.
+ *
+ * The digits have the following meaning:
+ * 0 - Analog input.
+ * 1 - Push Pull output 10MHz.
+ * 2 - Push Pull output 2MHz.
+ * 3 - Push Pull output 50MHz.
+ * 4 - Digital input.
+ * 5 - Open Drain output 10MHz.
+ * 6 - Open Drain output 2MHz.
+ * 7 - Open Drain output 50MHz.
+ * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
+ * 9 - Alternate Push Pull output 10MHz.
+ * A - Alternate Push Pull output 2MHz.
+ * B - Alternate Push Pull output 50MHz.
+ * C - Reserved.
+ * D - Alternate Open Drain output 10MHz.
+ * E - Alternate Open Drain output 2MHz.
+ * F - Alternate Open Drain output 50MHz.
+ * Please refer to the STM32 Reference Manual for details.
+ */
+
+/*
+ * Port A setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOACRL 0x88888888 /* PA7...PA0 */
+#define VAL_GPIOACRH 0x88888888 /* PA15...PA8 */
+#define VAL_GPIOAODR 0xFFFFFFFF
+
+/*
+ * Port B setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
+#define VAL_GPIOBCRH 0x88888888 /* PB15...PB8 */
+#define VAL_GPIOBODR 0xFFFFFFFF
+
+/*
+ * Port C setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
+#define VAL_GPIOCCRH 0x88888888 /* PC15...PC8 */
+#define VAL_GPIOCODR 0xFFFFFFFF
+
+/*
+ * Port D setup.
+ * Everything input with pull-up except:
+ * PD0 - Normal input (XTAL).
+ * PD1 - Normal input (XTAL).
+ */
+#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
+#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
+#define VAL_GPIODODR 0xFFFFFFFF
+
+/*
+ * Port E setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
+#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
+#define VAL_GPIOEODR 0xFFFFFFFF
+
+/*
+ * USB bus activation macro, required by the USB driver.
+ */
+#define usb_lld_connect_bus(usbp) /* always connected */
+
+/*
+ * USB bus de-activation macro, required by the USB driver.
+ */
+#define usb_lld_disconnect_bus(usbp) /* always connected */
+
+#if !defined(_FROM_ASM_)
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void boardInit(void);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _FROM_ASM_ */
+
+#endif /* _BOARD_H_ */
diff --git a/keyboards/handwired/horrortroll/k552/boards/k552/board.mk b/keyboards/handwired/horrortroll/k552/boards/k552/board.mk
new file mode 100644
index 0000000000..15831c4f15
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/boards/k552/board.mk
@@ -0,0 +1,5 @@
+# List of all the board related files.
+BOARDSRC = $(BOARD_PATH)/boards/k552/board.c
+
+# Required include directories
+BOARDINC = $(BOARD_PATH)/boards/k552
diff --git a/keyboards/handwired/horrortroll/k552/chconf.h b/keyboards/handwired/horrortroll/k552/chconf.h
new file mode 100644
index 0000000000..41c38c33e4
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/chconf.h
@@ -0,0 +1,29 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ * `qmk chibios-confmigrate -i keyboards/wolfmarkclub/wm1/chconf.h -r platforms/chibios/common/configs/chconf.h`
+ */
+
+#pragma once
+
+#define CH_CFG_ST_TIMEDELTA 0
+
+#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
+
+#include_next <chconf.h>
+
diff --git a/keyboards/handwired/horrortroll/k552/config.h b/keyboards/handwired/horrortroll/k552/config.h
new file mode 100644
index 0000000000..1071b7ff31
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/config.h
@@ -0,0 +1,102 @@
+/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
+ *
+ * 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 "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7516 //Redragon
+#define PRODUCT_ID 0x5104
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Redragon
+#define PRODUCT K552 Kumara
+
+/* Key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+/* Key matrix pin 0 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 */
+#define MATRIX_ROW_PINS { C12, C10, A10, A8, C8, C9 }
+#define MATRIX_COL_PINS { B15, C6, C7, A3, A1, C3, C1, B14, B13, A9, B3, B4, A0, C11, A2, C0, C2 }
+
+/* Direction of diode (COL2ROW or ROW2COL) */
+#define DIODE_DIRECTION ROW2COL
+
+/* Bootmagic reset */
+#define BOOTMAGIC_LITE_ROW 4
+#define BOOTMAGIC_LITE_COLUMN 6
+
+/* Forcing to use NKRO instead 6KRO */
+#define FORCE_NKRO
+
+/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
+#define USB_POLLING_INTERVAL_MS 1
+#define QMK_KEYS_PER_SCAN 12
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* EEPROM size */
+#define EEPROM_PAGE_SIZE
+#define FEE_PAGE_SIZE 0x800
+#define FEE_PAGE_COUNT 4
+
+#define FEE_MCU_FLASH_SIZE_IGNORE_CHECK
+#define FEE_MCU_FLASH_SIZE \
+({ \
+ uint16_t flash_size = *(uint16_t*)FLASHSIZE_BASE; \
+ (flash_size <= 512) ? flash_size : 512; \
+})
+
+#ifdef OLED_ENABLE
+ /* Mapping I2C2 for OLED */
+ #define I2C1_SCL_PIN B10
+ #define I2C1_SDA_PIN B11
+ #define I2C_DRIVER I2CD2
+
+ /* Use the custom font */
+ #define OLED_FONT_H "lib/glcdfont.c"
+#endif
+
+#ifdef RGB_MATRIX_ENABLE
+ #define DRIVER_LED_TOTAL 24
+ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
+ #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+
+ /* RGB Matrix config */
+ #define RGB_DI_PIN C14
+
+ /* RGB Matrix effect */
+ #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+ #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+ #define ENABLE_RGB_MATRIX_BREATHING
+ #define ENABLE_RGB_MATRIX_BAND_VAL
+ #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_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_CYCLE_OUT_IN
+ #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+ #define ENABLE_RGB_MATRIX_DUAL_BEACON
+ #define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+ #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
+#endif
diff --git a/keyboards/handwired/horrortroll/k552/halconf.h b/keyboards/handwired/horrortroll/k552/halconf.h
new file mode 100644
index 0000000000..e872252b6e
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/halconf.h
@@ -0,0 +1,26 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ * `qmk chibios-confmigrate -i keyboards/wolfmarkclub/wm1/halconf.h -r platforms/chibios/common/configs/halconf.h`
+ */
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/handwired/horrortroll/k552/info.json b/keyboards/handwired/horrortroll/k552/info.json
new file mode 100644
index 0000000000..d7cbb2b448
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/info.json
@@ -0,0 +1,103 @@
+{
+ "keyboard_name": "Redragon K552 Kumara",
+ "url": "",
+ "maintainer": "HorrorTroll",
+ "layouts": {
+ "LAYOUT_tkl_ansi": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"F1", "x":2, "y":0},
+ {"label":"F2", "x":3, "y":0},
+ {"label":"F3", "x":4, "y":0},
+ {"label":"F4", "x":5, "y":0},
+ {"label":"F5", "x":6.5, "y":0},
+ {"label":"F6", "x":7.5, "y":0},
+ {"label":"F7", "x":8.5, "y":0},
+ {"label":"F8", "x":9.5, "y":0},
+ {"label":"F9", "x":11, "y":0},
+ {"label":"F10", "x":12, "y":0},
+ {"label":"F11", "x":13, "y":0},
+ {"label":"F12", "x":14, "y":0},
+ {"label":"Print Screen", "x":15.25, "y":0},
+ {"label":"Scroll Lock", "x":16.25, "y":0},
+ {"label":"Pause", "x":17.25, "y":0},
+
+ {"label":"`~", "x":0, "y":1.25},
+ {"label":"1!", "x":1, "y":1.25},
+ {"label":"2@", "x":2, "y":1.25},
+ {"label":"3#", "x":3, "y":1.25},
+ {"label":"4$", "x":4, "y":1.25},
+ {"label":"5%", "x":5, "y":1.25},
+ {"label":"6^", "x":6, "y":1.25},
+ {"label":"7&", "x":7, "y":1.25},
+ {"label":"8*", "x":8, "y":1.25},
+ {"label":"9(", "x":9, "y":1.25},
+ {"label":"0)", "x":10, "y":1.25},
+ {"label":"-_", "x":11, "y":1.25},
+ {"label":"=+", "x":12, "y":1.25},
+ {"label":"Backspace", "x":13, "y":1.25, "w":2},
+ {"label":"Insert", "x":15.25, "y":1.25},
+ {"label":"Home", "x":16.25, "y":1.25},
+ {"label":"PgUp", "x":17.25, "y":1.25},
+
+ {"label":"Tab", "x":0, "y":2.25, "w":1.5},
+ {"label":"Q", "x":1.5, "y":2.25},
+ {"label":"W", "x":2.5, "y":2.25},
+ {"label":"E", "x":3.5, "y":2.25},
+ {"label":"R", "x":4.5, "y":2.25},
+ {"label":"T", "x":5.5, "y":2.25},
+ {"label":"Y", "x":6.5, "y":2.25},
+ {"label":"U", "x":7.5, "y":2.25},
+ {"label":"I", "x":8.5, "y":2.25},
+ {"label":"O", "x":9.5, "y":2.25},
+ {"label":"P", "x":10.5, "y":2.25},
+ {"label":"[{", "x":11.5, "y":2.25},
+ {"label":"]}", "x":12.5, "y":2.25},
+ {"label":"\\|", "x":13.5, "y":2.25, "w":1.5},
+ {"label":"Delete", "x":15.25, "y":2.25},
+ {"label":"End", "x":16.25, "y":2.25},
+ {"label":"PgDn", "x":17.25, "y":2.25},
+
+ {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
+ {"label":"A", "x":1.75, "y":3.25},
+ {"label":"S", "x":2.75, "y":3.25},
+ {"label":"D", "x":3.75, "y":3.25},
+ {"label":"F", "x":4.75, "y":3.25},
+ {"label":"G", "x":5.75, "y":3.25},
+ {"label":"H", "x":6.75, "y":3.25},
+ {"label":"J", "x":7.75, "y":3.25},
+ {"label":"K", "x":8.75, "y":3.25},
+ {"label":"L", "x":9.75, "y":3.25},
+ {"label":";:", "x":10.75, "y":3.25},
+ {"label":"'\"", "x":11.75, "y":3.25},
+ {"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
+
+ {"label":"Shift", "x":0, "y":4.25, "w":2.25},
+ {"label":"Z", "x":2.25, "y":4.25},
+ {"label":"X", "x":3.25, "y":4.25},
+ {"label":"C", "x":4.25, "y":4.25},
+ {"label":"V", "x":5.25, "y":4.25},
+ {"label":"B", "x":6.25, "y":4.25},
+ {"label":"N", "x":7.25, "y":4.25},
+ {"label":"M", "x":8.25, "y":4.25},
+ {"label":",<", "x":9.25, "y":4.25},
+ {"label":".>", "x":10.25, "y":4.25},
+ {"label":"/?", "x":11.25, "y":4.25},
+ {"label":"Shift", "x":12.25, "y":4.25, "w":2.75},
+ {"label":"\u2191", "x":16.25, "y":4.25},
+
+ {"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
+ {"label":"Win", "x":1.25, "y":5.25, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
+ {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
+ {"label":"Alt", "x":10, "y":5.25, "w":1.25},
+ {"label":"Fn", "x":11.25, "y":5.25, "w":1.25},
+ {"label":"App", "x":12.5, "y":5.25, "w":1.25},
+ {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25},
+ {"label":"\u2190", "x":15.25, "y":5.25},
+ {"label":"\u2193", "x":16.25, "y":5.25},
+ {"label":"\u2192", "x":17.25, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/horrortroll/k552/k552.c b/keyboards/handwired/horrortroll/k552/k552.c
new file mode 100644
index 0000000000..31ce5d1bbf
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/k552.c
@@ -0,0 +1,64 @@
+/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
+ *
+ * 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 "k552.h"
+
+// OLED animation
+#include "lib/logo.c"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { }
+}, {
+ {152, 0}, {165, 0}, {190, 0}, {205, 0},
+ {224, 21}, {224, 43}, {224, 54},
+ {188, 64}, {172, 64}, {156, 64}, {140, 64}, {115, 64}, {99 , 64}, {75 , 64}, {59 , 64}, {43 , 64}, {26 , 64},
+ {0 , 15}, {0 , 50}, {0 , 39},
+ {18 , 0}, {36 , 0}, {57 , 0}, {67 , 0}
+}, {
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2,
+ 2, 2,
+ 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+} };
+#endif
+
+#ifdef OLED_ENABLE
+ uint16_t startup_timer;
+
+ oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ startup_timer = timer_read();
+
+ return rotation;
+ }
+
+ bool oled_task_kb(void) {
+ static bool finished_logo = false;
+
+ if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) {
+ render_logo();
+ } else {
+ finished_logo = true;
+
+ if (!oled_task_user()) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+#endif
diff --git a/keyboards/handwired/horrortroll/k552/k552.h b/keyboards/handwired/horrortroll/k552/k552.h
new file mode 100644
index 0000000000..2a537714e3
--- /dev/null
+++ b/keyboards/handwired/horrortroll/k552/k552.h
@@ -0,0 +1,54 @@
+/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
+ *
+ * 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
+
+/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+ * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
+ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
+ * │40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D │ │4F │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
+ * │50 │51 │52 │53 │54 │55 │56 │58 │ │5E │5F │5G │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+ */
+
+#define LAYOUT_tkl_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
+ K50, K51, K52, K53, K54, K55, K56, K58, K5E, K5F, K5G \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX, XXX, XXX }, \
+ { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, XXX, K4F, XXX }, \
+ { K50, K51, K52, K53, K54, K55, K56, XXX, K58, XXX, XXX, XX