summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoy Lee <joylee.lc@foxmail.com>2024-01-09 19:24:11 +0800
committerGitHub <noreply@github.com>2024-01-09 22:24:11 +1100
commit6cc56f3f8cdde03ee76ed51942de5ffe8d59150c (patch)
treecc77cb2b4f374ae9898adc7f1ec41baca691b974
parent31fdf7d89986d43eefe954d87a34cc831c561eb9 (diff)
Added skiller_sgk50_s3 keyboard (#22382)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/config.h18
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/halconf.h10
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/info.json452
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c24
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/keymap.c24
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/rules.mk1
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/mcuconf.h9
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/readme.md24
-rw-r--r--keyboards/sharkoon/skiller_sgk50_s3/rules.mk1
9 files changed, 563 insertions, 0 deletions
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/config.h b/keyboards/sharkoon/skiller_sgk50_s3/config.h
new file mode 100644
index 0000000000..113ee2bab0
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/config.h
@@ -0,0 +1,18 @@
1// Copyright 2023 JoyLee (@itarze)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6/* RGB Matrix */
7#define RGB_MATRIX_LED_COUNT 88
8#define RGB_DISABLE_WHEN_USB_SUSPENDED
9#define RGB_MATRIX_DEFAULT_VAL 80
10
11/* SPI Config for spi flash*/
12#define SPI_DRIVER SPIDQ
13#define SPI_SCK_PIN B3
14#define SPI_MOSI_PIN B5
15#define SPI_MISO_PIN B4
16#define SPI_MOSI_PAL_MODE 5
17
18#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/halconf.h b/keyboards/sharkoon/skiller_sgk50_s3/halconf.h
new file mode 100644
index 0000000000..8760386e81
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/halconf.h
@@ -0,0 +1,10 @@
1// Copyright 2023 JoyLee (@itarze)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#define HAL_USE_SPI TRUE
7#define SPI_USE_WAIT TRUE
8#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
9
10#include_next <halconf.h>
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/info.json b/keyboards/sharkoon/skiller_sgk50_s3/info.json
new file mode 100644
index 0000000000..9dd0ddb50c
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/info.json
@@ -0,0 +1,452 @@
1{
2 "manufacturer": "Sharkoon Technologies GmbH",
3 "keyboard_name": "SKILLER SGK50 S3",
4 "maintainer": "JoyLee",
5 "bootloader": "wb32-dfu",
6 "diode_direction": "ROW2COL",
7 "eeprom": {
8 "driver": "wear_leveling",
9 "wear_leveling": {
10 "driver": "spi_flash",
11 "backing_size": 4096
12 }
13 },
14 "features": {
15 "bootmagic": true,
16 "command": false,
17 "console": false,
18 "extrakey": true,
19 "mousekey": true,
20 "nkro": true,
21 "rgb_matrix": true,
22 "rgblight": false
23 },
24 "matrix_pins": {
25 "cols": ["C0", "C1", "C2", "C3", "A6", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9"],
26 "rows": ["A0", "A1", "A2", "A3", "A4", "C13"]
27 },
28 "processor": "WB32FQ95",
29 "rgb_matrix": {
30 "animations": {
31 "alphas_mods": true,
32 "band_pinwheel_sat": true,
33 "band_pinwheel_val": true,
34 "band_sat": true,
35 "band_spiral_sat": true,
36 "band_spiral_val": true,
37 "band_val": true,
38 "breathing": true,
39 "cycle_all": true,
40 "cycle_left_right": true,
41 "cycle_out_in": true,
42 "cycle_out_in_dual": true,
43 "cycle_pinwheel": true,
44 "cycle_spiral": true,
45 "cycle_up_down": true,
46 "digital_rain": true,
47 "dual_beacon": true,
48 "gradient_left_right": true,
49 "gradient_up_down": true,
50 "hue_breathing": true,
51 "hue_pendulum": true,
52 "hue_wave": true,
53 "jellybean_raindrops": true,
54 "multisplash": true,
55 "pixel_flow": true,
56 "pixel_fractal": true,
57 "pixel_rain": true,
58 "rainbow_beacon": true,
59 "rainbow_moving_chevron": true,
60 "rainbow_pinwheels": true,
61 "raindrops": true,
62 "solid_color": true,
63 "solid_multisplash": true,
64 "solid_reactive": true,
65 "solid_reactive_cross": true,
66 "solid_reactive_multicross": true,
67 "solid_reactive_multinexus": true,
68 "solid_reactive_multiwide": true,
69 "solid_reactive_nexus": true,
70 "solid_reactive_simple": true,
71 "solid_reactive_wide": true,
72 "solid_splash": true,
73 "splash": true,
74 "typing_heatmap": true
75 },
76 "driver": "ws2812",
77 "layout": [
78 {"matrix": [5, 6], "x": 90, "y": 64, "flags": 4},
79 {"matrix": [5, 10], "x": 149, "y": 64, "flags": 1},
80 {"matrix": [5, 11], "x": 164, "y": 64, "flags": 1},
81 {"matrix": [5, 12], "x": 179, "y": 64, "flags": 4},
82 {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1},
83 {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
84 {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1},
85 {"matrix": [4, 15], "x": 224, "y": 51, "flags": 4},
86 {"matrix": [4, 14], "x": 209, "y": 51, "flags": 1},
87 {"matrix": [4, 12], "x": 179, "y": 51, "flags": 1},
88 {"matrix": [4, 11], "x": 164, "y": 51, "flags": 4},
89 {"matrix": [4, 10], "x": 149, "y": 51, "flags": 4},
90 {"matrix": [4, 9], "x": 134, "y": 51, "flags": 4},
91 {"matrix": [4, 8], "x": 119, "y": 51, "flags": 4},
92 {"matrix": [4, 7], "x": 105, "y": 51, "flags": 4},
93 {"matrix": [4, 6], "x": 90, "y": 51, "flags": 4},
94 {"matrix": [4, 5], "x": 75, "y": 51, "flags": 4},
95 {"matrix": [4, 4], "x": 60, "y": 51, "flags": 4},
96 {"matrix": [4, 3], "x": 45, "y": 51, "flags": 4},
97 {"matrix": [4, 2], "x": 30, "y": 51, "flags": 4},
98 {"matrix": [3, 2], "x": 30, "y": 38, "flags": 4},
99 {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
100 {"matrix": [3, 4], "x": 60, "y": 38, "flags": 4},
101 {"matrix": [3, 5], "x": 75, "y": 38, "flags": 4},
102 {"matrix": [3, 6], "x": 90, "y": 38, "flags": 4},
103 {"matrix": [3, 7], "x": 105, "y": 38, "flags": 4},
104 {"matrix": [3, 8], "x": 119, "y": 38, "flags": 4},
105 {"matrix": [3, 9], "x": 134, "y": 38, "flags": 4},
106 {"matrix": [3, 10], "x": 149, "y": 38, "flags": 4},
107 {"matrix": [3, 11], "x": 164, "y": 38, "flags": 4},
108 {"matrix": [3, 12], "x": 179, "y": 38, "flags": 4},
109 {"matrix": [2, 13], "x": 194, "y": 38, "flags": 4},
110 {"x": 194, "y": 38, "flags": 4},
111 {"matrix": [3, 15], "x": 224, "y": 38, "flags": 4},
112 {"matrix": [2, 15], "x": 224, "y": 26, "flags": 4},
113 {"x": 194, "y": 26, "flags": 4},
114 {"matrix": [3, 13], "x": 194, "y": 26, "flags": 1},
115 {"matrix": [2, 12], "x": 179, "y": 26, "flags": 4},
116 {"matrix": [2, 11], "x": 164, "y": 26, "flags": 4},
117 {"matrix": [2, 10], "x": 149, "y": 26, "flags": 4},
118 {"matrix": [2, 9], "x": 134, "y": 26, "flags": 4},
119 {"matrix": [2, 8], "x": 119, "y": 26, "flags": 4},
120 {"matrix": [2, 7], "x": 105, "y": 26, "flags": 4},
121 {"matrix": [2, 6], "x": 90, "y": 26, "flags": 4},
122 {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4},
123 {"matrix": [2, 4], "x": 60, "y": 26, "flags": 4},
124 {"matrix": [2, 3], "x": 45, "y": 26, "flags": 4},
125 {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
126 {"matrix": [2, 1], "x": 15, "y": 26, "flags": 4},
127 {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
128 {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
129 {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4},
130 {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4},
131 {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4},
132 {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4},
133 {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4},
134 {"matrix": [1, 8], "x": 119, "y": 13, "flags": 4},
135 {"matrix": [1, 9], "x": 134, "y": 13, "flags": 4},
136 {"matrix": [1, 10], "x": 149, "y": 13, "flags": 4},
137 {"matrix": [1, 11], "x": 164, "y": 13, "flags": 4},
138 {"matrix": [1, 12], "x": 179, "y": 13, "flags": 4},
139 {"matrix": [1, 13], "x": 194, "y": 13, "flags": 4},
140 {"matrix": [1, 15], "x": 224, "y": 13, "flags": 4},
141 {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
142 {"matrix": [0, 14], "x": 209, "y": 0, "flags": 4},
143 {"matrix": [0, 13], "x": 194, "y": 0, "flags": 4},
144 {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
145 {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
146 {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
147 {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
148 {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
149 {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
150 {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
151 {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
152 {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
153 {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
154 {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
155 {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
156 {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
157 {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
158 {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4},
159 {"matrix": [3, 0], "x": 0, "y": 38, "flags": 1},
160 {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1},
161 {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1},
162 {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
163 {"matrix": [5, 1], "x": 15, "y": 64, "flags": 1},
164 {"matrix": [5, 2], "x": 30, "y": 64, "flags": 1},
165 {"matrix": [4, 1], "x": 15, "y": 51, "flags": 4}
166 ],
167 "max_brightness": 110,
168 "val_steps": 28
169 },
170 "url": "",
171 "usb": {
172 "device_version": "1.0.0",
173 "pid": "0x3663",
174 "suspend_wakeup_delay": 1000,
175 "vid": "0x6332"
176 },
177 "ws2812": {
178 "pin": "A8"
179 },
180 "community_layouts": [
181 "75_ansi",
182 "75_iso"
183 ],
184 "layouts": {
185 "LAYOUT_all": {
186 "layout": [
187 {"matrix": [0, 0], "x": 0, "y": 0},
188 {"matrix": [0, 1], "x": 1, "y": 0},
189 {"matrix": [0, 2], "x": 2, "y": 0},
190 {"matrix": [0, 3], "x": 3, "y": 0},
191 {"matrix": [0, 4], "x": 4, "y": 0},
192 {"matrix": [0, 5], "x": 5, "y": 0},
193 {"matrix": [0, 6], "x": 6, "y": 0},
194 {"matrix": [0, 7], "x": 7, "y": 0},
195 {"matrix": [0, 8], "x": 8, "y": 0},
196 {"matrix": [0, 9], "x": 9, "y": 0},
197 {"matrix": [0, 10], "x": 10, "y": 0},
198 {"matrix": [0, 11], "x": 11, "y": 0},
199 {"matrix": [0, 12], "x": 12, "y": 0},
200 {"matrix": [0, 13], "x": 13, "y": 0},
201 {"matrix": [0, 14], "x": 14, "y": 0},
202 {"matrix": [0, 15], "x": 15, "y": 0},
203 {"matrix": [1, 0], "x": 0, "y": 1},
204 {"matrix": [1, 1], "x": 1, "y": 1},
205 {"matrix": [1, 2], "x": 2, "y": 1},
206 {"matrix": [1, 3], "x": 3, "y": 1},
207 {"matrix": [1, 4], "x": 4, "y": 1},
208 {"matrix": [1, 5], "x": 5, "y": 1},
209 {"matrix": [1, 6], "x": 6, "y": 1},
210 {"matrix": [1, 7], "x": 7, "y": 1},
211 {"matrix": [1, 8], "x": 8, "y": 1},
212 {"matrix": [1, 9], "x": 9, "y": 1},
213 {"matrix": [1, 10], "x": 10, "y": 1},
214 {"matrix": [1, 11], "x": 11, "y": 1},
215 {"matrix": [1, 12], "x": 12, "y": 1},
216 {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
217 {"matrix": [1, 15], "x": 15, "y": 1},
218 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
219 {"matrix": [2, 1], "x": 1.5, "y": 2},
220 {"matrix": [2, 2], "x": 2.5, "y": 2},
221 {"matrix": [2, 3], "x": 3.5, "y": 2},
222 {"matrix": [2, 4], "x": 4.5, "y": 2},
223 {"matrix": [2, 5], "x": 5.5, "y": 2},
224 {"matrix": [2, 6], "x": 6.5, "y": 2},
225 {"matrix": [2, 7], "x": 7.5, "y": 2},
226 {"matrix": [2, 8], "x": 8.5, "y": 2},
227 {"matrix": [2, 9], "x": 9.5, "y": 2},
228 {"matrix": [2, 10], "x": 10.5, "y": 2},
229 {"matrix": [2, 11], "x": 11.5, "y": 2},
230 {"matrix": [2, 12], "x": 12.5, "y": 2},
231 {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
232 {"matrix": [2, 15], "x": 15, "y": 2},
233 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
234 {"matrix": [3, 2], "x": 1.75, "y": 3},
235 {"matrix": [3, 3], "x": 2.75, "y": 3},
236 {"matrix": [3, 4], "x": 3.75, "y": 3},
237 {"matrix": [3, 5], "x": 4.75, "y": 3},
238 {"matrix": [3, 6], "x": 5.75, "y": 3},
239 {"matrix": [3, 7], "x": 6.75, "y": 3},
240 {"matrix": [3, 8], "x": 7.75, "y": 3},
241 {"matrix": [3, 9], "x": 8.75, "y": 3},
242 {"matrix": [3, 10], "x": 9.75, "y": 3},
243 {"matrix": [3, 11], "x": 10.75, "y": 3},
244 {"matrix": [3, 12], "x": 11.75, "y": 3},
245 {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
246 {"matrix": [3, 15], "x": 15, "y": 3},
247 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
248 {"matrix": [4, 1], "x": 1.25, "y": 4},
249 {"matrix": [4, 2], "x": 2.25, "y": 4},
250 {"matrix": [4, 3], "x": 3.25, "y": 4},
251 {"matrix": [4, 4], "x": 4.25, "y": 4},
252 {"matrix": [4, 5], "x": 5.25, "y": 4},
253 {"matrix": [4, 6], "x": 6.25, "y": 4},
254 {"matrix": [4, 7], "x": 7.25, "y": 4},
255 {"matrix": [4, 8], "x": 8.25, "y": 4},
256 {"matrix": [4, 9], "x": 9.25, "y": 4},
257 {"matrix": [4, 10], "x": 10.25, "y": 4},
258 {"matrix": [4, 11], "x": 11.25, "y": 4},
259 {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
260 {"matrix": [4, 14], "x": 14, "y": 4},
261 {"matrix": [4, 15], "x": 15, "y": 4},
262 {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
263 {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
264 {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
265 {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
266 {"matrix": [5, 10], "x": 10, "y": 5},
267 {"matrix": [5, 11], "x": 11, "y": 5},
268 {"matrix": [5, 12], "x": 12, "y": 5},
269 {"matrix": [5, 13], "x": 13, "y": 5},
270 {"matrix": [5, 14], "x": 14, "y": 5},
271 {"matrix": [5, 15], "x": 15, "y": 5}
272 ]
273 },
274 "LAYOUT_75_ansi": {
275 "layout": [
276 {"matrix": [0, 0], "x": 0, "y": 0},
277 {"matrix": [0, 1], "x": 1, "y": 0},
278 {"matrix": [0, 2], "x": 2, "y": 0},
279 {"matrix": [0, 3], "x": 3, "y": 0},
280 {"matrix": [0, 4], "x": 4, "y": 0},
281 {"matrix": [0, 5], "x": 5, "y": 0},
282 {"matrix": [0, 6], "x": 6, "y": 0},
283 {"matrix": [0, 7], "x": 7, "y": 0},
284 {"matrix": [0, 8], "x": 8, "y": 0},
285 {"matrix": [0, 9], "x": 9, "y": 0},
286 {"matrix": [0, 10], "x": 10, "y": 0},
287 {"matrix": [0, 11], "x": 11, "y": 0},
288 {"matrix": [0, 12], "x": 12, "y": 0},
289 {"matrix": [0, 13], "x": 13, "y": 0},
290 {"matrix": [0, 14], "x": 14, "y": 0},
291 {"matrix": [0, 15], "x": 15, "y": 0},
292 {"matrix": [1, 0], "x": 0, "y": 1},
293 {"matrix": [1, 1], "x": 1, "y": 1},
294 {"matrix": [1, 2], "x": 2, "y": 1},
295 {"matrix": [1, 3], "x": 3, "y": 1},
296 {"matrix": [1, 4], "x": 4, "y": 1},
297 {"matrix": [1, 5], "x": 5, "y": 1},
298 {"matrix": [1, 6], "x": 6, "y": 1},
299 {"matrix": [1, 7], "x": 7, "y": 1},
300 {"matrix": [1, 8], "x": 8, "y": 1},
301 {"matrix": [1, 9], "x": 9, "y": 1},
302 {"matrix": [1, 10], "x": 10, "y": 1},
303 {"matrix": [1, 11], "x": 11, "y": 1},
304 {"matrix": [1, 12], "x": 12, "y": 1},
305 {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
306 {"matrix": [1, 15], "x": 15, "y": 1},
307 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
308 {"matrix": [2, 1], "x": 1.5, "y": 2},
309 {"matrix": [2, 2], "x": 2.5, "y": 2},
310 {"matrix": [2, 3], "x": 3.5, "y": 2},
311 {"matrix": [2, 4], "x": 4.5, "y": 2},
312 {"matrix": [2, 5], "x": 5.5, "y": 2},
313 {"matrix": [2, 6], "x": 6.5, "y": 2},
314 {"matrix": [2, 7], "x": 7.5, "y": 2},
315 {"matrix": [2, 8], "x": 8.5, "y": 2},
316 {"matrix": [2, 9], "x": 9.5, "y": 2},
317 {"matrix": [2, 10], "x": 10.5, "y": 2},
318 {"matrix": [2, 11], "x": 11.5, "y": 2},
319 {"matrix": [2, 12], "x": 12.5, "y": 2},
320 {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
321 {"matrix": [2, 15], "x": 15, "y": 2},
322 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
323 {"matrix": [3, 2], "x": 1.75, "y": 3},
324 {"matrix": [3, 3], "x": 2.75, "y": 3},
325 {"matrix": [3, 4], "x": 3.75, "y": 3},
326 {"matrix": [3, 5], "x": 4.75, "y": 3},
327 {"matrix": [3, 6], "x": 5.75, "y": 3},
328 {"matrix": [3, 7], "x": 6.75, "y": 3},
329 {"matrix": [3, 8], "x": 7.75, "y": 3},
330 {"matrix": [3, 9], "x": 8.75, "y": 3},
331 {"matrix": [3, 10], "x": 9.75, "y": 3},
332 {"matrix": [3, 11], "x": 10.75, "y": 3},
333 {"matrix": [3, 12], "x": 11.75, "y": 3},
334 {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
335 {"matrix": [3, 15], "x": 15, "y": 3},
336 {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
337 {"matrix": [4, 2], "x": 2.25, "y": 4},
338 {"matrix": [4, 3], "x": 3.25, "y": 4},
339 {"matrix": [4, 4], "x": 4.25, "y": 4},
340 {"matrix": [4, 5], "x": 5.25, "y": 4},
341 {"matrix": [4, 6], "x": 6.25, "y": 4},
342 {"matrix": [4, 7], "x": 7.25, "y": 4},
343 {"matrix": [4, 8], "x": 8.25, "y": 4},
344 {"matrix": [4, 9], "x": 9.25, "y": 4},
345 {"matrix": [4, 10], "x": 10.25, "y": 4},
346 {"matrix": [4, 11], "x": 11.25, "y": 4},
347 {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
348 {"matrix": [4, 14], "x": 14, "y": 4},
349 {"matrix": [4, 15], "x": 15, "y": 4},
350 {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
351 {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
352 {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
353 {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
354 {"matrix": [5, 10], "x": 10, "y": 5},
355 {"matrix": [5, 11], "x": 11, "y": 5},
356 {"matrix": [5, 12], "x": 12, "y": 5},
357 {"matrix": [5, 13], "x": 13, "y": 5},
358 {"matrix": [5, 14], "x": 14, "y": 5},
359 {"matrix": [5, 15], "x": 15, "y": 5}
360 ]
361 },
362 "LAYOUT_75_iso": {
363 "layout": [
364 {"matrix": [0, 0], "x": 0, "y": 0},
365 {"matrix": [0, 1], "x": 1, "y": 0},
366 {"matrix": [0, 2], "x": 2, "y": 0},
367 {"matrix": [0, 3], "x": 3, "y": 0},
368 {"matrix": [0, 4], "x": 4, "y": 0},
369 {"matrix": [0, 5], "x": 5, "y": 0},
370 {"matrix": [0, 6], "x": 6, "y": 0},
371 {"matrix": [0, 7], "x": 7, "y": 0},
372 {"matrix": [0, 8], "x": 8, "y": 0},
373 {"matrix": [0, 9], "x": 9, "y": 0},
374 {"matrix": [0, 10], "x": 10, "y": 0},
375 {"matrix": [0, 11], "x": 11, "y": 0},
376 {"matrix": [0, 12], "x": 12, "y": 0},
377 {"matrix": [0, 13], "x": 13, "y": 0},
378 {"matrix": [0, 14], "x": 14, "y": 0},
379 {"matrix": [0, 15], "x": 15, "y": 0},
380 {"matrix": [1, 0], "x": 0, "y": 1},
381 {"matrix": [1, 1], "x": 1, "y": 1},
382 {"matrix": [1, 2], "x": 2, "y": 1},
383 {"matrix": [1, 3], "x": 3, "y": 1},
384 {"matrix": [1, 4], "x": 4, "y": 1},
385 {"matrix": [1, 5], "x": 5, "y": 1},
386 {"matrix": [1, 6], "x": 6, "y": 1},
387 {"matrix": [1, 7], "x": 7, "y": 1},
388 {"matrix": [1, 8], "x": 8, "y": 1},
389 {"matrix": [1, 9], "x": 9, "y": 1},
390 {"matrix": [1, 10], "x": 10, "y": 1},
391 {"matrix": [1, 11], "x": 11, "y": 1},
392 {"matrix": [1, 12], "x": 12, "y": 1},
393 {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
394 {"matrix": [1, 15], "x": 15, "y": 1},
395 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
396 {"matrix": [2, 1], "x": 1.5, "y": 2},
397 {"matrix": [2, 2], "x": 2.5, "y": 2},
398 {"matrix": [2, 3], "x": 3.5, "y": 2},
399 {"matrix": [2, 4], "x": 4.5, "y": 2},
400 {"matrix": [2, 5], "x": 5.5, "y": 2},
401 {"matrix": [2, 6], "x": 6.5, "y": 2},
402 {"matrix": [2, 7], "x": 7.5, "y": 2},
403 {"matrix": [2, 8], "x": 8.5, "y": 2},
404 {"matrix": [2, 9], "x": 9.5, "y": 2},
405 {"matrix": [2, 10], "x": 10.5, "y": 2},
406 {"matrix": [2, 11], "x": 11.5, "y": 2},
407 {"matrix": [2, 12], "x": 12.5, "y": 2},
408 {"matrix": [2, 15], "x": 15, "y": 2},
409 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
410 {"matrix": [3, 2], "x": 1.75, "y": 3},
411 {"matrix": [3, 3], "x": 2.75, "y": 3},
412 {"matrix": [3, 4], "x": 3.75, "y": 3},
413 {"matrix": [3, 5], "x": 4.75, "y": 3},
414 {"matrix": [3, 6], "x": 5.75, "y": 3},
415 {"matrix": [3, 7], "x": 6.75, "y": 3},
416 {"matrix": [3, 8], "x": 7.75, "y": 3},
417 {"matrix": [3, 9], "x": 8.75, "y": 3},
418 {"matrix": [3, 10], "x": 9.75, "y": 3},
419 {"matrix": [3, 11], "x": 10.75, "y": 3},
420 {"matrix": [3, 12], "x": 11.75, "y": 3},
421 {"matrix": [2, 13], "x": 12.75, "y": 3},
422 {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
423 {"matrix": [3, 15], "x": 15, "y": 3},
424 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
425 {"matrix": [4, 1], "x": 1.25, "y": 4},
426 {"matrix": [4, 2], "x": 2.25, "y": 4},
427 {"matrix": [4, 3], "x": 3.25, "y": 4},
428 {"matrix": [4, 4], "x": 4.25, "y": 4},
429 {"matrix": [4, 5], "x": 5.25, "y": 4},
430 {"matrix": [4, 6], "x": 6.25, "y": 4},
431 {"matrix": [4, 7], "x": 7.25, "y": 4},
432 {"matrix": [4, 8], "x": 8.25, "y": 4},
433 {"matrix": [4, 9], "x": 9.25, "y": 4},
434 {"matrix": [4, 10], "x": 10.25, "y": 4},
435 {"matrix": [4, 11], "x": 11.25, "y": 4},
436 {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
437 {"matrix": [4, 14], "x": 14, "y": 4},
438 {"matrix": [4, 15], "x": 15, "y": 4},
439 {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
440 {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
441 {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
442 {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
443 {"matrix": [5, 10], "x": 10, "y": 5},
444 {"matrix": [5, 11], "x": 11, "y": 5},
445 {"matrix": [5, 12], "x": 12, "y": 5},
446 {"matrix": [5, 13], "x": 13, "y": 5},
447 {"matrix": [5, 14], "x": 14, "y": 5},
448 {"matrix": [5, 15], "x": 15, "y": 5}
449 ]
450 }
451 }
452}
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c
new file mode 100644
index 0000000000..dd09e56060
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c
@@ -0,0 +1,24 @@
1// Copyright 2023 JoyLee (@itarze)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all(
8 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_INS, KC_HOME, KC_DEL,
9 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_PGUP,
10 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_PGDN,
11 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_END,
12 KC_LSFT, KC_NUBS, 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_WHOM,
13 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
14 ),
15
16 [1] = LAYOUT_all(
17 EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______,
18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_SAI,
19 _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD,
20 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
21 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
22 _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_HUI, RGB_VAD, RGB_MOD
23 ),
24};
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/keymap.c b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/keymap.c
new file mode 100644
index 0000000000..dd09e56060
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/keymap.c
@@ -0,0 +1,24 @@
1// Copyright 2023 JoyLee (@itarze)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all(
8 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_INS, KC_HOME, KC_DEL,
9 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_PGUP,
10 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_PGDN,
11 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_END,
12 KC_LSFT, KC_NUBS, 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_WHOM,
13 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
14 ),
15
16 [1] = LAYOUT_all(
17 EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______,
18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_SAI,
19 _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD,
20 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
21 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
22 _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_HUI, RGB_VAD, RGB_MOD
23 ),
24};
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/rules.mk b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/mcuconf.h b/keyboards/sharkoon/skiller_sgk50_s3/mcuconf.h
new file mode 100644
index 0000000000..ca0e017ebd
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/mcuconf.h
@@ -0,0 +1,9 @@
1// Copyright 2023 JoyLee (@itarze)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#include_next <mcuconf.h>
7
8#undef WB32_SPI_USE_QSPI
9#define WB32_SPI_USE_QSPI TRUE
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/readme.md b/keyboards/sharkoon/skiller_sgk50_s3/readme.md
new file mode 100644
index 0000000000..46bc97d81f
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/readme.md
@@ -0,0 +1,24 @@
1# SHARKOON SKILLER SGK50 S3
2
3![ISO](https://i.imgur.com/q35h8v0h.png)
4
5* Keyboard Maintainer: [JoyLee](https://github.com/itarze)
6* Hardware Supported: SHARKOON SKILLER SGK50 S3 PCB
7
8Make example for this keyboard (after setting up your build environment):
9
10 make sharkoon/skiller_sgk50_s3:default
11
12Flashing example for this keyboard:
13
14 make sharkoon/skiller_sgk50_s3:default:flash
15
16See 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).
17
18## Bootloader
19
20Enter the bootloader in 3 ways:
21
22* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
23* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
24* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/sharkoon/skiller_sgk50_s3/rules.mk b/keyboards/sharkoon/skiller_sgk50_s3/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/sharkoon/skiller_sgk50_s3/rules.mk
@@ -0,0 +1 @@
# This file intentionally left blank