summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Gromov <38141348+key10iq@users.noreply.github.com>2025-12-04 23:42:33 +0300
committerGitHub <noreply@github.com>2025-12-04 12:42:33 -0800
commit16dde871d73d3b9fd8f4e3f40456caa17d010229 (patch)
tree868c0044dcb5d1bb10b2c4048d27526a5bb26666
parentd39015a4011e53612e117ac4091444bf67792105 (diff)
Add kt60HS-T v3 (#25822)
-rw-r--r--keyboards/keyten/kt60hs_t/keymaps/default/keymap.c5
-rw-r--r--keyboards/keyten/kt60hs_t/readme.md11
-rw-r--r--keyboards/keyten/kt60hs_t/v3/keyboard.json282
-rw-r--r--keyboards/keyten/kt60hs_t/v3/readme.md27
4 files changed, 318 insertions, 7 deletions
diff --git a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c
index 38938bf162..3325867867 100644
--- a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c
+++ b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c
@@ -1,4 +1,5 @@
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 1// Copyright 2025 key10iq
2// SPDX-License-Identifier: GPL-2.0-or-later
2 3
3#include QMK_KEYBOARD_H 4#include QMK_KEYBOARD_H
4 5
@@ -13,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 ), 14 ),
14 15
15 [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( 16 [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
16 KC_TRNS, 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, 17 QK_BOOT, 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,
17 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 18 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
18 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 20 KC_TRNS, 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/keyten/kt60hs_t/readme.md b/keyboards/keyten/kt60hs_t/readme.md
index eb02f6bb8f..a79f1ba06e 100644
--- a/keyboards/keyten/kt60hs_t/readme.md
+++ b/keyboards/keyten/kt60hs_t/readme.md
@@ -2,7 +2,7 @@
2 2
360% MX Hot-Swap Tsangan PCB 360% MX Hot-Swap Tsangan PCB
4 4
5![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) 5![kt60HS-T image](https://live.staticflickr.com/65535/54942233930_c83933dd23_b.jpg)
6 6
7Supports: 7Supports:
81. Split Backspace 81. Split Backspace
@@ -10,7 +10,8 @@ Supports:
10 10
11There are two versions of the PCB available. 11There are two versions of the PCB available.
12 12
13|Version| Features | 13|Version| Features |
14|-------|-------------------------------------------| 14|-------|---------------------------------------------------------|
15|v1 |Blue/Purple PCB / ARM STM32F401 controller | 15|v1 |Blue/Purple PCB / ARM STM32F401 controller |
16|v2 |Purple PCB / ARM STM32F072 controller | 16|v2 |Purple PCB / ARM STM32F072 controller |
17|v3 |Purple PCB / ARM STM32F072 controller, different routing |
diff --git a/keyboards/keyten/kt60hs_t/v3/keyboard.json b/keyboards/keyten/kt60hs_t/v3/keyboard.json
new file mode 100644
index 0000000000..ce087483e0
--- /dev/null
+++ b/keyboards/keyten/kt60hs_t/v3/keyboard.json
@@ -0,0 +1,282 @@
1{
2 "bootloader": "stm32-dfu",
3 "diode_direction": "COL2ROW",
4 "matrix_pins": {
5 "cols": ["A3", "A4", "B12", "B15", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"],
6 "rows": ["B13", "B14", "A5", "A6", "B0"]
7 },
8 "processor": "STM32F072",
9 "usb": {
10 "device_version": "3.0.0",
11 "pid": "0x6010"
12 },
13 "community_layouts": [
14 "60_ansi_wkl_split_bs_rshift",
15 "60_hhkb",
16 "60_ansi_tsangan_split_bs_rshift"
17 ],
18 "layout_aliases": {
19 "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
20 },
21 "layouts": {
22 "LAYOUT_60_ansi_wkl_split_bs_rshift": {
23 "layout": [
24 {"matrix": [0, 0], "x": 0, "y": 0},
25 {"matrix": [0, 1], "x": 1, "y": 0},
26 {"matrix": [0, 2], "x": 2, "y": 0},
27 {"matrix": [0, 3], "x": 3, "y": 0},
28 {"matrix": [0, 4], "x": 4, "y": 0},
29 {"matrix": [0, 5], "x": 5, "y": 0},
30 {"matrix": [0, 6], "x": 6, "y": 0},
31 {"matrix": [0, 7], "x": 7, "y": 0},
32 {"matrix": [0, 8], "x": 8, "y": 0},
33 {"matrix": [0, 9], "x": 9, "y": 0},
34 {"matrix": [0, 10], "x": 10, "y": 0},
35 {"matrix": [0, 11], "x": 11, "y": 0},
36 {"matrix": [0, 12], "x": 12, "y": 0},
37 {"matrix": [0, 13], "x": 13, "y": 0},
38 {"matrix": [2, 13], "x": 14, "y": 0},
39 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
40 {"matrix": [1, 1], "x": 1.5, "y": 1},
41 {"matrix": [1, 2], "x": 2.5, "y": 1},
42 {"matrix": [1, 3], "x": 3.5, "y": 1},
43 {"matrix": [1, 4], "x": 4.5, "y": 1},
44 {"matrix": [1, 5], "x": 5.5, "y": 1},
45 {"matrix": [1, 6], "x": 6.5, "y": 1},
46 {"matrix": [1, 7], "x": 7.5, "y": 1},
47 {"matrix": [1, 8], "x": 8.5, "y": 1},
48 {"matrix": [1, 9], "x": 9.5, "y": 1},
49 {"matrix": [1, 10], "x": 10.5, "y": 1},
50 {"matrix": [1, 11], "x": 11.5, "y": 1},
51 {"matrix": [1, 12], "x": 12.5, "y": 1},
52 {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
53 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
54 {"matrix": [2, 1], "x": 1.75, "y": 2},
55 {"matrix": [2, 2], "x": 2.75, "y": 2},
56 {"matrix": [2, 3], "x": 3.75, "y": 2},
57 {"matrix": [2, 4], "x": 4.75, "y": 2},
58 {"matrix": [2, 5], "x": 5.75, "y": 2},
59 {"matrix": [2, 6], "x": 6.75, "y": 2},
60 {"matrix": [2, 7], "x": 7.75, "y": 2},
61 {"matrix": [2, 8], "x": 8.75, "y": 2},
62 {"matrix": [2, 9], "x": 9.75, "y": 2},
63 {"matrix": [2, 10], "x": 10.75, "y": 2},
64 {"matrix": [2, 11], "x": 11.75, "y": 2},
65 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
66 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
67 {"matrix": [3, 1], "x": 2.25, "y": 3},
68 {"matrix": [3, 2], "x": 3.25, "y": 3},
69 {"matrix": [3, 3], "x": 4.25, "y": 3},
70 {"matrix": [3, 4], "x": 5.25, "y": 3},
71 {"matrix": [3, 5], "x": 6.25, "y": 3},
72 {"matrix": [3, 6], "x": 7.25, "y": 3},
73 {"matrix": [3, 7], "x": 8.25, "y": 3},
74 {"matrix": [3, 8], "x": 9.25, "y": 3},
75 {"matrix": [3, 9], "x": 10.25, "y": 3},
76 {"matrix": [3, 10], "x": 11.25, "y": 3},
77 {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
78 {"matrix": [3, 13], "x": 14, "y": 3},
79 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
80 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
81 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
82 {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
83 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
84 ]
85 },
86 "LAYOUT_60_hhkb": {
87 "layout": [
88 {"matrix": [0, 0], "x": 0, "y": 0},
89 {"matrix": [0, 1], "x": 1, "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, "y": 0},
95 {"matrix": [0, 7], "x": 7, "y": 0},
96 {"matrix": [0, 8], "x": 8, "y": 0},
97 {"matrix": [0, 9], "x": 9, "y": 0},
98 {"matrix": [0, 10], "x": 10, "y": 0},
99 {"matrix": [0, 11], "x": 11, "y": 0},
100 {"matrix": [0, 12], "x": 12, "y": 0},
101 {"matrix": [0, 13], "x": 13, "y": 0},
102 {"matrix": [2, 13], "x": 14, "y": 0},
103 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
104 {"matrix": [1, 1], "x": 1.5, "y": 1},
105 {"matrix": [1, 2], "x": 2.5, "y": 1},
106 {"matrix": [1, 3], "x": 3.5, "y": 1},
107 {"matrix": [1, 4], "x": 4.5, "y": 1},
108 {"matrix": [1, 5], "x": 5.5, "y": 1},
109 {"matrix": [1, 6], "x": 6.5, "y": 1},
110 {"matrix": [1, 7], "x": 7.5, "y": 1},
111 {"matrix": [1, 8], "x": 8.5, "y": 1},
112 {"matrix": [1, 9], "x": 9.5, "y": 1},
113 {"matrix": [1, 10], "x": 10.5, "y": 1},
114 {"matrix": [1, 11], "x": 11.5, "y": 1},
115 {"matrix": [1, 12], "x": 12.5, "y": 1},
116 {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
117 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
118 {"matrix": [2, 1], "x": 1.75, "y": 2},
119 {"matrix": [2, 2], "x": 2.75, "y": 2},
120 {"matrix": [2, 3], "x": 3.75, "y": 2},
121 {"matrix": [2, 4], "x": 4.75, "y": 2},
122 {"matrix": [2, 5], "x": 5.75, "y": 2},
123 {"matrix": [2, 6], "x": 6.75, "y": 2},
124 {"matrix": [2, 7], "x": 7.75, "y": 2},
125 {"matrix": [2, 8], "x": 8.75, "y": 2},
126 {"matrix": [2, 9], "x": 9.75, "y": 2},
127 {"matrix": [2, 10], "x": 10.75, "y": 2},
128 {"matrix": [2, 11], "x": 11.75, "y": 2},
129 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
130 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
131 {"matrix": [3, 1], "x": 2.25, "y": 3},
132 {"matrix": [3, 2], "x": 3.25, "y": 3},
133 {"matrix": [3, 3], "x": 4.25, "y": 3},
134 {"matrix": [3, 4], "x": 5.25, "y": 3},
135 {"matrix": [3, 5], "x": 6.25, "y": 3},
136 {"matrix": [3, 6], "x": 7.25, "y": 3},
137 {"matrix": [3, 7], "x": 8.25, "y": 3},
138 {"matrix": [3, 8], "x": 9.25, "y": 3},
139 {"matrix": [3, 9], "x": 10.25, "y": 3},
140 {"matrix": [3, 10], "x": 11.25, "y": 3},
141 {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
142 {"matrix": [3, 13], "x": 14, "y": 3},
143 {"matrix": [4, 1], "x": 1.5, "y": 4},
144 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
145 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
146 {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
147 {"matrix": [4, 11], "x": 12.5, "y": 4}
148 ]
149 },
150 "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
151 "layout": [
152 {"matrix": [0, 0], "x": 0, "y": 0},
153 {"matrix": [0, 1], "x": 1, "y": 0},
154 {"matrix": [0, 2], "x": 2, "y": 0},
155 {"matrix": [0, 3], "x": 3, "y": 0},
156 {"matrix": [0, 4], "x": 4, "y": 0},
157 {"matrix": [0, 5], "x": 5, "y": 0},
158 {"matrix": [0, 6], "x": 6, "y": 0},
159 {"matrix": [0, 7], "x": 7, "y": 0},
160 {"matrix": [0, 8], "x": 8, "y": 0},
161 {"matrix": [0, 9], "x": 9, "y": 0},
162 {"matrix": [0, 10], "x": 10, "y": 0},
163 {"matrix": [0, 11], "x": 11, "y": 0},
164 {"matrix": [0, 12], "x": 12, "y": 0},
165 {"matrix": [0, 13], "x": 13, "y": 0},
166 {"matrix": [2, 13], "x": 14, "y": 0},
167 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
168 {"matrix": [1, 1], "x": 1.5, "y": 1},
169 {"matrix": [1, 2], "x": 2.5, "y": 1},
170 {"matrix": [1, 3], "x": 3.5, "y": 1},
171 {"matrix": [1, 4], "x": 4.5, "y": 1},
172 {"matrix": [1, 5], "x": 5.5, "y": 1},
173 {"matrix": [1, 6], "x": 6.5, "y": 1},
174 {"matrix": [1, 7], "x": 7.5, "y": 1},
175 {"matrix": [1, 8], "x": 8.5, "y": 1},
176 {"matrix": [1, 9], "x": 9.5, "y": 1},
177 {"matrix": [1, 10], "x": 10.5, "y": 1},
178 {"matrix": [1, 11], "x": 11.5, "y": 1},
179 {"matrix": [1, 12], "x": 12.5, "y": 1},
180 {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
181 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
182 {"matrix": [2, 1], "x": 1.75, "y": 2},
183 {"matrix": [2, 2], "x": 2.75, "y": 2},
184 {"matrix": [2, 3], "x": 3.75, "y": 2},
185 {"matrix": [2, 4], "x": 4.75, "y": 2},
186 {"matrix": [2, 5], "x": 5.75, "y": 2},
187 {"matrix": [2, 6], "x": 6.75, "y": 2},
188 {"matrix": [2, 7], "x": 7.75, "y": 2},
189 {"matrix": [2, 8], "x": 8.75, "y": 2},
190 {"matrix": [2, 9], "x": 9.75, "y": 2},
191 {"matrix": [2, 10], "x": 10.75, "y": 2},
192 {"matrix": [2, 11], "x": 11.75, "y": 2},
193 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
194 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
195 {"matrix": [3, 1], "x": 2.25, "y": 3},
196 {"matrix": [3, 2], "x": 3.25, "y": 3},
197 {"matrix": [3, 3], "x": 4.25, "y": 3},
198 {"matrix": [3, 4], "x": 5.25, "y": 3},
199 {"matrix": [3, 5], "x": 6.25, "y": 3},
200 {"matrix": [3, 6], "x": 7.25, "y": 3},
201 {"matrix": [3, 7], "x": 8.25, "y": 3},
202 {"matrix": [3, 8], "x": 9.25, "y": 3},
203 {"matrix": [3, 9], "x": 10.25, "y": 3},
204 {"matrix": [3, 10], "x": 11.25, "y": 3},
205 {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
206 {"matrix": [3, 13], "x": 14, "y": 3},
207 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
208 {"matrix": [4, 1], "x": 1.5, "y": 4},
209 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
210 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
211 {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
212 {"matrix": [4, 11], "x": 12.5, "y": 4},
213 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
214 ]
215 },
216 "LAYOUT_60_ansi_tsangan_split_rshift": {
217 "layout": [
218 {"matrix": [0, 0], "x": 0, "y": 0},
219 {"matrix": [0, 1], "x": 1, "y": 0},
220 {"matrix": [0, 2], "x": 2, "y": 0},
221 {"matrix": [0, 3], "x": 3, "y": 0},
222 {"matrix": [0, 4], "x": 4, "y": 0},
223 {"matrix": [0, 5], "x": 5, "y": 0},
224 {"matrix": [0, 6], "x": 6, "y": 0},
225 {"matrix": [0, 7], "x": 7, "y": 0},
226 {"matrix": [0, 8], "x": 8, "y": 0},
227 {"matrix": [0, 9], "x": 9, "y": 0},
228 {"matrix": [0, 10], "x": 10, "y": 0},
229 {"matrix": [0, 11], "x": 11, "y": 0},
230 {"matrix": [0, 12], "x": 12, "y": 0},
231 {"matrix": [2, 13], "x": 13, "y": 0, "w": 2},
232 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
233 {"matrix": [1, 1], "x": 1.5, "y": 1},
234 {"matrix": [1, 2], "x": 2.5, "y": 1},
235 {"matrix": [1, 3], "x": 3.5, "y": 1},
236 {"matrix": [1, 4], "x": 4.5, "y": 1},
237 {"matrix": [1, 5], "x": 5.5, "y": 1},
238 {"matrix": [1, 6], "x": 6.5, "y": 1},
239 {"matrix": [1, 7], "x": 7.5, "y": 1},
240 {"matrix": [1, 8], "x": 8.5, "y": 1},
241 {"matrix": [1, 9], "x": 9.5, "y": 1},
242 {"matrix": [1, 10], "x": 10.5, "y": 1},
243 {"matrix": [1, 11], "x": 11.5, "y": 1},
244 {"matrix": [1, 12], "x": 12.5, "y": 1},
245 {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
246 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
247 {"matrix": [2, 1], "x": 1.75, "y": 2},
248 {"matrix": [2, 2], "x": 2.75, "y": 2},
249 {"matrix": [2, 3], "x": 3.75, "y": 2},
250 {"matrix": [2, 4], "x": 4.75, "y": 2},
251 {"matrix": [2, 5], "x": 5.75, "y": 2},
252 {"matrix": [2, 6], "x": 6.75, "y": 2},
253 {"matrix": [2, 7], "x": 7.75, "y": 2},
254 {"matrix": [2, 8], "x": 8.75, "y": 2},
255 {"matrix": [2, 9], "x": 9.75, "y": 2},
256 {"matrix": [2, 10], "x": 10.75, "y": 2},
257 {"matrix": [2, 11], "x": 11.75, "y": 2},
258 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
259 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
260 {"matrix": [3, 1], "x": 2.25, "y": 3},
261 {"matrix": [3, 2], "x": 3.25, "y": 3},
262 {"matrix": [3, 3], "x": 4.25, "y": 3},
263 {"matrix": [3, 4], "x": 5.25, "y": 3},
264 {"matrix": [3, 5], "x": 6.25, "y": 3},
265 {"matrix": [3, 6], "x": 7.25, "y": 3},
266 {"matrix": [3, 7], "x": 8.25, "y": 3},
267 {"matrix": [3, 8], "x": 9.25, "y": 3},
268 {"matrix": [3, 9], "x": 10.25, "y": 3},
269 {"matrix": [3, 10], "x": 11.25, "y": 3},
270 {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75},
271 {"matrix": [3, 13], "x": 14, "y": 3},
272 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
273 {"matrix": [4, 1], "x": 1.5, "y": 4},
274 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
275 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
276 {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
277 {"matrix": [4, 11], "x": 12.5, "y": 4},
278 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
279 ]
280 }
281 }
282}
diff --git a/keyboards/keyten/kt60hs_t/v3/readme.md b/keyboards/keyten/kt60hs_t/v3/readme.md
new file mode 100644
index 0000000000..b12e49b8ef
--- /dev/null
+++ b/keyboards/keyten/kt60hs_t/v3/readme.md
@@ -0,0 +1,27 @@
1# keyten kt60HS-T V3
2
360% MX Hot-Swap Tsangan PCB
4
5![kt60HS-T image](https://live.staticflickr.com/65535/54942233930_c83933dd23_b.jpg)
6
7* Keyboard Maintainer: [keyten](https://github.com/key10iq)
8* Hardware Supported: keyten kt60HS-T V3
9* Hardware Availability: private GB
10
11Make example for this keyboard (after setting up your build environment):
12
13 make keyten/kt60hs_t/v3:default
14
15Flashing example for this keyboard:
16
17 make keyten/kt60hs_t/v3:default:flash
18
19See 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).
20
21## Bootloader
22
23Enter the bootloader in 3 ways:
24
25* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
26* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available
27* Physical reset button: Hold the button on the back of the PCB