summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan Smith <aidan@aidansmith.dev>2024-01-29 15:08:13 -0500
committerGitHub <noreply@github.com>2024-01-29 12:08:13 -0800
commitca7b2d63a79271d2a8b1e4759125e35f69da284b (patch)
tree373ec19cbe2470cd7020829df09e560c21c0c1ce
parent0a50599544e1f47e5728ebafa24b2edf5002929a (diff)
Sango Keyboard (#22971)
Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: jack <0x6a73@protonmail.com>
-rw-r--r--keyboards/aidansmithdotdev/sango/config.h19
-rw-r--r--keyboards/aidansmithdotdev/sango/info.json219
-rw-r--r--keyboards/aidansmithdotdev/sango/keymaps/default/keymap.c32
-rw-r--r--keyboards/aidansmithdotdev/sango/readme.md19
-rw-r--r--keyboards/aidansmithdotdev/sango/rules.mk1
5 files changed, 290 insertions, 0 deletions
diff --git a/keyboards/aidansmithdotdev/sango/config.h b/keyboards/aidansmithdotdev/sango/config.h
new file mode 100644
index 0000000000..13b2c01f3e
--- /dev/null
+++ b/keyboards/aidansmithdotdev/sango/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2024 Aidan Smith <aidan@aidansmith.dev>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#define EE_HANDS
diff --git a/keyboards/aidansmithdotdev/sango/info.json b/keyboards/aidansmithdotdev/sango/info.json
new file mode 100644
index 0000000000..f62ae7466b
--- /dev/null
+++ b/keyboards/aidansmithdotdev/sango/info.json
@@ -0,0 +1,219 @@
1{
2 "manufacturer": "AidanSmith.dev",
3 "keyboard_name": "aidansmithdotdev/Sango",
4 "Maintainer": "AidanSmith.dev",
5 "bootloader": "rp2040",
6 "bootmagic": {
7 "matrix": [0, 7]
8 },
9 "diode_direction": "COL2ROW",
10 "features": {
11 "bootmagic": true,
12 "extrakey": true,
13 "mousekey": true,
14 "rgb_matrix": true
15 },
16 "matrix_pins": {
17 "cols": ["GP4", "GP8", "GP9", "GP11", "GP12", "GP13", "GP14", "GP15"],
18 "rows": ["GP7", "GP6", "GP3", "GP2", "GP0"]
19 },
20 "processor": "RP2040",
21 "rgb_matrix": {
22 "driver": "ws2812",
23 "layout": [
24 {"matrix": [0, 1], "x": 60, "y": 0, "flags": 4},
25 {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4},
26 {"matrix": [0, 3], "x": 40, "y": 0, "flags": 4},
27 {"matrix": [0, 4], "x": 30, "y": 0, "flags": 4},
28 {"matrix": [0, 5], "x": 20, "y": 0, "flags": 4},
29 {"matrix": [0, 6], "x": 10, "y": 0, "flags": 4},
30 {"matrix": [0, 7], "x": 0, "y": 0, "flags": 4},
31 {"matrix": [1, 7], "x": 0, "y": 10, "flags": 4},
32 {"matrix": [1, 6], "x": 10, "y": 10, "flags": 4},
33 {"matrix": [1, 5], "x": 20, "y": 10, "flags": 4},
34 {"matrix": [1, 4], "x": 30, "y": 10, "flags": 4},
35 {"matrix": [1, 3], "x": 40, "y": 10, "flags": 4},
36 {"matrix": [1, 2], "x": 50, "y": 10, "flags": 4},
37 {"matrix": [1, 1], "x": 60, "y": 10, "flags": 4},
38 {"matrix": [2, 0], "x": 70, "y": 20, "flags": 4},
39 {"matrix": [2, 1], "x": 60, "y": 20, "flags": 4},
40 {"matrix": [2, 2], "x": 50, "y": 20, "flags": 4},
41 {"matrix": [2, 3], "x": 40, "y": 20, "flags": 4},
42 {"matrix": [2, 4], "x": 30, "y": 20, "flags": 4},
43 {"matrix": [2, 5], "x": 20, "y": 20, "flags": 4},
44 {"matrix": [2, 6], "x": 10, "y": 20, "flags": 4},
45 {"matrix": [2, 7], "x": 0, "y": 20, "flags": 4},
46 {"matrix": [3, 7], "x": 0, "y": 30, "flags": 4},
47 {"matrix": [3, 6], "x": 10, "y": 30, "flags": 4},
48 {"matrix": [3, 5], "x": 20, "y": 30, "flags": 4},
49 {"matrix": [3, 4], "x": 30, "y": 30, "flags": 4},
50 {"matrix": [3, 3], "x": 40, "y": 30, "flags": 4},
51 {"matrix": [3, 2], "x": 50, "y": 30, "flags": 4},
52 {"matrix": [3, 1], "x": 60, "y": 30, "flags": 4},
53 {"matrix": [3, 0], "x": 70, "y": 30, "flags": 4},
54 {"matrix": [4, 0], "x": 70, "y": 30, "flags": 4},
55 {"matrix": [4, 1], "x": 60, "y": 30, "flags": 4},
56 {"matrix": [4, 2], "x": 50, "y": 30, "flags": 4},
57 {"matrix": [4, 5], "x": 20, "y": 30, "flags": 4},
58 {"matrix": [4, 6], "x": 10, "y": 30, "flags": 4},
59 {"matrix": [4, 7], "x": 0, "y": 30, "flags": 4},
60 {"matrix": [5, 1], "x": 100, "y": 0, "flags": 4},
61 {"matrix": [5, 2], "x": 110, "y": 0, "flags": 4},
62 {"matrix": [5, 3], "x": 120, "y": 0, "flags": 4},
63 {"matrix": [5, 4], "x": 130, "y": 0, "flags": 4},
64 {"matrix": [5, 5], "x": 140, "y": 0, "flags": 4},
65 {"matrix": [5, 6], "x": 150, "y": 0, "flags": 4},
66 {"matrix": [5, 7], "x": 160, "y": 0, "flags": 4},
67 {"matrix": [6, 7], "x": 160, "y": 10, "flags": 4},
68 {"matrix": [6, 6], "x": 150, "y": 10, "flags": 4},
69 {"matrix": [6, 5], "x": 140, "y": 10, "flags": 4},
70 {"matrix": [6, 4], "x": 130, "y": 10, "flags": 4},
71 {"matrix": [6, 3], "x": 120, "y": 10, "flags": 4},
72 {"matrix": [6, 2], "x": 110, "y": 10, "flags": 4},
73 {"matrix": [6, 1], "x": 100, "y": 10, "flags": 4},
74 {"matrix": [7, 0], "x": 90, "y": 20, "flags": 4},
75 {"matrix": [7, 1], "x": 100, "y": 20, "flags": 4},
76 {"matrix": [7, 2], "x": 110, "y": 20, "flags": 4},
77 {"matrix": [7, 3], "x": 120, "y": 20, "flags": 4},
78 {"matrix": [7, 4], "x": 130, "y": 20, "flags": 4},
79 {"matrix": [7, 5], "x": 140, "y": 20, "flags": 4},
80 {"matrix": [7, 6], "x": 150, "y": 20, "flags": 4},
81 {"matrix": [7, 7], "x": 160, "y": 20, "flags": 4},
82 {"matrix": [8, 7], "x": 160, "y": 30, "flags": 4},
83 {"matrix": [8, 6], "x": 150, "y": 30, "flags": 4},
84 {"matrix": [8, 5], "x": 140, "y": 30, "flags": 4},
85 {"matrix": [8, 4], "x": 130, "y": 30, "flags": 4},
86 {"matrix": [8, 3], "x": 120, "y": 30, "flags": 4},
87 {"matrix": [8, 2], "x": 110, "y": 30, "flags": 4},
88 {"matrix": [8, 1], "x": 100, "y": 30, "flags": 4},
89 {"matrix": [8, 0], "x": 90, "y": 30, "flags": 4},
90 {"matrix": [9, 0], "x": 90, "y": 30, "flags": 4},
91 {"matrix": [9, 1], "x": 100, "y": 30, "flags": 4},
92 {"matrix": [9, 2], "x": 110, "y": 30, "flags": 4},
93 {"matrix": [9, 5], "x": 140, "y": 30, "flags": 4},
94 {"matrix": [9, 6], "x": 150, "y": 30, "flags": 4},
95 {"matrix": [9, 7], "x": 160, "y": 30, "flags": 4}
96 ]
97 },
98 "rgblight": {
99 "animations": {
100 "alternating": true,
101 "breathing": true,
102 "christmas": true,
103 "knight": true,
104 "rainbow_mood": true,
105 "rainbow_swirl": true,
106 "rgb_test": true,
107 "snake": true,
108 "static_gradient": true,
109 "twinkle": true
110 },
111 "brightness_steps": 8,
112 "max_brightness": 128,
113 "saturation_steps": 8,
114 "split": true,
115 "split_count": [36, 36]
116 },
117 "split": {
118 "bootmagic": {
119 "matrix": [4, 7]
120 },
121 "enabled": true,
122 "main": "matrix_grid",
123 "matrix_pins": {
124 "right": {
125 "cols": ["GP7", "GP8", "GP9", "GP11", "GP12", "GP13", "GP14", "GP15"],
126 "rows": ["GP2", "GP3", "GP4", "GP5", "GP6"]
127 }
128 },
129 "soft_serial_pin": "GP1"
130 },
131 "url": "https://aidansmith.dev",
132 "usb": {
133 "device_version": "1.0.0",
134 "pid": "0x2567",
135 "vid": "0xA059"
136 },
137 "ws2812": {
138 "driver": "vendor",
139 "pin": "GP10"
140 },
141 "layouts": {
142 "LAYOUT": {
143 "layout": [
144 {"label": "L07", "matrix": [0, 7], "x": 0, "y": 0.3},
145 {"label": "L06", "matrix": [0, 6], "x": 1, "y": 0.3},
146 {"label": "L05", "matrix": [0, 5], "x": 2, "y": 0.3},
147 {"label": "L04", "matrix": [0, 4], "x": 3, "y": 0.1},
148 {"label": "L03", "matrix": [0, 3], "x": 4, "y": 0},
149 {"label": "L02", "matrix": [0, 2], "x": 5, "y": 0.1},
150 {"label": "L01", "matrix": [0, 1], "x": 6, "y": 0.2},
151 {"label": "R01", "matrix": [5, 1], "x": 10, "y": 0.2},
152 {"label": "R02", "matrix": [5, 2], "x": 11, "y": 0.1},
153 {"label": "R03", "matrix": [5, 3], "x": 12, "y": 0},
154 {"label": "R04", "matrix": [5, 4], "x": 13, "y": 0.1},
155 {"label": "R05", "matrix": [5, 5], "x": 14, "y": 0.3},
156 {"label": "R06", "matrix": [5, 6], "x": 15, "y": 0.3},
157 {"label": "R07", "matrix": [5, 7], "x": 16, "y": 0.3},
158 {"label": "L17", "matrix": [1, 7], "x": 0, "y": 1.3},
159 {"label": "L16", "matrix": [1, 6], "x": 1, "y": 1.3},
160 {"label": "L15", "matrix": [1, 5], "x": 2, "y": 1.3},
161 {"label": "L14", "matrix": [1, 4], "x": 3, "y": 1.1},
162 {"label": "L13", "matrix": [1, 3], "x": 4, "y": 1},
163 {"label": "L12", "matrix": [1, 2], "x": 5, "y": 1.1},
164 {"label": "L11", "matrix": [1, 1], "x": 6, "y": 1.2},
165 {"label": "R11", "matrix": [6, 1], "x": 10, "y": 1.2},
166 {"label": "R12", "matrix": [6, 2], "x": 11, "y": 1.1},
167 {"label": "R13", "matrix": [6, 3], "x": 12, "y": 1},
168 {"label": "R14", "matrix": [6, 4], "x": 13, "y": 1.1},
169 {"label": "R15", "matrix": [6, 5], "x": 14, "y": 1.3},
170 {"label": "R16", "matrix": [6, 6], "x": 15, "y": 1.3},
171 {"label": "R17", "matrix": [6, 7], "x": 16, "y": 1.3},
172 {"label": "L27", "matrix": [2, 7], "x": 0, "y": 2.3},
173 {"label": "L26", "matrix": [2, 6], "x": 1, "y": 2.3},
174 {"label": "L25", "matrix": [2, 5], "x": 2, "y": 2.3},
175 {"label": "L24", "matrix": [2, 4], "x": 3, "y": 2.1},
176 {"label": "L23", "matrix": [2, 3], "x": 4, "y": 2},
177 {"label": "L22", "matrix": [2, 2], "x": 5, "y": 2.1},
178 {"label": "L21", "matrix": [2, 1], "x": 6, "y": 2.2},
179 {"label": "L20", "matrix": [2, 0], "x": 7, "y": 2.7},
180 {"label": "R20", "matrix": [7, 0], "x": 9, "y": 2.7},
181 {"label": "R21", "matrix": [7, 1], "x": 10, "y": 2.2},
182 {"label": "R22", "matrix": [7, 2], "x": 11, "y": 2.1},
183 {"label": "R23", "matrix": [7, 3], "x": 12, "y": 2},
184 {"label": "R24", "matrix": [7, 4], "x": 13, "y": 2.1},
185 {"label": "R25", "matrix": [7, 5], "x": 14, "y": 2.3},
186 {"label": "R26", "matrix": [7, 6], "x": 15, "y": 2.3},
187 {"label": "R27", "matrix": [7, 7], "x": 16, "y": 2.3},
188 {"label": "L37", "matrix": [3, 7], "x": 0, "y": 3.3},
189 {"label": "L36", "matrix": [3, 6], "x": 1, "y": 3.3},
190 {"label": "L35", "matrix": [3, 5], "x": 2, "y": 3.3},
191 {"label": "L34", "matrix": [3, 4], "x": 3, "y": 3.1},
192 {"label": "L33", "matrix": [3, 3], "x": 4, "y": 3},
193 {"label": "L32", "matrix": [3, 2], "x": 5, "y": 3.1},
194 {"label": "L31", "matrix": [3, 1], "x": 6, "y": 3.2},
195 {"label": "L30", "matrix": [3, 0], "x": 7, "y": 3.7},
196 {"label": "R30", "matrix": [8, 0], "x": 9, "y": 3.7},
197 {"label": "R31", "matrix": [8, 1], "x": 10, "y": 3.2},
198 {"label": "R32", "matrix": [8, 2], "x": 11, "y": 3.1},
199 {"label": "R33", "matrix": [8, 3], "x": 12, "y": 3},
200 {"label": "R34", "matrix": [8, 4], "x": 13, "y": 3.1},
201 {"label": "R35", "matrix": [8, 5], "x": 14, "y": 3.3},
202 {"label": "R36", "matrix": [8, 6], "x": 15, "y": 3.3},
203 {"label": "R37", "matrix": [8, 7], "x": 16, "y": 3.3},
204 {"label": "L47", "matrix": [4, 7], "x": 0, "y": 3.3},
205 {"label": "L46", "matrix": [4, 6], "x": 1, "y": 3.3},
206 {"label": "L45", "matrix": [4, 5], "x": 2, "y": 3.3},
207 {"label": "L42", "matrix": [4, 2], "x": 5, "y": 3.1},
208 {"label": "L41", "matrix": [4, 1], "x": 6, "y": 3.2},
209 {"label": "L40", "matrix": [4, 0], "x": 7, "y": 3.7},
210 {"label": "R40", "matrix": [9, 0], "x": 9, "y": 3.7},
211 {"label": "R41", "matrix": [9, 1], "x": 10, "y": 3.2},
212 {"label": "R42", "matrix": [9, 2], "x": 11, "y": 3.1},
213 {"label": "R45", "matrix": [9, 5], "x": 14, "y": 3.3},
214 {"label": "R46", "matrix": [9, 6], "x": 15, "y": 3.3},
215 {"label": "R47", "matrix": [9, 7], "x": 16, "y": 3.3}
216 ]
217 }
218 }
219} \ No newline at end of file
diff --git a/keyboards/aidansmithdotdev/sango/keymaps/default/keymap.c b/keyboards/aidansmithdotdev/sango/keymaps/default/keymap.c
new file mode 100644
index 0000000000..a1730a7f86
--- /dev/null
+++ b/keyboards/aidansmithdotdev/sango/keymaps/default/keymap.c
@@ -0,0 +1,32 @@
1/* Copyright 2024 Aidan Smith <aidan@aidansmith.dev>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18enum layers {
19 _QWERTY,
20};
21
22
23// clang-format off
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 [_QWERTY] = LAYOUT(
26 KC_ESC , 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 ,
27 KC_DEL , 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 ,
28 KC_PGUP , KC_LCAP , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LCBR , KC_RCBR , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT ,
29 KC_PGDN , KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC , KC_RBRC , KC_N , KC_M , KC_DOT , KC_COMM , KC_SLSH , KC_UP , KC_BSLS ,
30 KC_LCTL , KC_LGUI , KC_LALT , KC_LCTL , KC_LALT , KC_BSPC , KC_SPC , KC_RGUI , KC_RALT , KC_LEFT , KC_DOWN , KC_RGHT
31 )
32};
diff --git a/keyboards/aidansmithdotdev/sango/readme.md b/keyboards/aidansmithdotdev/sango/readme.md
new file mode 100644
index 0000000000..415e21add4
--- /dev/null
+++ b/keyboards/aidansmithdotdev/sango/readme.md
@@ -0,0 +1,19 @@
1# Sango
2
3![aidansmithdotdev/sango](https://i.imgur.com/NzvLxqyh.jpg)
4
5An open source 65%ish split columnar low profile keyboard.
6
7* Keyboard Maintainer: [Aidan Smith](https://github.com/Aidan-OS)
8* Hardware Supported: Sango
9* Hardware Availability: https://github.com/Aidan-OS/Sango
10
11Make example for this keyboard (after setting up your build environment):
12
13 make aidansmithdotdev/sango:default
14
15Flashing example for this keyboard:
16
17 make aidansmithdotdev/sango: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).
diff --git a/keyboards/aidansmithdotdev/sango/rules.mk b/keyboards/aidansmithdotdev/sango/rules.mk
new file mode 100644
index 0000000000..743228e94b
--- /dev/null
+++ b/keyboards/aidansmithdotdev/sango/rules.mk
@@ -0,0 +1 @@
SERIAL_DRIVER = vendor \ No newline at end of file