fd0a552fc1ed3b5799456dae4f0fc9b039575a2f

Author
chillKB <107592205+chillKB@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

[Keyboard] Ghoul TKL (#24762)

Co-authored-by: jack <jack@pngu.org>

Diff

This diff is truncated to protect this page.

  1diff --git a/keyboards/chill/ghoul/chconf.h b/keyboards/chill/ghoul/chconf.h
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..54014b32f572225f37a40bc6c36e36b3a0faa823
  4--- /dev/null
  5+++ b/keyboards/chill/ghoul/chconf.h
  6@@ -0,0 +1,8 @@
  7+/* SPDX-License-Identifier: GPL-2.0-or-later */
  8+
  9+#pragma once
 10+
 11+#define CH_CFG_ST_RESOLUTION 16
 12+#define CH_CFG_ST_FREQUENCY 10000
 13+
 14+#include_next <chconf.h>
 15diff --git a/keyboards/chill/ghoul/config.h b/keyboards/chill/ghoul/config.h
 16new file mode 100644
 17index 0000000000000000000000000000000000000000..9d5024d876bc351e16e123eb98533e6f9a0488fd
 18--- /dev/null
 19+++ b/keyboards/chill/ghoul/config.h
 20@@ -0,0 +1,7 @@
 21+/* SPDX-License-Identifier: GPL-2.0-or-later */
 22+
 23+#pragma once
 24+
 25+#define BACKLIGHT_PWM_DRIVER PWMD2
 26+#define BACKLIGHT_PWM_CHANNEL 2
 27+#define BACKLIGHT_PAL_MODE 2
 28diff --git a/keyboards/chill/ghoul/halconf.h b/keyboards/chill/ghoul/halconf.h
 29new file mode 100644
 30index 0000000000000000000000000000000000000000..cb37633eb623bf906287d801772f10f81d334bf5
 31--- /dev/null
 32+++ b/keyboards/chill/ghoul/halconf.h
 33@@ -0,0 +1,7 @@
 34+/* SPDX-License-Identifier: GPL-2.0-or-later */
 35+
 36+#pragma once
 37+
 38+#define HAL_USE_PWM TRUE
 39+
 40+#include_next <halconf.h>
 41diff --git a/keyboards/chill/ghoul/keyboard.json b/keyboards/chill/ghoul/keyboard.json
 42new file mode 100644
 43index 0000000000000000000000000000000000000000..ff7435959c0a667e381bb767a0da5cf3e2ccc164
 44--- /dev/null
 45+++ b/keyboards/chill/ghoul/keyboard.json
 46@@ -0,0 +1,408 @@
 47+{
 48+    "manufacturer": "Chill",
 49+    "keyboard_name": "Ghoul",
 50+    "maintainer": "chillKB",
 51+    "url": "https://github.com/chillKB/ghoulTKL",
 52+    "backlight": {
 53+        "driver": "pwm",
 54+        "pin": "B3"
 55+    },
 56+    "bootloader": "stm32-dfu",
 57+    "diode_direction": "COL2ROW",
 58+    "features": {
 59+        "backlight": true,
 60+        "bootmagic": true,
 61+        "command": false,
 62+        "console": false,
 63+        "extrakey": true,
 64+        "mousekey": true,
 65+        "nkro": true
 66+    },
 67+    "indicators": {
 68+        "caps_lock": "B4",
 69+        "on_state": 0,
 70+        "scroll_lock": "B6"
 71+    },
 72+    "matrix_pins": {
 73+        "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A6", "A5", "A15", "A1", "A0"],
 74+        "rows": ["B7", "B9", "B8", "A7", "A4", "A3"]
 75+    },
 76+    "processor": "STM32F072",
 77+    "usb": {
 78+        "device_version": "1.0.0",
 79+        "pid": "0xFC87",
 80+        "vid": "0xC01D"
 81+    },
 82+    "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"],
 83+    "layout_aliases": {
 84+        "LAYOUT_all": "LAYOUT_tkl_ansi_split_bs_rshift"
 85+    },
 86+    "layouts": {
 87+        "LAYOUT_tkl_ansi": {
 88+            "layout": [
 89+                {"matrix": [0, 0], "x": 0, "y": 0},
 90+                {"matrix": [0, 2], "x": 2, "y": 0},
 91+                {"matrix": [0, 3], "x": 3, "y": 0},
 92+                {"matrix": [0, 4], "x": 4, "y": 0},
 93+                {"matrix": [0, 5], "x": 5, "y": 0},
 94+                {"matrix": [0, 6], "x": 6.5, "y": 0},
 95+                {"matrix": [0, 7], "x": 7.5, "y": 0},
 96+                {"matrix": [0, 8], "x": 8.5, "y": 0},
 97+                {"matrix": [0, 9], "x": 9.5, "y": 0},
 98+                {"matrix": [0, 10], "x": 11, "y": 0},
 99+                {"matrix": [0, 11], "x": 12, "y": 0},
100+                {"matrix": [0, 12], "x": 13, "y": 0},
101+                {"matrix": [0, 13], "x": 14, "y": 0},
102+                {"matrix": [0, 14], "x": 15.25, "y": 0},
103+                {"matrix": [0, 15], "x": 16.25, "y": 0},
104+                {"matrix": [0, 16], "x": 17.25, "y": 0},
105+                {"matrix": [1, 0], "x": 0, "y": 1.5},
106+                {"matrix": [1, 1], "x": 1, "y": 1.5},
107+                {"matrix": [1, 2], "x": 2, "y": 1.5},
108+                {"matrix": [1, 3], "x": 3, "y": 1.5},
109+                {"matrix": [1, 4], "x": 4, "y": 1.5},
110+                {"matrix": [1, 5], "x": 5, "y": 1.5},
111+                {"matrix": [1, 6], "x": 6, "y": 1.5},
112+                {"matrix": [1, 7], "x": 7, "y": 1.5},
113+                {"matrix": [1, 8], "x": 8, "y": 1.5},
114+                {"matrix": [1, 9], "x": 9, "y": 1.5},
115+                {"matrix": [1, 10], "x": 10, "y": 1.5},
116+                {"matrix": [1, 11], "x": 11, "y": 1.5},
117+                {"matrix": [1, 12], "x": 12, "y": 1.5},
118+                {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
119+                {"matrix": [1, 14], "x": 15.25, "y": 1.5},
120+                {"matrix": [1, 15], "x": 16.25, "y": 1.5},
121+                {"matrix": [1, 16], "x": 17.25, "y": 1.5},
122+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
123+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
124+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
125+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
126+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
127+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
128+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
129+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
130+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
131+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
132+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
133+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
134+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
135+                {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
136+                {"matrix": [2, 14], "x": 15.25, "y": 2.5},
137+                {"matrix": [2, 15], "x": 16.25, "y": 2.5},
138+                {"matrix": [2, 16], "x": 17.25, "y": 2.5},
139+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
140+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
141+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
142+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
143+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
144+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
145+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
146diff --git a/keyboards/chill/ghoul/keymaps/default/keymap.c b/keyboards/chill/ghoul/keymaps/default/keymap.c
147new file mode 100644
148index 0000000000000000000000000000000000000000..9fb9329eb15e51d61871d53d8e5b63bc167838ca
149--- /dev/null
150+++ b/keyboards/chill/ghoul/keymaps/default/keymap.c
151@@ -0,0 +1,24 @@
152+/* SPDX-License-Identifier: GPL-2.0-or-later */
153+
154+#include QMK_KEYBOARD_H
155+
156+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
157+
158+    [0] = LAYOUT_all(
159+        KC_ESC,  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_PSCR, KC_SCRL, KC_PAUS,
160+        KC_GRV,  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_BSPC,    KC_INS,  KC_HOME, KC_PGUP,
161+        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_DEL,  KC_END,  KC_PGDN,
162+        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,
163+        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, MO(1),                                 KC_UP,
164+        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_RGUI, KC_RCTL,             KC_LEFT, KC_DOWN, KC_RGHT
165+    ),
166+
167+    [1] = LAYOUT_all(
168+        _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP,                      _______, _______, _______,
169+        BL_TOGG, BL_UP,   BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
170+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
171+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
172+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                               _______,
173+        _______, _______, _______,                            _______,                            _______, _______, _______, _______,             _______, _______, _______
174+    )
175+};
176diff --git a/keyboards/chill/ghoul/mcuconf.h b/keyboards/chill/ghoul/mcuconf.h
177new file mode 100644
178index 0000000000000000000000000000000000000000..75267add9bb8b567630d13d48de2a851653ed90f
179--- /dev/null
180+++ b/keyboards/chill/ghoul/mcuconf.h
181@@ -0,0 +1,11 @@
182+/* SPDX-License-Identifier: GPL-2.0-or-later */
183+
184+#pragma once
185+
186+#include_next <mcuconf.h>
187+
188+#undef STM32_PWM_USE_TIM2
189+#define STM32_PWM_USE_TIM2 TRUE
190+
191+#undef STM32_ST_USE_TIMER
192+#define STM32_ST_USE_TIMER 14
193diff --git a/keyboards/chill/ghoul/readme.md b/keyboards/chill/ghoul/readme.md
194new file mode 100644
195index 0000000000000000000000000000000000000000..4dc2b544b87c028be4ec714d13c5ff4978a3d1f3
196--- /dev/null
197+++ b/keyboards/chill/ghoul/readme.md
198@@ -0,0 +1,27 @@
199+# Ghoul TKL
200+
201+![image](https://i.imgur.com/Y39mNA4.jpeg)
202+
203+A modern replacement PCB for Filco TKLs, adding support for PCB-mount stabilizers and popular alternate layouts. In-switch backlight LEDs are also supported.
204+
205+* Keyboard Maintainer: [chillKB](https://github.com/chillKB)
206+* Hardware Supported: Ghoul TKL PCB
207+* Hardware Availability: [Open source on GitHub](https://github.com/chillKB/ghoulTKL)
208+
209+Make example for this keyboard (after setting up your build environment):
210+
211+    make chill/ghoul:default
212+
213+Flashing example for this keyboard:
214+
215+    make chill/ghoul:default:flash
216+