diff options
23 files changed, 3073 insertions, 0 deletions
diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c new file mode 100644 index 000000000..652b6551d --- /dev/null +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c | |||
| @@ -0,0 +1,81 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include "quantum.h" | ||
| 18 | |||
| 19 | // "led_map" is taken from kaleidoscope | ||
| 20 | // LHK = Left Hand Keys | ||
| 21 | // LPH = "Leds per hand", which isn't _actually_ the number of leds, but instead | ||
| 22 | // is just used for indexing | ||
| 23 | #define LHK 33 | ||
| 24 | #define LPH 72 | ||
| 25 | |||
| 26 | const uint8_t led_map[DRIVER_LED_TOTAL] = { | ||
| 27 | // left side - 32 keys includes LP: key 19 is missing for ANSI layout | ||
| 28 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 0xff, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 68, 69, | ||
| 29 | |||
| 30 | // right side - 36 keys includes LP | ||
| 31 | 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 15 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 7 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, | ||
| 32 | 20 + LPH, 21 + LPH, 22 + LPH, 23 + LPH, 24 + LPH, 25 + LPH, 26 + LPH, 27 + LPH, 28 + LPH, 29 + LPH, 30 + LPH, 31 + LPH, 32 + LPH, 33 + LPH, 68 + LPH, 69 + LPH, | ||
| 33 | |||
| 34 | // left under glow - 30 | ||
| 35 | 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | ||
| 36 | |||
| 37 | // right underglow - 32 | ||
| 38 | 34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH, | ||
| 39 | 52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff | ||
| 40 | }; | ||
| 41 | |||
| 42 | // taken from "key_led_map" and reformatted | ||
| 43 | // ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map). | ||
| 44 | led_config_t g_led_config = { { | ||
| 45 | // left hand | ||
| 46 | { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } , | ||
| 47 | { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } , | ||
| 48 | { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } , | ||
| 49 | { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } , | ||
| 50 | { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , | ||
| 51 | |||
| 52 | // right hand | ||
| 53 | { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , | ||
| 54 | { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , | ||
| 55 | { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , | ||
| 56 | { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , | ||
| 57 | { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } | ||
| 58 | }, { | ||
| 59 | // generated from the svg image of the keyboard, see create-led-config.js | ||
| 60 | {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, | ||
| 61 | {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {85, 22}, | ||
| 62 | {0, 0}, | ||
| 63 | {94, 22}, {100, 22}, {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, | ||
| 64 | {118, 34}, {168, 3}, {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {168, 16}, {162, 10}, {156, 10}, | ||
| 65 | {150, 10}, {144, 10}, {139, 10}, {133, 10}, {127, 10}, {170, 10}, {159, 16}, {153, 16}, {147, 16}, {141, 16}, {135, 16}, | ||
| 66 | {129, 16}, {166, 22}, {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, | ||
| 67 | {140, 28}, {131, 28}, {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, | ||
| 68 | {122, 3}, {121, 9}, {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, | ||
| 69 | {103, 64}, {96, 64}, {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, | ||
| 70 | {175, 4}, {172, 0}, {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, | ||
| 71 | {124, 27}, {124, 33}, {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, | ||
| 72 | {173, 63}, {177, 59}, {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} | ||
| 73 | }, { | ||
| 74 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
| 75 | 0, | ||
| 76 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
| 77 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 78 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 79 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 | ||
| 80 | } | ||
| 81 | }; | ||
diff --git a/keyboards/handwired/dygma/raise/ansi/info.json b/keyboards/handwired/dygma/raise/ansi/info.json new file mode 100644 index 000000000..f7f9a07c1 --- /dev/null +++ b/keyboards/handwired/dygma/raise/ansi/info.json | |||
| @@ -0,0 +1,1115 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Dygma Raise", | ||
| 3 | "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/dygma/raise", | ||
| 4 | "maintainer": "ibash", | ||
| 5 | "layouts": { | ||
| 6 | "LAYOUT_all": { | ||
| 7 | "layout": [ | ||
| 8 | { | ||
| 9 | "label": "esc", | ||
| 10 | "x": 0, | ||
| 11 | "y": 0 | ||
| 12 | }, | ||
| 13 | { | ||
| 14 | "label": "1", | ||
| 15 | "x": 1, | ||
| 16 | "y": 0 | ||
| 17 | }, | ||
| 18 | { | ||
| 19 | "label": "2", | ||
| 20 | "x": 2, | ||
| 21 | "y": 0 | ||
| 22 | }, | ||
| 23 | { | ||
| 24 | "label": "3", | ||
| 25 | "x": 3, | ||
| 26 | "y": 0 | ||
| 27 | }, | ||
| 28 | { | ||
| 29 | "label": "4", | ||
| 30 | "x": 4, | ||
| 31 | "y": 0 | ||
| 32 | }, | ||
| 33 | { | ||
| 34 | "label": "5", | ||
| 35 | "x": 5, | ||
| 36 | "y": 0 | ||
| 37 | }, | ||
| 38 | { | ||
| 39 | "label": "6", | ||
| 40 | "x": 6, | ||
| 41 | "y": 0 | ||
| 42 | }, | ||
| 43 | { | ||
| 44 | "label": "7", | ||
| 45 | "x": 8.75, | ||
| 46 | "y": 0 | ||
| 47 | }, | ||
| 48 | { | ||
| 49 | "label": "8", | ||
| 50 | "x": 9.75, | ||
| 51 | "y": 0 | ||
| 52 | }, | ||
| 53 | { | ||
| 54 | "label": "9", | ||
| 55 | "x": 10.75, | ||
| 56 | "y": 0 | ||
| 57 | }, | ||
| 58 | { | ||
| 59 | "label": "0", | ||
| 60 | "x": 11.75, | ||
| 61 | "y": 0 | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | "label": "-", | ||
| 65 | "x": 12.75, | ||
| 66 | "y": 0 | ||
| 67 | }, | ||
| 68 | { | ||
| 69 | "label": "+", | ||
| 70 | "x": 13.75, | ||
| 71 | "y": 0 | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | "label": "backspace", | ||
| 75 | "w": 2, | ||
| 76 | "x": 14.75, | ||
| 77 | "y": 0 | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | "label": "tab", | ||
| 81 | "w": 1.5, | ||
| 82 | "x": 0, | ||
| 83 | "y": 1 | ||
| 84 | }, | ||
| 85 | { | ||
| 86 | "label": "Q", | ||
| 87 | "x": 1.5, | ||
| 88 | "y": 1 | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | "label": "W", | ||
| 92 | "x": 2.5, | ||
| 93 | "y": 1 | ||
| 94 | }, | ||
| 95 | { | ||
| 96 | "label": "E", | ||
| 97 | "x": 3.5, | ||
| 98 | "y": 1 | ||
| 99 | }, | ||
| 100 | { | ||
| 101 | "label": "R", | ||
| 102 | "x": 4.5, | ||
| 103 | "y": 1 | ||
| 104 | }, | ||
| 105 | { | ||
| 106 | "label": "T", | ||
| 107 | "x": 5.5, | ||
| 108 | "y": 1 | ||
| 109 | }, | ||
| 110 | { | ||
| 111 | "label": "Y", | ||
| 112 | "x": 8.25, | ||
| 113 | "y": 1 | ||
| 114 | }, | ||
| 115 | { | ||
| 116 | "label": "U", | ||
| 117 | "x": 9.25, | ||
| 118 | "y": 1 | ||
| 119 | }, | ||
| 120 | { | ||
| 121 | "label": "I", | ||
| 122 | "x": 10.25, | ||
| 123 | "y": 1 | ||
| 124 | }, | ||
| 125 | { | ||
| 126 | "label": "O", | ||
| 127 | "x": 11.25, | ||
| 128 | "y": 1 | ||
| 129 | }, | ||
| 130 | { | ||
| 131 | "label": "P", | ||
| 132 | "x": 12.25, | ||
| 133 | "y": 1 | ||
| 134 | }, | ||
| 135 | { | ||
| 136 | "label": "[", | ||
| 137 | "x": 13.25, | ||
| 138 | "y": 1 | ||
| 139 | }, | ||
| 140 | { | ||
| 141 | "label": "]", | ||
| 142 | "x": 14.25, | ||
| 143 | "y": 1 | ||
| 144 | }, | ||
| 145 | { | ||
| 146 | "label": "enter", | ||
| 147 | "h": 2, | ||
| 148 | "w": 1.25, | ||
| 149 | "x": 15.5, | ||
| 150 | "y": 1 | ||
| 151 | }, | ||
| 152 | { | ||
| 153 | "label": "caps", | ||
| 154 | "w": 1.75, | ||
| 155 | "x": 0, | ||
| 156 | "y": 2 | ||
| 157 | }, | ||
| 158 | { | ||
| 159 | "label": "A", | ||
| 160 | "x": 1.75, | ||
| 161 | "y": 2 | ||
| 162 | }, | ||
| 163 | { | ||
| 164 | "label": "S", | ||
| 165 | "x": 2.75, | ||
| 166 | "y": 2 | ||
| 167 | }, | ||
| 168 | { | ||
| 169 | "label": "D", | ||
| 170 | "x": 3.75, | ||
| 171 | "y": 2 | ||
| 172 | }, | ||
| 173 | { | ||
| 174 | "label": "F", | ||
| 175 | "x": 4.75, | ||
| 176 | "y": 2 | ||
| 177 | }, | ||
| 178 | { | ||
| 179 | "label": "G", | ||
| 180 | "x": 5.75, | ||
| 181 | "y": 2 | ||
| 182 | }, | ||
| 183 | { | ||
| 184 | "label": "H", | ||
| 185 | "x": 8.5, | ||
| 186 | "y": 2 | ||
| 187 | }, | ||
| 188 | { | ||
| 189 | "label": "J", | ||
| 190 | "x": 9.5, | ||
| 191 | "y": 2 | ||
| 192 | }, | ||
| 193 | { | ||
| 194 | "label": "K", | ||
| 195 | "x": 10.5, | ||
| 196 | "y": 2 | ||
| 197 | }, | ||
| 198 | { | ||
| 199 | "label": "L", | ||
| 200 | "x": 11.5, | ||
| 201 | "y": 2 | ||
| 202 | }, | ||
| 203 | { | ||
| 204 | "label": ";", | ||
| 205 | "x": 12.5, | ||
| 206 | "y": 2 | ||
| 207 | }, | ||
| 208 | { | ||
| 209 | "label": "'", | ||
| 210 | "x": 13.5, | ||
| 211 | "y": 2 | ||
| 212 | }, | ||
| 213 | { | ||
| 214 | "label": "#", | ||
| 215 | "x": 14.5, | ||
| 216 | "y": 2 | ||
| 217 | }, | ||
| 218 | { | ||
| 219 | "label": "shift", | ||
| 220 | "w": 1.25, | ||
| 221 | "x": 0, | ||
| 222 | "y": 3 | ||
| 223 | }, | ||
| 224 | { | ||
| 225 | "label": "\\", | ||
| 226 | "x": 1.25, | ||
| 227 | "y": 3 | ||
| 228 | }, | ||
| 229 | { | ||
| 230 | "label": "Z", | ||
| 231 | "x": 2.25, | ||
| 232 | "y": 3 | ||
| 233 | }, | ||
| 234 | { | ||
| 235 | "label": "X", | ||
| 236 | "x": 3.25, | ||
| 237 | "y": 3 | ||
| 238 | }, | ||
| 239 | { | ||
| 240 | "label": "C", | ||
| 241 | "x": 4.25, | ||
| 242 | "y": 3 | ||
| 243 | }, | ||
| 244 | { | ||
| 245 | "label": "V", | ||
| 246 | "x": 5.25, | ||
| 247 | "y": 3 | ||
| 248 | }, | ||
| 249 | { | ||
| 250 | "label": "B", | ||
| 251 | "x": 6.25, | ||
| 252 | "y": 3 | ||
| 253 | }, | ||
| 254 | { | ||
| 255 | "label": "N", | ||
| 256 | "x": 9, | ||
| 257 | "y": 3 | ||
| 258 | }, | ||
| 259 | { | ||
| 260 | "label": "M", | ||
| 261 | "x": 10, | ||
| 262 | "y": 3 | ||
| 263 | }, | ||
| 264 | { | ||
| 265 | "label": ",", | ||
| 266 | "x": 11, | ||
| 267 | "y": 3 | ||
| 268 | }, | ||
| 269 | { | ||
| 270 | "label": ".", | ||
| 271 | "x": 12, | ||
| 272 | "y": 3 | ||
| 273 | }, | ||
| 274 | { | ||
| 275 | "label": "/", | ||
| 276 | "x": 13, | ||
| 277 | "y": 3 | ||
| 278 | }, | ||
| 279 | { | ||
| 280 | "label": "shift", | ||
| 281 | "w": 2.75, | ||
| 282 | "x": 14, | ||
| 283 | "y": 3 | ||
| 284 | }, | ||
| 285 | { | ||
| 286 | "label": "ctrl", | ||
| 287 | "w": 1.25, | ||
| 288 | "x": 0, | ||
| 289 | "y": 4 | ||
| 290 | }, | ||
| 291 | { | ||
| 292 | "label": "os", | ||
| 293 | "w": 1.25, | ||
| 294 | "x": 1.25, | ||
| 295 | "y": 4 | ||
| 296 | }, | ||
| 297 | { | ||
| 298 | "label": "alt", | ||
| 299 | "w": 1.25, | ||
| 300 | "x": 2.5, | ||
| 301 | "y": 4 | ||
| 302 | }, | ||
| 303 | { | ||
| 304 | "label": "...", | ||
| 305 | "w": 1.5, | ||
| 306 | "x": 3.75, | ||
| 307 | "y": 4 | ||
| 308 | }, | ||
| 309 | { | ||
| 310 | "label": "\u2014", | ||
| 311 | "w": 1.5, | ||
| 312 | "x": 5.25, | ||
| 313 | "y": 4 | ||
| 314 | }, | ||
| 315 | { | ||
| 316 | "label": "\u2014", | ||
| 317 | "w": 1.5, | ||
| 318 | "x": 8.75, | ||
| 319 | "y": 4 | ||
| 320 | }, | ||
| 321 | { | ||
| 322 | "label": "...", | ||
| 323 | "w": 1.5, | ||
| 324 | "x": 10.25, | ||
| 325 | "y": 4 | ||
| 326 | }, | ||
| 327 | { | ||
| 328 | "label": "alt", | ||
| 329 | "w": 1.25, | ||
| 330 | "x": 11.75, | ||
| 331 | "y": 4 | ||
| 332 | }, | ||
| 333 | { | ||
| 334 | "label": "fn", | ||
| 335 | "w": 1.25, | ||
| 336 | "x": 13, | ||
| 337 | "y": 4 | ||
| 338 | }, | ||
| 339 | { | ||
| 340 | "label": "os", | ||
| 341 | "w": 1.25, | ||
| 342 | "x": 14.25, | ||
| 343 | "y": 4 | ||
| 344 | }, | ||
| 345 | { | ||
| 346 | "label": "ctrl", | ||
| 347 | "w": 1.25, | ||
| 348 | "x": 15.5, | ||
| 349 | "y": 4 | ||
| 350 | }, | ||
| 351 | { | ||
| 352 | "label": "..", | ||
| 353 | "w": 1.5, | ||
| 354 | "x": 3.75, | ||
| 355 | "y": 5 | ||
| 356 | }, | ||
| 357 | { | ||
| 358 | "label": ".", | ||
| 359 | "w": 1.5, | ||
| 360 | "x": 5.25, | ||
| 361 | "y": 5 | ||
| 362 | }, | ||
| 363 | { | ||
| 364 | "label": ".", | ||
| 365 | "w": 1.5, | ||
| 366 | "x": 8.75, | ||
| 367 | "y": 5 | ||
| 368 | }, | ||
| 369 | { | ||
| 370 | "label": "..", | ||
| 371 | "w": 1.5, | ||
| 372 | "x": 10.25, | ||
| 373 | "y": 5 | ||
| 374 | } | ||
| 375 | ] | ||
| 376 | }, | ||
| 377 | "LAYOUT_ansi": { | ||
| 378 | "layout": [ | ||
| 379 | { | ||
| 380 | "label": "esc", | ||
| 381 | "x": 0, | ||
| 382 | "y": 0 | ||
| 383 | }, | ||
| 384 | { | ||
| 385 | "label": "1", | ||
| 386 | "x": 1, | ||
| 387 | "y": 0 | ||
| 388 | }, | ||
| 389 | { | ||
| 390 | "label": "2", | ||
| 391 | "x": 2, | ||
| 392 | "y": 0 | ||
| 393 | }, | ||
| 394 | { | ||
| 395 | "label": "3", | ||
| 396 | "x": 3, | ||
| 397 | "y": 0 | ||
| 398 | }, | ||
| 399 | { | ||
| 400 | "label": "4", | ||
| 401 | "x": 4, | ||
| 402 | "y": 0 | ||
| 403 | }, | ||
| 404 | { | ||
| 405 | "label": "5", | ||
| 406 | "x": 5, | ||
| 407 | "y": 0 | ||
| 408 | }, | ||
| 409 | { | ||
| 410 | "label": "6", | ||
| 411 | "x": 6, | ||
| 412 | "y": 0 | ||
| 413 | }, | ||
| 414 | { | ||
| 415 | "label": "7", | ||
| 416 | "x": 8.75, | ||
| 417 | "y": 0 | ||
| 418 | }, | ||
| 419 | { | ||
| 420 | "label": "8", | ||
| 421 | "x": 9.75, | ||
| 422 | "y": 0 | ||
| 423 | }, | ||
| 424 | { | ||
| 425 | "label": "9", | ||
| 426 | "x": 10.75, | ||
| 427 | "y": 0 | ||
| 428 | }, | ||
| 429 | { | ||
| 430 | "label": "0", | ||
| 431 | "x": 11.75, | ||
| 432 | "y": 0 | ||
| 433 | }, | ||
| 434 | { | ||
| 435 | "label": "-", | ||
| 436 | "x": 12.75, | ||
| 437 | "y": 0 | ||
| 438 | }, | ||
| 439 | { | ||
| 440 | "label": "+", | ||
| 441 | "x": 13.75, | ||
| 442 | "y": 0 | ||
| 443 | }, | ||
| 444 | { | ||
| 445 | "label": "backspace", | ||
| 446 | "w": 2, | ||
| 447 | "x": 14.75, | ||
| 448 | "y": 0 | ||
| 449 | }, | ||
| 450 | { | ||
| 451 | "label": "tab", | ||
| 452 | "w": 1.5, | ||
| 453 | "x": 0, | ||
| 454 | "y": 1 | ||
| 455 | }, | ||
| 456 | { | ||
| 457 | "label": "Q", | ||
| 458 | "x": 1.5, | ||
| 459 | "y": 1 | ||
| 460 | }, | ||
| 461 | { | ||
| 462 | "label": "W", | ||
| 463 | "x": 2.5, | ||
| 464 | "y": 1 | ||
| 465 | }, | ||
| 466 | { | ||
| 467 | "label": "E", | ||
| 468 | "x": 3.5, | ||
| 469 | "y": 1 | ||
| 470 | }, | ||
| 471 | { | ||
| 472 | "label": "R", | ||
| 473 | "x": 4.5, | ||
| 474 | "y": 1 | ||
| 475 | }, | ||
| 476 | { | ||
| 477 | "label": "T", | ||
| 478 | "x": 5.5, | ||
| 479 | "y": 1 | ||
| 480 | }, | ||
| 481 | { | ||
| 482 | "label": "Y", | ||
| 483 | "x": 8.25, | ||
| 484 | "y": 1 | ||
| 485 | }, | ||
| 486 | { | ||
| 487 | "label": "U", | ||
| 488 | "x": 9.25, | ||
| 489 | "y": 1 | ||
| 490 | }, | ||
| 491 | { | ||
| 492 | "label": "I", | ||
| 493 | "x": 10.25, | ||
| 494 | "y": 1 | ||
| 495 | }, | ||
| 496 | { | ||
| 497 | "label": "O", | ||
| 498 | "x": 11.25, | ||
| 499 | "y": 1 | ||
| 500 | }, | ||
| 501 | { | ||
| 502 | "label": "P", | ||
| 503 | "x": 12.25, | ||
| 504 | "y": 1 | ||
| 505 | }, | ||
| 506 | { | ||
| 507 | "label": "{", | ||
| 508 | "x": 13.25, | ||
| 509 | "y": 1 | ||
| 510 | }, | ||
| 511 | { | ||
| 512 | "label": "}", | ||
| 513 | "x": 14.25, | ||
| 514 | "y": 1 | ||
| 515 | }, | ||
| 516 | { | ||
| 517 | "label": "\\", | ||
| 518 | "w": 1.5, | ||
| 519 | "x": 15.25, | ||
| 520 | "y": 1 | ||
| 521 | }, | ||
| 522 | { | ||
| 523 | "label": "caps", | ||
| 524 | "w": 1.75, | ||
| 525 | "x": 0, | ||
| 526 | "y": 2 | ||
| 527 | }, | ||
| 528 | { | ||
| 529 | "label": "A", | ||
| 530 | "x": 1.75, | ||
| 531 | "y": 2 | ||
| 532 | }, | ||
| 533 | { | ||
| 534 | "label": "S", | ||
| 535 | "x": 2.75, | ||
| 536 | "y": 2 | ||
| 537 | }, | ||
| 538 | { | ||
| 539 | "label": "D", | ||
| 540 | "x": 3.75, | ||
| 541 | "y": 2 | ||
| 542 | }, | ||
| 543 | { | ||
| 544 | "label": "F", | ||
| 545 | "x": 4.75, | ||
| 546 | "y": 2 | ||
| 547 | }, | ||
| 548 | { | ||
| 549 | "label": "G", | ||
| 550 | "x": 5.75, | ||
| 551 | "y": 2 | ||
| 552 | }, | ||
| 553 | { | ||
| 554 | "label": "H", | ||
| 555 | "x": 8.5, | ||
| 556 | "y": 2 | ||
| 557 | }, | ||
| 558 | { | ||
| 559 | "label": "J", | ||
| 560 | "x": 9.5, | ||
| 561 | "y": 2 | ||
| 562 | }, | ||
| 563 | { | ||
| 564 | "label": "K", | ||
| 565 | "x": 10.5, | ||
| 566 | "y": 2 | ||
| 567 | }, | ||
| 568 | { | ||
| 569 | "label": "L", | ||
| 570 | "x": 11.5, | ||
| 571 | "y": 2 | ||
| 572 | }, | ||
| 573 | { | ||
| 574 | "label": ";", | ||
| 575 | "x": 12.5, | ||
| 576 | "y": 2 | ||
| 577 | }, | ||
| 578 | { | ||
| 579 | "label": "'", | ||
| 580 | "x": 13.5, | ||
| 581 | "y": 2 | ||
| 582 | }, | ||
| 583 | { | ||
| 584 | "label": "enter", | ||
| 585 | "w": 2.25, | ||
| 586 | "x": 14.5, | ||
| 587 | "y": 2 | ||
| 588 | }, | ||
| 589 | { | ||
| 590 | "label": "shift", | ||
| 591 | "w": 2.25, | ||
| 592 | "x": 0, | ||
| 593 | "y": 3 | ||
| 594 | }, | ||
| 595 | { | ||
| 596 | "label": "Z", | ||
| 597 | "x": 2.25, | ||
| 598 | "y": 3 | ||
| 599 | }, | ||
| 600 | { | ||
| 601 | "label": "X", | ||
| 602 | "x": 3.25, | ||
| 603 | "y": 3 | ||
| 604 | }, | ||
| 605 | { | ||
| 606 | "label": "C", | ||
| 607 | "x": 4.25, | ||
| 608 | "y": 3 | ||
| 609 | }, | ||
| 610 | { | ||
| 611 | "label": "V", | ||
| 612 | "x": 5.25, | ||
| 613 | "y": 3 | ||
| 614 | }, | ||
| 615 | { | ||
| 616 | "label": "B", | ||
| 617 | "x": 6.25, | ||
| 618 | "y": 3 | ||
| 619 | }, | ||
| 620 | { | ||
| 621 | "label": "N", | ||
| 622 | "x": 9, | ||
| 623 | "y": 3 | ||
| 624 | }, | ||
| 625 | { | ||
| 626 | "label": "M", | ||
| 627 | "x": 10, | ||
| 628 | "y": 3 | ||
| 629 | }, | ||
| 630 | { | ||
| 631 | "label": ",", | ||
| 632 | "x": 11, | ||
| 633 | "y": 3 | ||
| 634 | }, | ||
| 635 | { | ||
| 636 | "label": ".", | ||
| 637 | "x": 12, | ||
| 638 | "y": 3 | ||
| 639 | }, | ||
| 640 | { | ||
| 641 | "label": "/", | ||
| 642 | "x": 13, | ||
| 643 | "y": 3 | ||
| 644 | }, | ||
| 645 | { | ||
| 646 | "label": "shift", | ||
| 647 | "w": 2.75, | ||
| 648 | "x": 14, | ||
| 649 | "y": 3 | ||
| 650 | }, | ||
| 651 | { | ||
| 652 | "label": "ctrl", | ||
| 653 | "w": 1.25, | ||
| 654 | "x": 0, | ||
| 655 | "y": 4 | ||
| 656 | }, | ||
| 657 | { | ||
| 658 | "label": "os", | ||
| 659 | "w": 1.25, | ||
| 660 | "x": 1.25, | ||
| 661 | "y": 4 | ||
| 662 | }, | ||
| 663 | { | ||
| 664 | "label": "alt", | ||
| 665 | "w": 1.25, | ||
| 666 | "x": 2.5, | ||
| 667 | "y": 4 | ||
| 668 | }, | ||
| 669 | { | ||
| 670 | "label": "...", | ||
| 671 | "w": 1.5, | ||
| 672 | "x": 3.75, | ||
| 673 | "y": 4 | ||
| 674 | }, | ||
| 675 | { | ||
| 676 | "label": "\u2014", | ||
| 677 | "w": 1.5, | ||
| 678 | "x": 5.25, | ||
| 679 | "y": 4 | ||
| 680 | }, | ||
| 681 | { | ||
| 682 | "label": "\u2014", | ||
| 683 | "w": 1.5, | ||
| 684 | "x": 8.75, | ||
| 685 | "y": 4 | ||
| 686 | }, | ||
| 687 | { | ||
| 688 | "label": "...", | ||
| 689 | "w": 1.5, | ||
| 690 | "x": 10.25, | ||
| 691 | "y": 4 | ||
| 692 | }, | ||
| 693 | { | ||
| 694 | "label": "alt", | ||
| 695 | "w": 1.25, | ||
| 696 | "x": 11.75, | ||
| 697 | "y": 4 | ||
| 698 | }, | ||
| 699 | { | ||
| 700 | "label": "fn", | ||
| 701 | "w": 1.25, | ||
| 702 | "x": 13, | ||
| 703 | "y": 4 | ||
| 704 | }, | ||
| 705 | { | ||
| 706 | "label": "os", | ||
| 707 | "w": 1.25, | ||
| 708 | "x": 14.25, | ||
| 709 | "y": 4 | ||
| 710 | }, | ||
| 711 | { | ||
| 712 | "label": "ctrl", | ||
| 713 | "w": 1.25, | ||
| 714 | "x": 15.5, | ||
| 715 | "y": 4 | ||
| 716 | }, | ||
| 717 | { | ||
| 718 | "label": "..", | ||
| 719 | "w": 1.5, | ||
| 720 | "x": 3.75, | ||
| 721 | "y": 5 | ||
| 722 | }, | ||
| 723 | { | ||
| 724 | "label": ".", | ||
| 725 | "w": 1.5, | ||
| 726 | "x": 5.25, | ||
| 727 | "y": 5 | ||
| 728 | }, | ||
| 729 | { | ||
| 730 | "label": ".", | ||
| 731 | "w": 1.5, | ||
| 732 | "x": 8.75, | ||
| 733 | "y": 5 | ||
| 734 | }, | ||
| 735 | { | ||
| 736 | "label": "..", | ||
| 737 | "w": 1.5, | ||
| 738 | "x": 10.25, | ||
| 739 | "y": 5 | ||
| 740 | } | ||
| 741 | ] | ||
| 742 | }, | ||
| 743 | "LAYOUT_iso": { | ||
| 744 | "layout": [ | ||
| 745 | { | ||
| 746 | "label": "esc", | ||
| 747 | "x": 0, | ||
| 748 | "y": 0 | ||
| 749 | }, | ||
| 750 | { | ||
| 751 | "label": "1", | ||
| 752 | "x": 1, | ||
| 753 | "y": 0 | ||
| 754 | }, | ||
| 755 | { | ||
| 756 | "label": "2", | ||
| 757 | "x": 2, | ||
| 758 | "y": 0 | ||
| 759 | }, | ||
| 760 | { | ||
| 761 | "label": "3", | ||
| 762 | "x": 3, | ||
| 763 | "y": 0 | ||
| 764 | }, | ||
| 765 | { | ||
| 766 | "label": "4", | ||
| 767 | "x": 4, | ||
| 768 | "y": 0 | ||
| 769 | }, | ||
| 770 | { | ||
| 771 | "label": "5", | ||
| 772 | "x": 5, | ||
| 773 | "y": 0 | ||
| 774 | }, | ||
| 775 | { | ||
| 776 | "label": "6", | ||
| 777 | "x": 6, | ||
| 778 | "y": 0 | ||
| 779 | }, | ||
| 780 | { | ||
| 781 | "label": "7", | ||
| 782 | "x": 8.75, | ||
| 783 | "y": 0 | ||
| 784 | }, | ||
| 785 | { | ||
| 786 | "label": "8", | ||
| 787 | "x": 9.75, | ||
| 788 | "y": 0 | ||
| 789 | }, | ||
| 790 | { | ||
| 791 | "label": "9", | ||
| 792 | "x": 10.75, | ||
| 793 | "y": 0 | ||
| 794 | }, | ||
| 795 | { | ||
| 796 | "label": "0", | ||
| 797 | "x": 11.75, | ||
| 798 | "y": 0 | ||
| 799 | }, | ||
| 800 | { | ||
| 801 | "label": "-", | ||
| 802 | "x": 12.75, | ||
| 803 | "y": 0 | ||
| 804 | }, | ||
| 805 | { | ||
| 806 | "label": "+", | ||
| 807 | "x": 13.75, | ||
| 808 | "y": 0 | ||
| 809 | }, | ||
| 810 | { | ||
| 811 | "label": "backspace", | ||
| 812 | "w": 2, | ||
| 813 | "x": 14.75, | ||
| 814 | "y": 0 | ||
| 815 | }, | ||
| 816 | { | ||
| 817 | "label": "tab", | ||
| 818 | "w": 1.5, | ||
| 819 | "x": 0, | ||
| 820 | "y": 1 | ||
| 821 | }, | ||
| 822 | { | ||
| 823 | "label": "Q", | ||
| 824 | "x": 1.5, | ||
| 825 | "y": 1 | ||
| 826 | }, | ||
| 827 | { | ||
| 828 | "label": "W", | ||
| 829 | "x": 2.5, | ||
| 830 | "y": 1 | ||
| 831 | }, | ||
| 832 | { | ||
| 833 | "label": "E", | ||
| 834 | "x": 3.5, | ||
| 835 | "y": 1 | ||
| 836 | }, | ||
| 837 | { | ||
| 838 | "label": "R", | ||
| 839 | "x": 4.5, | ||
| 840 | "y": 1 | ||
| 841 | }, | ||
| 842 | { | ||
| 843 | "label": "T", | ||
| 844 | "x": 5.5, | ||
| 845 | "y": 1 | ||
| 846 | }, | ||
| 847 | { | ||
| 848 | "label": "Y", | ||
| 849 | "x": 8.25, | ||
| 850 | "y": 1 | ||
| 851 | }, | ||
| 852 | { | ||
| 853 | "label": "U", | ||
| 854 | "x": 9.25, | ||
| 855 | "y": 1 | ||
| 856 | }, | ||
| 857 | { | ||
| 858 | "label": "I", | ||
| 859 | "x": 10.25, | ||
| 860 | "y": 1 | ||
| 861 | }, | ||
| 862 | { | ||
| 863 | "label": "O", | ||
| 864 | "x": 11.25, | ||
| 865 | "y": 1 | ||
| 866 | }, | ||
| 867 | { | ||
| 868 | "label": "P", | ||
| 869 | "x": 12.25, | ||
| 870 | "y": 1 | ||
| 871 | }, | ||
| 872 | { | ||
| 873 | "label": "[", | ||
| 874 | "x": 13.25, | ||
| 875 | "y": 1 | ||
| 876 | }, | ||
| 877 | { | ||
| 878 | "label": "]", | ||
| 879 | "x": 14.25, | ||
| 880 | "y": 1 | ||
| 881 | }, | ||
| 882 | { | ||
| 883 | "label": "enter", | ||
| 884 | "h": 2, | ||
| 885 | "w": 1.25, | ||
| 886 | "x": 15.5, | ||
| 887 | "y": 1 | ||
| 888 | }, | ||
| 889 | { | ||
| 890 | "label": "caps", | ||
| 891 | "w": 1.75, | ||
| 892 | "x": 0, | ||
| 893 | "y": 2 | ||
| 894 | }, | ||
| 895 | { | ||
| 896 | "label": "A", | ||
| 897 | "x": 1.75, | ||
| 898 | "y": 2 | ||
| 899 | }, | ||
| 900 | { | ||
| 901 | "label": "S", | ||
| 902 | "x": 2.75, | ||
| 903 | "y": 2 | ||
| 904 | }, | ||
| 905 | { | ||
| 906 | "label": "D", | ||
| 907 | "x": 3.75, | ||
| 908 | "y": 2 | ||
| 909 | }, | ||
| 910 | { | ||
| 911 | "label": "F", | ||
| 912 | "x": 4.75, | ||
| 913 | "y": 2 | ||
| 914 | }, | ||
| 915 | { | ||
| 916 | "label": "G", | ||
| 917 | "x": 5.75, | ||
| 918 | "y": 2 | ||
| 919 | }, | ||
| 920 | { | ||
| 921 | "label": "H", | ||
| 922 | "x": 8.5, | ||
| 923 | "y": 2 | ||
| 924 | }, | ||
| 925 | { | ||
| 926 | "label": "J", | ||
| 927 | "x": 9.5, | ||
| 928 | "y": 2 | ||
| 929 | }, | ||
| 930 | { | ||
| 931 | "label": "K", | ||
| 932 | "x": 10.5, | ||
| 933 | "y": 2 | ||
| 934 | }, | ||
| 935 | { | ||
| 936 | "label": "L", | ||
| 937 | "x": 11.5, | ||
| 938 | "y": 2 | ||
| 939 | }, | ||
| 940 | { | ||
| 941 | "label": ";", | ||
| 942 | "x": 12.5, | ||
| 943 | "y": 2 | ||
| 944 | }, | ||
| 945 | { | ||
| 946 | "label": "'", | ||
| 947 | "x": 13.5, | ||
| 948 | "y": 2 | ||
| 949 | }, | ||
| 950 | { | ||
| 951 | "label": "#", | ||
| 952 | "x": 14.5, | ||
| 953 | "y": 2 | ||
| 954 | }, | ||
| 955 | { | ||
| 956 | "label": "shift", | ||
| 957 | "w": 1.25, | ||
| 958 | "x": 0, | ||
| 959 | "y": 3 | ||
| 960 | }, | ||
| 961 | { | ||
| 962 | "label": "\\", | ||
| 963 | "x": 1.25, | ||
| 964 | "y": 3 | ||
| 965 | }, | ||
| 966 | { | ||
| 967 | "label": "Z", | ||
| 968 | "x": 2.25, | ||
| 969 | "y": 3 | ||
| 970 | }, | ||
| 971 | { | ||
| 972 | "label": "X", | ||
| 973 | "x": 3.25, | ||
| 974 | "y": 3 | ||
| 975 | }, | ||
| 976 | { | ||
| 977 | "label": "C", | ||
| 978 | "x": 4.25, | ||
| 979 | "y": 3 | ||
| 980 | }, | ||
| 981 | { | ||
| 982 | "label": "V", | ||
| 983 | "x": 5.25, | ||
| 984 | "y": 3 | ||
| 985 | }, | ||
| 986 | { | ||
| 987 | "label": "B", | ||
| 988 | "x": 6.25, | ||
| 989 | "y": 3 | ||
| 990 | }, | ||
| 991 | { | ||
| 992 | "label": "N", | ||
| 993 | "x": 9, | ||
| 994 | "y": 3 | ||
| 995 | }, | ||
| 996 | { | ||
| 997 | "label": "M", | ||
| 998 | "x": 10, | ||
| 999 | "y": 3 | ||
| 1000 | }, | ||
| 1001 | { | ||
| 1002 | "label": ",", | ||
| 1003 | "x": 11, | ||
| 1004 | "y": 3 | ||
| 1005 | }, | ||
| 1006 | { | ||
| 1007 | "label": ".", | ||
| 1008 | "x": 12, | ||
| 1009 | "y": 3 | ||
| 1010 | }, | ||
| 1011 | { | ||
| 1012 | "label": "/", | ||
| 1013 | "x": 13, | ||
| 1014 | "y": 3 | ||
| 1015 | }, | ||
| 1016 | { | ||
| 1017 | "label": "shift", | ||
| 1018 | "w": 2.75, | ||
| 1019 | "x": 14, | ||
| 1020 | "y": 3 | ||
| 1021 | }, | ||
| 1022 | { | ||
| 1023 | "label": "ctrl", | ||
| 1024 | "w": 1.25, | ||
| 1025 | "x": 0, | ||
| 1026 | "y": 4 | ||
| 1027 | }, | ||
| 1028 | { | ||
| 1029 | "label": "os", | ||
| 1030 | "w": 1.25, | ||
| 1031 | "x": 1.25, | ||
| 1032 | "y": 4 | ||
| 1033 | }, | ||
| 1034 | { | ||
| 1035 | "label": "alt", | ||
| 1036 | "w": 1.25, | ||
| 1037 | "x": 2.5, | ||
| 1038 | "y": 4 | ||
| 1039 | }, | ||
| 1040 | { | ||
| 1041 | "label": "...", | ||
| 1042 | "w": 1.5, | ||
| 1043 | "x": 3.75, | ||
| 1044 | "y": 4 | ||
| 1045 | }, | ||
| 1046 | { | ||
| 1047 | "label": "\u2014", | ||
| 1048 | "w": 1.5, | ||
| 1049 | "x": 5.25, | ||
| 1050 | "y": 4 | ||
| 1051 | }, | ||
| 1052 | { | ||
| 1053 | "label": "\u2014", | ||
| 1054 | "w": 1.5, | ||
| 1055 | "x": 8.75, | ||
| 1056 | "y": 4 | ||
| 1057 | }, | ||
| 1058 | { | ||
| 1059 | "label": "...", | ||
| 1060 | "w": 1.5, | ||
| 1061 | "x": 10.25, | ||
| 1062 | "y": 4 | ||
| 1063 | }, | ||
| 1064 | { | ||
| 1065 | "label": "alt", | ||
| 1066 | "w": 1.25, | ||
| 1067 | "x": 11.75, | ||
| 1068 | "y": 4 | ||
| 1069 | }, | ||
| 1070 | { | ||
| 1071 | "label": "fn", | ||
| 1072 | "w": 1.25, | ||
| 1073 | "x": 13, | ||
| 1074 | "y": 4 | ||
| 1075 | }, | ||
| 1076 | { | ||
| 1077 | "label": "os", | ||
| 1078 | "w": 1.25, | ||
| 1079 | "x": 14.25, | ||
| 1080 | "y": 4 | ||
| 1081 | }, | ||
| 1082 | { | ||
| 1083 | "label": "ctrl", | ||
| 1084 | "w": 1.25, | ||
| 1085 | "x": 15.5, | ||
| 1086 | "y": 4 | ||
| 1087 | }, | ||
| 1088 | { | ||
| 1089 | "label": "..", | ||
| 1090 | "w": 1.5, | ||
| 1091 | "x": 3.75, | ||
| 1092 | "y": 5 | ||
| 1093 | }, | ||
| 1094 | { | ||
| 1095 | "label": ".", | ||
| 1096 | "w": 1.5, | ||
| 1097 | "x": 5.25, | ||
| 1098 | "y": 5 | ||
| 1099 | }, | ||
| 1100 | { | ||
| 1101 | "label": ".", | ||
| 1102 | "w": 1.5, | ||
| 1103 | "x": 8.75, | ||
| 1104 | "y": 5 | ||
| 1105 | }, | ||
| 1106 | { | ||
| 1107 | "label": "..", | ||
| 1108 | "w": 1.5, | ||
| 1109 | "x": 10.25, | ||
| 1110 | "y": 5 | ||
| 1111 | } | ||
| 1112 | ] | ||
| 1113 | } | ||
| 1114 | } | ||
| 1115 | } | ||
diff --git a/keyboards/handwired/dygma/raise/ansi/rules.mk b/keyboards/handwired/dygma/raise/ansi/rules.mk new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/handwired/dygma/raise/ansi/rules.mk | |||
diff --git a/keyboards/handwired/dygma/raise/config.h b/keyboards/handwired/dygma/raise/config.h new file mode 100644 index 000000000..674fd592c --- /dev/null +++ b/keyboards/handwired/dygma/raise/config.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | /* Copyright 2021 Islam Sharabash | ||
| 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 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | /* USB Device descriptor parameter */ | ||
| 21 | #define VENDOR_ID 0x1209 | ||
| 22 | #define PRODUCT_ID 0x2201 | ||
| 23 | #define DEVICE_VER 0x0001 | ||
| 24 | #define MANUFACTURER Dygma | ||
| 25 | #define PRODUCT Raise | ||
| 26 | |||
| 27 | /* key matrix size */ | ||
| 28 | // rows are doubled for split | ||
| 29 | #define MATRIX_ROWS 10 | ||
| 30 | #define MATRIX_COLS 8 | ||
| 31 | /* The scanners already debounce for us */ | ||
| 32 | #define DEBOUNCE 0 | ||
| 33 | |||
| 34 | #define DRIVER_LED_TOTAL 132 | ||
diff --git a/keyboards/handwired/dygma/raise/halconf.h b/keyboards/handwired/dygma/raise/halconf.h new file mode 100644 index 000000000..ebe78c3be --- /dev/null +++ b/keyboards/handwired/dygma/raise/halconf.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright (C) 2021 QMK | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #define HAL_USE_I2C TRUE | ||
| 20 | |||
| 21 | #include_next <halconf.h> | ||
diff --git a/keyboards/handwired/dygma/raise/iso/info.json b/keyboards/handwired/dygma/raise/iso/info.json new file mode 100644 index 000000000..f7f9a07c1 --- /dev/null +++ b/keyboards/handwired/dygma/raise/iso/info.json | |||
| @@ -0,0 +1,1115 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Dygma Raise", | ||
| 3 | "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/dygma/raise", | ||
| 4 | "maintainer": "ibash", | ||
| 5 | "layouts": { | ||
| 6 | "LAYOUT_all": { | ||
| 7 | "layout": [ | ||
| 8 | { | ||
| 9 | "label": "esc", | ||
| 10 | "x": 0, | ||
| 11 | "y": 0 | ||
| 12 | }, | ||
| 13 | { | ||
| 14 | "label": "1", | ||
| 15 | "x": 1, | ||
| 16 | "y": 0 | ||
| 17 | }, | ||
| 18 | { | ||
| 19 | "label": "2", | ||
| 20 | "x": 2, | ||
| 21 | "y": 0 | ||
| 22 | }, | ||
| 23 | { | ||
| 24 | "label": "3", | ||
| 25 | "x": 3, | ||
| 26 | "y": 0 | ||
| 27 | }, | ||
| 28 | { | ||
| 29 | "label": "4", | ||
| 30 | "x": 4, | ||
| 31 | "y": 0 | ||
| 32 | }, | ||
| 33 | { | ||
| 34 | "label": "5", | ||
| 35 | "x": 5, | ||
| 36 | "y": 0 | ||
| 37 | }, | ||
| 38 | { | ||
| 39 | "label": "6", | ||
| 40 | "x": 6, | ||
| 41 | "y": 0 | ||
| 42 | }, | ||
| 43 | { | ||
| 44 | "label": "7", | ||
| 45 | "x": 8.75, | ||
| 46 | "y": 0 | ||
| 47 | }, | ||
| 48 | { | ||
| 49 | "label": "8", | ||
| 50 | "x": 9.75, | ||
| 51 | "y": 0 | ||
| 52 | }, | ||
| 53 | { | ||
| 54 | "label": "9", | ||
| 55 | "x": 10.75, | ||
| 56 | "y": 0 | ||
| 57 | }, | ||
| 58 | { | ||
| 59 | "label": "0", | ||
| 60 | "x": 11.75, | ||
| 61 | "y": 0 | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | "label": "-", | ||
| 65 | "x": 12.75, | ||
| 66 | "y": 0 | ||
| 67 | }, | ||
| 68 | { | ||
| 69 | "label": "+", | ||
| 70 | "x": 13.75, | ||
| 71 | "y": 0 | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | "label": "backspace", | ||
| 75 | "w": 2, | ||
| 76 | "x": 14.75, | ||
| 77 | "y": 0 | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | "label": "tab", | ||
| 81 | "w": 1.5, | ||
| 82 | "x": 0, | ||
| 83 | "y": 1 | ||
| 84 | }, | ||
| 85 | { | ||
| 86 | "label": "Q", | ||
| 87 | "x": 1.5, | ||
| 88 | "y": 1 | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | "label": "W", | ||
| 92 | "x": 2.5, | ||
| 93 | "y": 1 | ||
| 94 | }, | ||
| 95 | { | ||
| 96 | "label": "E", | ||
| 97 | "x": 3.5, | ||
| 98 | "y": 1 | ||
| 99 | }, | ||
| 100 | { | ||
| 101 | "label": "R", | ||
| 102 | "x": 4.5, | ||
| 103 | "y": 1 | ||
| 104 | }, | ||
| 105 | { | ||
| 106 | "label": "T", | ||
| 107 | "x": 5.5, | ||
| 108 | "y": 1 | ||
| 109 | }, | ||
| 110 | { | ||
| 111 | "label": "Y", | ||
| 112 | "x": 8.25, | ||
| 113 | "y": 1 | ||
| 114 | }, | ||
| 115 | { | ||
| 116 | "label": "U", | ||
| 117 | "x": 9.25, | ||
| 118 | "y": 1 | ||
| 119 | }, | ||
| 120 | { | ||
| 121 | "label": "I", | ||
| 122 | "x": 10.25, | ||
| 123 | "y": 1 | ||
| 124 | }, | ||
| 125 | { | ||
| 126 | "label": "O", | ||
| 127 | "x": 11.25, | ||
| 128 | "y": 1 | ||
| 129 | }, | ||
| 130 | { | ||
| 131 | "label": "P", | ||
| 132 | "x": 12.25, | ||
| 133 | "y": 1 | ||
| 134 | }, | ||
| 135 | { | ||
| 136 | "label": "[", | ||
| 137 | "x": 13.25, | ||
| 138 | "y": 1 | ||
| 139 | }, | ||
| 140 | { | ||
| 141 | "label": "]", | ||
| 142 | "x": 14.25, | ||
| 143 | "y": 1 | ||
| 144 | }, | ||
| 145 | { | ||
| 146 | "label": "enter", | ||
| 147 | "h": 2, | ||
| 148 | "w": 1.25, | ||
| 149 | "x": 15.5, | ||
| 150 | "y": 1 | ||
| 151 | }, | ||
| 152 | { | ||
| 153 | "label": "caps", | ||
| 154 | "w": 1.75, | ||
| 155 | "x": 0, | ||
| 156 | "y": 2 | ||
| 157 | }, | ||
| 158 | { | ||
| 159 | "label": "A", | ||
| 160 | "x": 1.75, | ||
| 161 | "y": 2 | ||
| 162 | }, | ||
| 163 | { | ||
| 164 | "label": "S", | ||
| 165 | "x": 2.75, | ||
| 166 | "y": 2 | ||
| 167 | }, | ||
| 168 | { | ||
| 169 | "label": "D", | ||
| 170 | "x": 3.75, | ||
| 171 | "y": 2 | ||
| 172 | }, | ||
| 173 | { | ||
| 174 | "label": "F", | ||
| 175 | "x": 4.75, | ||
| 176 | "y": 2 | ||
| 177 | }, | ||
| 178 | { | ||
| 179 | "label": "G", | ||
| 180 | "x": 5.75, | ||
| 181 | "y": 2 | ||
| 182 | }, | ||
| 183 | { | ||
| 184 | "label": "H", | ||
| 185 | "x": 8.5, | ||
| 186 | "y": 2 | ||
| 187 | }, | ||
| 188 | { | ||
| 189 | "label": "J", | ||
| 190 | "x": 9.5, | ||
| 191 | "y": 2 | ||
| 192 | }, | ||
| 193 | { | ||
| 194 | "label": "K", | ||
| 195 | "x": 10.5, | ||
| 196 | "y": 2 | ||
| 197 | }, | ||
| 198 | { | ||
| 199 | "label": "L", | ||
| 200 | "x": 11.5, | ||
| 201 | "y": 2 | ||
| 202 | }, | ||
| 203 | { | ||
| 204 | "label": ";", | ||
| 205 | "x": 12.5, | ||
| 206 | "y": 2 | ||
| 207 | }, | ||
| 208 | { | ||
| 209 | "label": "'", | ||
| 210 | "x": 13.5, | ||
| 211 | "y": 2 | ||
| 212 | }, | ||
| 213 | { | ||
| 214 | "label": "#", | ||
| 215 | "x": 14.5, | ||
| 216 | "y": 2 | ||
| 217 | }, | ||
| 218 | { | ||
| 219 | "label": "shift", | ||
| 220 | "w": 1.25, | ||
| 221 | "x": 0, | ||
| 222 | "y": 3 | ||
| 223 | }, | ||
| 224 | { | ||
| 225 | "label": "\\", | ||
| 226 | "x": 1.25, | ||
| 227 | "y": 3 | ||
| 228 | }, | ||
| 229 | { | ||
| 230 | "label": "Z", | ||
| 231 | "x": 2.25, | ||
| 232 | "y": 3 | ||
| 233 | }, | ||
| 234 | { | ||
| 235 | "label": "X", | ||
| 236 | "x": 3.25, | ||
| 237 | "y": 3 | ||
| 238 | }, | ||
| 239 | { | ||
| 240 | "label": "C", | ||
| 241 | "x": 4.25, | ||
| 242 | "y": 3 | ||
| 243 | }, | ||
| 244 | { | ||
| 245 | "label": "V", | ||
| 246 | "x": 5.25, | ||
| 247 | "y": 3 | ||
| 248 | }, | ||
| 249 | { | ||
| 250 | "label": "B", | ||
| 251 | "x": 6.25, | ||
| 252 | "y": 3 | ||
| 253 | }, | ||
| 254 | { | ||
| 255 | "label": "N", | ||
| 256 | "x": 9, | ||
| 257 | "y": 3 | ||
| 258 | }, | ||
| 259 | { | ||
| 260 | "label": "M", | ||
| 261 | "x": 10, | ||
| 262 | "y": 3 | ||
| 263 | }, | ||
| 264 | { | ||
| 265 | "label": ",", | ||
| 266 | "x": 11, | ||
| 267 | "y": 3 | ||
| 268 | }, | ||
| 269 | { | ||
| 270 | "label": ".", | ||
| 271 | "x": 12, | ||
| 272 | "y": 3 | ||
| 273 | }, | ||
| 274 | { | ||
| 275 | "label": "/", | ||
| 276 | "x": 13, | ||
| 277 | "y": 3 | ||
| 278 | }, | ||
| 279 | { | ||
| 280 | "label": "shift", | ||
| 281 | "w": 2.75, | ||
| 282 | "x": 14, | ||
| 283 | "y": 3 | ||
| 284 | }, | ||
| 285 | { | ||
| 286 | "label": "ctrl", | ||
| 287 | "w": 1.25, | ||
| 288 | "x": 0, | ||
| 289 | "y": 4 | ||
| 290 | }, | ||
| 291 | { | ||
| 292 | "label": "os", | ||
| 293 | "w": 1.25, | ||
| 294 | "x": 1.25, | ||
| 295 | "y": 4 | ||
| 296 | }, | ||
| 297 | { | ||
| 298 | "label": "alt", | ||
| 299 | "w": 1.25, | ||
| 300 | "x": 2.5, | ||
| 301 | "y": 4 | ||
| 302 | }, | ||
| 303 | { | ||
| 304 | "label": "...", | ||
| 305 | "w": 1.5, | ||
| 306 | "x": 3.75, | ||
| 307 | "y": 4 | ||
| 308 | }, | ||
| 309 | { | ||
| 310 | "label": "\u2014", | ||
| 311 | "w": 1.5, | ||
| 312 | "x": 5.25, | ||
| 313 | "y": 4 | ||
| 314 | }, | ||
| 315 | { | ||
| 316 | "label": "\u2014", | ||
| 317 | "w": 1.5, | ||
| 318 | "x": 8.75, | ||
| 319 | "y": 4 | ||
| 320 | }, | ||
| 321 | { | ||
| 322 | "label": "...", | ||
| 323 | "w": 1.5, | ||
| 324 | "x": 10.25, | ||
| 325 | "y": 4 | ||
| 326 | }, | ||
| 327 | { | ||
| 328 | "label": "alt", | ||
| 329 | "w": 1.25, | ||
| 330 | "x": 11.75, | ||
| 331 | "y": 4 | ||
| 332 | }, | ||
| 333 | { | ||
| 334 | "label": "fn", | ||
| 335 | "w": 1.25, | ||
| 336 | "x": 13, | ||
| 337 | "y": 4 | ||
| 338 | }, | ||
| 339 | { | ||
| 340 | "label": "os", | ||
| 341 | "w": 1.25, | ||
| 342 | "x": 14.25, | ||
| 343 | "y": 4 | ||
| 344 | }, | ||
| 345 | { | ||
| 346 | "label": "ctrl", | ||
| 347 | "w": 1.25, | ||
| 348 | "x": 15.5, | ||
| 349 | "y": 4 | ||
| 350 | }, | ||
| 351 | { | ||
| 352 | "label": "..", | ||
| 353 | "w": 1.5, | ||
| 354 | "x": 3.75, | ||
| 355 | "y": 5 | ||
| 356 | }, | ||
| 357 | { | ||
| 358 | "label": ".", | ||
| 359 | "w": 1.5, | ||
| 360 | "x": 5.25, | ||
| 361 | "y": 5 | ||
| 362 | }, | ||
| 363 | { | ||
| 364 | "label": ".", | ||
| 365 | "w": 1.5, | ||
| 366 | "x": 8.75, | ||
| 367 | "y": 5 | ||
| 368 | }, | ||
| 369 | { | ||
| 370 | "label": "..", | ||
| 371 | "w": 1.5, | ||
| 372 | "x": 10.25, | ||
| 373 | "y": 5 | ||
| 374 | } | ||
| 375 | ] | ||
| 376 | }, | ||
| 377 | "LAYOUT_ansi": { | ||
| 378 | "layout": [ | ||
| 379 | { | ||
| 380 | "label": "esc", | ||
| 381 | "x": 0, | ||
| 382 | "y": 0 | ||
| 383 | }, | ||
| 384 | { | ||
| 385 | "label": "1", | ||
| 386 | "x": 1, | ||
| 387 | "y": 0 | ||
| 388 | }, | ||
| 389 | { | ||
| 390 | "label": "2", | ||
| 391 | "x": 2, | ||
| 392 | "y": 0 | ||
| 393 | }, | ||
| 394 | { | ||
| 395 | "label": "3", | ||
| 396 | "x": 3, | ||
| 397 | "y": 0 | ||
| 398 | }, | ||
| 399 | { | ||
| 400 | "label": "4", | ||
| 401 | "x": 4, | ||
| 402 | "y": 0 | ||
| 403 | }, | ||
| 404 | { | ||
| 405 | "label": "5", | ||
| 406 | "x": 5, | ||
| 407 | "y": 0 | ||
| 408 | }, | ||
| 409 | { | ||
| 410 | "label": "6", | ||
| 411 | "x": 6, | ||
| 412 | "y": 0 | ||
| 413 | }, | ||
| 414 | { | ||
| 415 | "label": "7", | ||
| 416 | "x": 8.75, | ||
| 417 | "y": 0 | ||
| 418 | }, | ||
| 419 | { | ||
| 420 | "label": "8", | ||
| 421 | "x": 9.75, | ||
| 422 | "y": 0 | ||
| 423 | }, | ||
| 424 | { | ||
| 425 | "label": "9", | ||
| 426 | "x": 10.75, | ||
| 427 | "y": 0 | ||
| 428 | }, | ||
| 429 | { | ||
| 430 | "label": "0", | ||
| 431 | "x": 11.75, | ||
| 432 | "y": 0 | ||
| 433 | }, | ||
| 434 | { | ||
| 435 | "label": "-", | ||
| 436 | "x": 12.75, | ||
| 437 | "y": 0 | ||
| 438 | }, | ||
| 439 | { | ||
| 440 | "label": "+", | ||
| 441 | "x": 13.75, | ||
| 442 | "y": 0 | ||
| 443 | }, | ||
| 444 | { | ||
| 445 | "label": "backspace", | ||
| 446 | "w": 2, | ||
| 447 | "x": 14.75, | ||
| 448 | "y": 0 | ||
| 449 | }, | ||
| 450 | { | ||
| 451 | "label": "tab", | ||
| 452 | "w": 1.5, | ||
| 453 | "x": 0, | ||
| 454 | "y": 1 | ||
| 455 | }, | ||
| 456 | { | ||
| 457 | "label": "Q", | ||
| 458 | "x": 1.5, | ||
| 459 | "y": 1 | ||
| 460 | }, | ||
| 461 | { | ||
| 462 | "label": "W", | ||
| 463 | "x": 2.5, | ||
| 464 | "y": 1 | ||
| 465 | }, | ||
| 466 | { | ||
| 467 | "label": "E", | ||
| 468 | "x": 3.5, | ||
| 469 | "y": 1 | ||
| 470 | }, | ||
| 471 | { | ||
| 472 | "label": "R", | ||
| 473 | "x": 4.5, | ||
| 474 | "y": 1 | ||
| 475 | }, | ||
| 476 | { | ||
| 477 | "label": "T", | ||
| 478 | "x": 5.5, | ||
| 479 | "y": 1 | ||
| 480 | }, | ||
| 481 | { | ||
| 482 | "label": "Y", | ||
| 483 | "x": 8.25, | ||
| 484 | "y": 1 | ||
| 485 | }, | ||
| 486 | { | ||
| 487 | "label": "U", | ||
| 488 | "x": 9.25, | ||
| 489 | "y": 1 | ||
| 490 | }, | ||
| 491 | { | ||
| 492 | "label": "I", | ||
| 493 | "x": 10.25, | ||
| 494 | "y": 1 | ||
| 495 | }, | ||
| 496 | { | ||
| 497 | "label": "O", | ||
| 498 | "x": 11.25, | ||
| 499 | "y": 1 | ||
| 500 | }, | ||
| 501 | { | ||
| 502 | "label": "P", | ||
| 503 | "x": 12.25, | ||
| 504 | "y": 1 | ||
| 505 | }, | ||
| 506 | { | ||
| 507 | "label": "{", | ||
| 508 | "x": 13.25, | ||
| 509 | "y": 1 | ||
| 510 | }, | ||
| 511 | { | ||
| 512 | "label": "}", | ||
| 513 | "x": 14.25, | ||
| 514 | "y": 1 | ||
| 515 | }, | ||
| 516 | { | ||
| 517 | "label": "\\", | ||
| 518 | "w": 1.5, | ||
| 519 | "x": 15.25, | ||
| 520 | "y": 1 | ||
| 521 | }, | ||
| 522 | { | ||
| 523 | "label": "caps", | ||
| 524 | "w": 1.75, | ||
| 525 | "x": 0, | ||
| 526 | "y": 2 | ||
| 527 | }, | ||
| 528 | { | ||
| 529 | "label": "A", | ||
| 530 | "x": 1.75, | ||
| 531 | "y": 2 | ||
| 532 | }, | ||
| 533 | { | ||
| 534 | "label": "S", | ||
| 535 | "x": 2.75, | ||
| 536 | "y": 2 | ||
| 537 | }, | ||
| 538 | { | ||
| 539 | "label": "D", | ||
| 540 | "x": 3.75, | ||
| 541 | "y": 2 | ||
| 542 | }, | ||
| 543 | { | ||
| 544 | "label": "F", | ||
| 545 | "x": 4.75, | ||
| 546 | "y": 2 | ||
| 547 | }, | ||
| 548 | { | ||
| 549 | "label": "G", | ||
| 550 | "x": 5.75, | ||
| 551 | "y": 2 | ||
| 552 | }, | ||
| 553 | { | ||
| 554 | "label": "H", | ||
| 555 | "x": 8.5, | ||
| 556 | "y": 2 | ||
| 557 | }, | ||
| 558 | { | ||
| 559 | "label": "J", | ||
| 560 | "x": 9.5, | ||
| 561 | "y": 2 | ||
| 562 | }, | ||
| 563 | { | ||
| 564 | "label": "K", | ||
| 565 | "x": 10.5, | ||
| 566 | "y": 2 | ||
| 567 | }, | ||
| 568 | { | ||
| 569 | "label": "L", | ||
| 570 | "x": 11.5, | ||
| 571 | "y": 2 | ||
| 572 | }, | ||
| 573 | { | ||
| 574 | "label": ";", | ||
| 575 | "x": 12.5, | ||
| 576 | "y": 2 | ||
| 577 | }, | ||
| 578 | { | ||
| 579 | "label": "'", | ||
| 580 | "x": 13.5, | ||
| 581 | "y": 2 | ||
| 582 | }, | ||
| 583 | { | ||
| 584 | "label": "enter", | ||
| 585 | "w": 2.25, | ||
| 586 | "x": 14.5, | ||
| 587 | "y": 2 | ||
| 588 | }, | ||
| 589 | { | ||
| 590 | "label": "shift", | ||
| 591 | "w": 2.25, | ||
| 592 | "x": 0, | ||
| 593 | "y": 3 | ||
| 594 | }, | ||
| 595 | { | ||
| 596 | "label": "Z", | ||
| 597 | "x": 2.25, | ||
| 598 | "y": 3 | ||
| 599 | }, | ||
| 600 | { | ||
| 601 | "label": "X", | ||
| 602 | "x": 3.25, | ||
| 603 | "y": 3 | ||
| 604 | }, | ||
| 605 | { | ||
| 606 | "label": "C", | ||
| 607 | "x": 4.25, | ||
| 608 | "y": 3 | ||
| 609 | }, | ||
| 610 | { | ||
| 611 | "label": "V", | ||
| 612 | "x": 5.25, | ||
| 613 | "y": 3 | ||
| 614 | }, | ||
| 615 | { | ||
| 616 | "label": "B", | ||
| 617 | "x": 6.25, | ||
| 618 | "y": 3 | ||
| 619 | }, | ||
| 620 | { | ||
| 621 | "label": "N", | ||
| 622 | "x": 9, | ||
| 623 | "y": 3 | ||
| 624 | }, | ||
| 625 | { | ||
| 626 | "label": "M", | ||
| 627 | "x": 10, | ||
| 628 | "y": 3 | ||
| 629 | }, | ||
| 630 | { | ||
| 631 | "label": ",", | ||
| 632 | "x": 11, | ||
| 633 | "y": 3 | ||
| 634 | }, | ||
| 635 | { | ||
| 636 | "label": ".", | ||
| 637 | "x": 12, | ||
| 638 | "y": 3 | ||
| 639 | }, | ||
| 640 | { | ||
| 641 | "label": "/", | ||
| 642 | "x": 13, | ||
| 643 | "y": 3 | ||
| 644 | }, | ||
| 645 | { | ||
| 646 | "label": "shift", | ||
| 647 | "w": 2.75, | ||
| 648 | "x": 14, | ||
| 649 | "y": 3 | ||
| 650 | }, | ||
| 651 | { | ||
| 652 | "label": "ctrl", | ||
| 653 | "w": 1.25, | ||
| 654 | "x": 0, | ||
| 655 | "y": 4 | ||
| 656 | }, | ||
| 657 | { | ||
| 658 | "label": "os", | ||
| 659 | "w": 1.25, | ||
| 660 | "x": 1.25, | ||
| 661 | "y": 4 | ||
| 662 | }, | ||
| 663 | { | ||
| 664 | "label": "alt", | ||
| 665 | "w": 1.25, | ||
| 666 | "x": 2.5, | ||
| 667 | "y": 4 | ||
| 668 | }, | ||
| 669 | { | ||
| 670 | "label": "...", | ||
| 671 | "w": 1.5, | ||
| 672 | "x": 3.75, | ||
| 673 | "y": 4 | ||
| 674 | }, | ||
| 675 | { | ||
| 676 | "label": "\u2014", | ||
| 677 | "w": 1.5, | ||
| 678 | "x": 5.25, | ||
| 679 | "y": 4 | ||
| 680 | }, | ||
| 681 | { | ||
| 682 | "label": "\u2014", | ||
| 683 | "w": 1.5, | ||
| 684 | "x": 8.75, | ||
| 685 | "y": 4 | ||
| 686 | }, | ||
| 687 | { | ||
| 688 | "label": "...", | ||
| 689 | "w": 1.5, | ||
| 690 | "x": 10.25, | ||
| 691 | "y": 4 | ||
| 692 | }, | ||
| 693 | { | ||
| 694 | "label": "alt", | ||
| 695 | "w": 1.25, | ||
| 696 | "x": 11.75, | ||
| 697 | "y": 4 | ||
| 698 | }, | ||
| 699 | { | ||
| 700 | "label": "fn", | ||
| 701 | "w": 1.25, | ||
| 702 | "x": 13, | ||
| 703 | "y": 4 | ||
| 704 | }, | ||
| 705 | { | ||
| 706 | "label": "os", | ||
| 707 | "w": 1.25, | ||
| 708 | "x": 14.25, | ||
| 709 | "y": 4 | ||
| 710 | }, | ||
| 711 | { | ||
| 712 | "label": "ctrl", | ||
| 713 | "w": 1.25, | ||
| 714 | "x": 15.5, | ||
| 715 | "y": 4 | ||
| 716 | }, | ||
| 717 | { | ||
| 718 | "label": "..", | ||
| 719 | "w": 1.5, | ||
| 720 | "x": 3.75, | ||
| 721 | "y": 5 | ||
| 722 | }, | ||
| 723 | { | ||
| 724 | "label": ".", | ||
| 725 | "w": 1.5, | ||
| 726 | "x": 5.25, | ||
| 727 | "y": 5 | ||
| 728 | }, | ||
| 729 | { | ||
| 730 | "label": ".", | ||
| 731 | "w": 1.5, | ||
| 732 | "x": 8.75, | ||
| 733 | "y": 5 | ||
| 734 | }, | ||
| 735 | { | ||
| 736 | "label": "..", | ||
| 737 | "w": 1.5, | ||
| 738 | "x": 10.25, | ||
| 739 | "y": 5 | ||
| 740 | } | ||
| 741 | ] | ||
| 742 | }, | ||
| 743 | "LAYOUT_iso": { | ||
| 744 | "layout": [ | ||
| 745 | { | ||
| 746 | "label": "esc", | ||
| 747 | "x": 0, | ||
| 748 | "y": 0 | ||
| 749 | }, | ||
| 750 | { | ||
| 751 | "label": "1", | ||
| 752 | "x": 1, | ||
| 753 | "y": 0 | ||
| 754 | }, | ||
| 755 | { | ||
| 756 | "label": "2", | ||
| 757 | "x": 2, | ||
| 758 | "y": 0 | ||
| 759 | }, | ||
| 760 | { | ||
| 761 | "label": "3", | ||
| 762 | "x": 3, | ||
| 763 | "y": 0 | ||
| 764 | }, | ||
| 765 | { | ||
| 766 | "label": "4", | ||
| 767 | "x": 4, | ||
| 768 | "y": 0 | ||
| 769 | }, | ||
| 770 | { | ||
| 771 | "label": "5", | ||
| 772 | "x": 5, | ||
| 773 | "y": 0 | ||
| 774 | }, | ||
| 775 | { | ||
| 776 | "label": "6", | ||
| 777 | "x": 6, | ||
| 778 | "y": 0 | ||
| 779 | }, | ||
| 780 | { | ||
| 781 | "label": "7", | ||
| 782 | "x": 8.75, | ||
| 783 | "y": 0 | ||
| 784 | }, | ||
| 785 | { | ||
| 786 | "label": "8", | ||
| 787 | "x": 9.75, | ||
| 788 | "y": 0 | ||
| 789 | }, | ||
| 790 | { | ||
| 791 | "label": "9", | ||
| 792 | "x": 10.75, | ||
| 793 | "y": 0 | ||
| 794 | }, | ||
| 795 | { | ||
| 796 | "label": "0", | ||
| 797 | "x": 11.75, | ||
| 798 | "y": 0 | ||
| 799 | }, | ||
| 800 | { | ||
| 801 | "label": "-", | ||
| 802 | "x": 12.75, | ||
| 803 | "y": 0 | ||
| 804 | }, | ||
| 805 | { | ||
| 806 | "label": "+", | ||
| 807 | "x": 13.75, | ||
| 808 | "y": 0 | ||
| 809 | }, | ||
| 810 | { | ||
| 811 | "label": "backspace", | ||
| 812 | "w": 2, | ||
| 813 | "x": 14.75, | ||
| 814 | "y": 0 | ||
| 815 | }, | ||
| 816 | { | ||
| 817 | "label": "tab", | ||
| 818 | "w": 1.5, | ||
| 819 | "x": 0, | ||
| 820 | "y": 1 | ||
| 821 | }, | ||
| 822 | { | ||
| 823 | "label": "Q", | ||
| 824 | "x": 1.5, | ||
| 825 | "y": 1 | ||
| 826 | }, | ||
| 827 | { | ||
| 828 | "label": "W", | ||
| 829 | "x": 2.5, | ||
| 830 | "y": 1 | ||
| 831 | }, | ||
| 832 | { | ||
| 833 | "label": "E", | ||
| 834 | "x": 3.5, | ||
| 835 | "y": 1 | ||
| 836 | }, | ||
| 837 | { | ||
| 838 | "label": "R", | ||
| 839 | "x": 4.5, | ||
| 840 | "y": 1 | ||
| 841 | }, | ||
| 842 | { | ||
| 843 | "label": "T", | ||
| 844 | "x": 5.5, | ||
| 845 | "y": 1 | ||
| 846 | }, | ||
| 847 | { | ||
| 848 | "label": "Y", | ||
| 849 | "x": 8.25, | ||
| 850 | "y": 1 | ||
| 851 | }, | ||
| 852 | { | ||
| 853 | "label": "U", | ||
| 854 | "x": 9.25, | ||
| 855 | "y": 1 | ||
| 856 | }, | ||
| 857 | { | ||
| 858 | "label": "I", | ||
| 859 | "x": 10.25, | ||
| 860 | "y": 1 | ||
| 861 | }, | ||
| 862 | { | ||
| 863 | "label": "O", | ||
| 864 | "x": 11.25, | ||
| 865 | "y": 1 | ||
| 866 | }, | ||
| 867 | { | ||
| 868 | "label": "P", | ||
| 869 | "x": 12.25, | ||
| 870 | "y": 1 | ||
| 871 | }, | ||
| 872 | { | ||
| 873 | "label": "[", | ||
| 874 | "x": 13.25, | ||
| 875 | "y": 1 | ||
| 876 | }, | ||
| 877 | { | ||
| 878 | "label": "]", | ||
| 879 | "x": 14.25, | ||
| 880 | "y": 1 | ||
| 881 | }, | ||
| 882 | { | ||
| 883 | "label": "enter", | ||
| 884 | "h": 2, | ||
| 885 | "w": 1.25, | ||
| 886 | "x": 15.5, | ||
| 887 | "y": 1 | ||
| 888 | }, | ||
| 889 | { | ||
| 890 | "label": "caps", | ||
| 891 | "w": 1.75, | ||
| 892 | "x": 0, | ||
| 893 | "y": 2 | ||
| 894 | }, | ||
| 895 | { | ||
| 896 | "label": "A", | ||
| 897 | "x": 1.75, | ||
| 898 | "y": 2 | ||
| 899 | }, | ||
| 900 | { | ||
| 901 | "label": "S", | ||
| 902 | "x": 2.75, | ||
| 903 | "y": 2 | ||
| 904 | }, | ||
| 905 | { | ||
| 906 | "label": "D", | ||
| 907 | "x": 3.75, | ||
| 908 | "y": 2 | ||
| 909 | }, | ||
| 910 | { | ||
| 911 | "label": "F", | ||
| 912 | "x": 4.75, | ||
| 913 | "y": 2 | ||
| 914 | }, | ||
| 915 | { | ||
| 916 | "label": "G", | ||
| 917 | "x": 5.75, | ||
| 918 | "y": 2 | ||
| 919 | }, | ||
| 920 | { | ||
| 921 | "label": "H", | ||
| 922 | "x": 8.5, | ||
| 923 | "y": 2 | ||
| 924 | }, | ||
| 925 | { | ||
| 926 | "label": "J", | ||
| 927 | "x": 9.5, | ||
| 928 | "y": 2 | ||
| 929 | }, | ||
| 930 | { | ||
| 931 | "label": "K", | ||
| 932 | "x": 10.5, | ||
| 933 | "y": 2 | ||
| 934 | }, | ||
| 935 | { | ||
| 936 | "label": "L", | ||
| 937 | "x": 11.5, | ||
| 938 | "y": 2 | ||
| 939 | }, | ||
| 940 | { | ||
| 941 | "label": ";", | ||
| 942 | "x": 12.5, | ||
| 943 | "y": 2 | ||
| 944 | }, | ||
| 945 | { | ||
| 946 | "label": "'", | ||
| 947 | "x": 13.5, | ||
| 948 | "y": 2 | ||
| 949 | }, | ||
| 950 | { | ||
| 951 | "label": "#", | ||
| 952 | "x": 14.5, | ||
| 953 | "y": 2 | ||
| 954 | }, | ||
| 955 | { | ||
| 956 | "label": "shift", | ||
| 957 | "w": 1.25, | ||
| 958 | "x": 0, | ||
| 959 | "y": 3 | ||
| 960 | }, | ||
| 961 | { | ||
| 962 | "label": "\\", | ||
| 963 | "x": 1.25, | ||
| 964 | "y": 3 | ||
| 965 | }, | ||
| 966 | { | ||
| 967 | "label": "Z", | ||
| 968 | "x": 2.25, | ||
| 969 | "y": 3 | ||
| 970 | }, | ||
| 971 | { | ||
| 972 | "label": "X", | ||
| 973 | "x": 3.25, | ||
| 974 | "y": 3 | ||
| 975 | }, | ||
| 976 | { | ||
| 977 | "label": "C", | ||
| 978 | "x": 4.25, | ||
| 979 | "y": 3 | ||
| 980 | }, | ||
| 981 | { | ||
| 982 | "label": "V", | ||
| 983 | "x": 5.25, | ||
| 984 | "y": 3 | ||
| 985 | }, | ||
| 986 | { | ||
| 987 | "label": "B", | ||
| 988 | "x": 6.25, | ||
| 989 | "y": 3 | ||
| 990 | }, | ||
| 991 | { | ||
| 992 | "label": "N", | ||
| 993 | "x": 9, | ||
| 994 | "y": 3 | ||
| 995 | }, | ||
| 996 | { | ||
| 997 | "label": "M", | ||
| 998 | "x": 10, | ||
| 999 | "y": 3 | ||
| 1000 | }, | ||
| 1001 | { | ||
| 1002 | "label": ",", | ||
| 1003 | "x": 11, | ||
| 1004 | "y": 3 | ||
| 1005 | }, | ||
| 1006 | { | ||
| 1007 | "label": ".", | ||
| 1008 | "x": 12, | ||
| 1009 | "y": 3 | ||
| 1010 | }, | ||
| 1011 | { | ||
| 1012 | "label": "/", | ||
| 1013 | "x": 13, | ||
| 1014 | "y": 3 | ||
| 1015 | }, | ||
| 1016 | { | ||
| 1017 | "label": "shift", | ||
| 1018 | "w": 2.75, | ||
| 1019 | "x": 14, | ||
| 1020 | "y": 3 | ||
| 1021 | }, | ||
| 1022 | { | ||
| 1023 | "label": "ctrl", | ||
| 1024 | "w": 1.25, | ||
| 1025 | "x": 0, | ||
| 1026 | "y": 4 | ||
| 1027 | }, | ||
| 1028 | { | ||
| 1029 | "label": "os", | ||
| 1030 | "w": 1.25, | ||
| 1031 | "x": 1.25, | ||
| 1032 | "y": 4 | ||
| 1033 | }, | ||
| 1034 | { | ||
| 1035 | "label": "alt", | ||
| 1036 | "w": 1.25, | ||
| 1037 | "x": 2.5, | ||
| 1038 | "y": 4 | ||
| 1039 | }, | ||
| 1040 | { | ||
| 1041 | "label": "...", | ||
| 1042 | "w": 1.5, | ||
| 1043 | "x": 3.75, | ||
| 1044 | "y": 4 | ||
| 1045 | }, | ||
| 1046 | { | ||
| 1047 | "label": "\u2014", | ||
| 1048 | "w": 1.5, | ||
| 1049 | "x": 5.25, | ||
| 1050 | "y": 4 | ||
| 1051 | }, | ||
| 1052 | { | ||
| 1053 | "label": "\u2014", | ||
| 1054 | "w": 1.5, | ||
| 1055 | "x": 8.75, | ||
| 1056 | "y": 4 | ||
| 1057 | }, | ||
| 1058 | { | ||
| 1059 | "label": "...", | ||
| 1060 | "w": 1.5, | ||
| 1061 | "x": 10.25, | ||
| 1062 | "y": 4 | ||
| 1063 | }, | ||
| 1064 | { | ||
| 1065 | "label": "alt", | ||
| 1066 | "w": 1.25, | ||
| 1067 | "x": 11.75, | ||
| 1068 | "y": 4 | ||
| 1069 | }, | ||
| 1070 | { | ||
| 1071 | "label": "fn", | ||
| 1072 | "w": 1.25, | ||
| 1073 | "x": 13, | ||
| 1074 | "y": 4 | ||
| 1075 | }, | ||
| 1076 | { | ||
| 1077 | "label": "os", | ||
| 1078 | "w": 1.25, | ||
| 1079 | "x": 14.25, | ||
| 1080 | "y": 4 | ||
| 1081 | }, | ||
| 1082 | { | ||
| 1083 | "label": "ctrl", | ||
| 1084 | "w": 1.25, | ||
| 1085 | "x": 15.5, | ||
| 1086 | "y": 4 | ||
| 1087 | }, | ||
| 1088 | { | ||
| 1089 | "label": "..", | ||
| 1090 | "w": 1.5, | ||
| 1091 | "x": 3.75, | ||
| 1092 | "y": 5 | ||
| 1093 | }, | ||
| 1094 | { | ||
| 1095 | "label": ".", | ||
| 1096 | "w": 1.5, | ||
| 1097 | "x": 5.25, | ||
| 1098 | "y": 5 | ||
| 1099 | }, | ||
| 1100 | { | ||
| 1101 | "label": ".", | ||
| 1102 | "w": 1.5, | ||
| 1103 | "x": 8.75, | ||
| 1104 | "y": 5 | ||
| 1105 | }, | ||
| 1106 | { | ||
| 1107 | "label": "..", | ||
| 1108 | "w": 1.5, | ||
| 1109 | "x": 10.25, | ||
| 1110 | "y": 5 | ||
| 1111 | } | ||
| 1112 | ] | ||
| 1113 | } | ||
| 1114 | } | ||
| 1115 | } | ||
diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c new file mode 100644 index 000000000..ec2607d06 --- /dev/null +++ b/keyboards/handwired/dygma/raise/iso/iso.c | |||
| @@ -0,0 +1,79 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include "quantum.h" | ||
| 18 | |||
| 19 | // "led_map" is taken from kaleidoscope | ||
| 20 | // LHK = Left Hand Keys | ||
| 21 | // LPH = "Leds per hand", which isn't _actually_ the number of leds, but instead | ||
| 22 | // is just used for indexing | ||
| 23 | #define LHK 33 | ||
| 24 | #define LPH 72 | ||
| 25 | |||
| 26 | const uint8_t led_map[DRIVER_LED_TOTAL] = { | ||
| 27 | // left side - 33 keys | ||
| 28 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 68, 69, | ||
| 29 | |||
| 30 | // right side - 36 keys | ||
| 31 | 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 15 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 7 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, | ||
| 32 | 20 + LPH, 21 + LPH, 22 + LPH, 23 + LPH, 24 + LPH, 25 + LPH, 26 + LPH, 27 + LPH, 28 + LPH, 29 + LPH, 30 + LPH, 31 + LPH, 32 + LPH, 33 + LPH, 68 + LPH, 69 + LPH, | ||
| 33 | |||
| 34 | // left under glow - 30 keys | ||
| 35 | 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, | ||
| 36 | |||
| 37 | // right underglow - 32 keys | ||
| 38 | 34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH, | ||
| 39 | 52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff | ||
| 40 | }; | ||
| 41 | |||
| 42 | // taken from "key_led_map" and reformatted | ||
| 43 | // ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map). | ||
| 44 | led_config_t g_led_config = { { | ||
| 45 | // left hand | ||
| 46 | { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } , | ||
| 47 | { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } , | ||
| 48 | { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } , | ||
| 49 | { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } , | ||
| 50 | { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , | ||
| 51 | |||
| 52 | // right hand | ||
| 53 | { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , | ||
| 54 | { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , | ||
| 55 | { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , | ||
| 56 | { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , | ||
| 57 | { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } | ||
| 58 | }, { | ||
| 59 | // generated from the svg image of the keyboard, see create-led-config.js | ||
| 60 | {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, | ||
| 61 | {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {82, 22}, {88, 22}, {94, 22}, {100, 22}, | ||
| 62 | {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, {118, 34}, {168, 3}, | ||
| 63 | {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {170, 13}, {162, 10}, {156, 10}, {150, 10}, {144, 10}, | ||
| 64 | {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, | ||
| 65 | {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, {140, 28}, {131, 28}, | ||
| 66 | {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, {122, 3}, {121, 9}, | ||
| 67 | {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, | ||
| 68 | {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, {175, 4}, {172, 0}, | ||
| 69 | {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, {124, 27}, {124, 33}, | ||
| 70 | {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, {173, 63}, {177, 59}, | ||
| 71 | {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} | ||
| 72 | |||
| 73 | }, { | ||
| 74 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
| 75 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 76 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 77 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 | ||
| 78 | } | ||
| 79 | }; | ||
diff --git a/keyboards/handwired/dygma/raise/iso/rules.mk b/keyboards/handwired/dygma/raise/iso/rules.mk new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/handwired/dygma/raise/iso/rules.mk | |||
diff --git a/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c b/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c new file mode 100644 index 000000000..427b9ddb1 --- /dev/null +++ b/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* Copyright (C) 2021 Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include QMK_KEYBOARD_H | ||
| 18 | |||
| 19 | enum { | ||
| 20 | QWERTY, | ||
| 21 | }; | ||
| 22 | |||
| 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 24 | [QWERTY] = LAYOUT_ansi( | ||
| 25 | KC_ESC, 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, | ||
| 26 | 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, | ||
| 27 | 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, | ||
| 28 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | ||
| 29 | KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, | ||
| 30 | KC_BSPC, KC_ENT, KC_NO, KC_DEL | ||
| 31 | ) | ||
| 32 | }; | ||
| 33 | |||
| 34 | /* template for new layouts: | ||
| 35 | LAYOUT( | ||
| 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 41 | _______, _______, _______, _______ | ||
| 42 | ) | ||
| 43 | */ | ||
diff --git a/keyboards/handwired/dygma/raise/keymaps/ansi/readme.md b/keyboards/handwired/dygma/raise/keymaps/ansi/readme.md new file mode 100644 index 000000000..ceafd78f4 --- /dev/null +++ b/keyboards/handwired/dygma/raise/keymaps/ansi/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # The ansi keymap for Dygma's Raise | |||
diff --git a/keyboards/handwired/dygma/raise/keymaps/default/keymap.c b/keyboards/handwired/dygma/raise/keymaps/default/keymap.c new file mode 100644 index 000000000..c766fb720 --- /dev/null +++ b/keyboards/handwired/dygma/raise/keymaps/default/keymap.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* Copyright (C) 2021 Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include QMK_KEYBOARD_H | ||
| 18 | |||
| 19 | enum { | ||
| 20 | QWERTY, | ||
| 21 | }; | ||
| 22 | |||
| 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 24 | [QWERTY] = LAYOUT_all( | ||
| 25 | KC_ESC, 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, | ||
| 26 | 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_ENT, | ||
| 27 | 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_NUHS, | ||
| 28 | 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, | ||
| 29 | KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, | ||
| 30 | KC_BSPC, KC_ENT, KC_NO, KC_DEL | ||
| 31 | ) | ||
| 32 | }; | ||
| 33 | |||
| 34 | /* template for new layouts: | ||
| 35 | LAYOUT( | ||
| 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 41 | _______, _______, _______, _______ | ||
| 42 | ) | ||
| 43 | */ | ||
diff --git a/keyboards/handwired/dygma/raise/keymaps/default/readme.md b/keyboards/handwired/dygma/raise/keymaps/default/readme.md new file mode 100644 index 000000000..1103cb349 --- /dev/null +++ b/keyboards/handwired/dygma/raise/keymaps/default/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # The default keymap for Dygma's Raise | |||
diff --git a/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c b/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c new file mode 100644 index 000000000..2fd0b49b0 --- /dev/null +++ b/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* Copyright (C) 2021 Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include QMK_KEYBOARD_H | ||
| 18 | |||
| 19 | enum { | ||
| 20 | QWERTY, | ||
| 21 | }; | ||
| 22 | |||
| 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 24 | [QWERTY] = LAYOUT_iso( | ||
| 25 | KC_ESC, 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, | ||
| 26 | 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_ENT, | ||
| 27 | 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_NUHS, | ||
| 28 | 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, | ||
| 29 | KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, | ||
| 30 | KC_BSPC, KC_ENT, KC_NO, KC_DEL | ||
| 31 | ) | ||
| 32 | }; | ||
| 33 | |||
| 34 | /* template for new layouts: | ||
| 35 | LAYOUT( | ||
| 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 41 | _______, _______, _______, _______ | ||
| 42 | ) | ||
| 43 | */ | ||
diff --git a/keyboards/handwired/dygma/raise/keymaps/iso/readme.md b/keyboards/handwired/dygma/raise/keymaps/iso/readme.md new file mode 100644 index 000000000..5f8924ae2 --- /dev/null +++ b/keyboards/handwired/dygma/raise/keymaps/iso/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # The iso keymap for Dygma's Raise | |||
diff --git a/keyboards/handwired/dygma/raise/leds.c b/keyboards/handwired/dygma/raise/leds.c new file mode 100644 index 000000000..3f6037cbf --- /dev/null +++ b/keyboards/handwired/dygma/raise/leds.c | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 | #include "quantum.h" | ||
| 18 | #include "i2c_master.h" | ||
| 19 | #include "led_tables.h" | ||
| 20 | #include "rgb_matrix.h" | ||
| 21 | #include <string.h> | ||
| 22 | #include "raise.h" | ||
| 23 | #include "wire-protocol-constants.h" | ||
| 24 | #include "print.h" | ||
| 25 | #include "leds.h" | ||
| 26 | |||
| 27 | struct __attribute__((packed)) cRGB { | ||
| 28 | uint8_t r; | ||
| 29 | uint8_t g; | ||
| 30 | uint8_t b; | ||
| 31 | }; | ||
| 32 | |||
| 33 | #define LEDS_PER_HAND 72 | ||
| 34 | #define LED_BANKS 9 | ||
| 35 | #define LEDS_PER_BANK 8 | ||
| 36 | #define LED_BYTES_PER_BANK (sizeof(cRGB) * LEDS_PER_BANK) | ||
| 37 | |||
| 38 | // shifting << 1 is because drivers/chibios/i2c_master.h expects the address | ||
| 39 | // shifted. | ||
| 40 | // 0x58 and 0x59 are the addresses defined in dygma/raise/Hand.h | ||
| 41 | #define I2C_ADDR_LEFT (0x58 << 1) | ||
| 42 | #define I2C_ADDR_RIGHT (0x59 << 1) | ||
| 43 | #define I2C_ADDR(hand) ((hand) ? I2C_ADDR_RIGHT : I2C_ADDR_LEFT) | ||
| 44 | #define LEFT 0 | ||
| 45 | #define RIGHT 1 | ||
| 46 | |||
| 47 | static cRGB led_state[2 * LEDS_PER_HAND]; | ||
| 48 | |||
| 49 | void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b) { | ||
| 50 | uint8_t buf[] = {TWI_CMD_LED_SET_ALL_TO, b, g, r}; | ||
| 51 | i2c_transmit(I2C_ADDR(LEFT), buf, sizeof(buf), I2C_TIMEOUT); | ||
| 52 | wait_us(10); | ||
| 53 | i2c_transmit(I2C_ADDR(RIGHT), buf, sizeof(buf), I2C_TIMEOUT); | ||
| 54 | wait_us(10); | ||
| 55 | } | ||
| 56 | |||
| 57 | void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b) { | ||
| 58 | int sled = led_map[led]; | ||
| 59 | uint8_t buf[] = {TWI_CMD_LED_SET_ONE_TO, sled & 0x1f, b, g, r}; | ||
| 60 | int hand = (sled >= LEDS_PER_HAND) ? RIGHT : LEFT; | ||
| 61 | i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT); | ||
| 62 | wait_us(10); | ||
| 63 | } | ||
| 64 | |||
| 65 | static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { | ||
| 66 | int sled = led_map[index]; | ||
| 67 | |||
| 68 | led_state[sled].r = r; | ||
| 69 | led_state[sled].g = g; | ||
| 70 | led_state[sled].b = b; | ||
| 71 | } | ||
| 72 | |||
| 73 | static void set_color_all(uint8_t r, uint8_t g, uint8_t b) { | ||
| 74 | for (int i = 0; i < DRIVER_LED_TOTAL; i++) set_color(i, r, g, b); | ||
| 75 | } | ||
| 76 | |||
| 77 | static void init(void) {} | ||
| 78 | |||
| 79 | static void flush(void) { | ||
| 80 | uint8_t command[1 + LED_BYTES_PER_BANK]; | ||
| 81 | |||
| 82 | // SUBTLE(ibash) alternate hands when transmitting led data, otherwise the | ||
| 83 | // mcu in the hand seems to have trouble keeping up with the i2c | ||
| 84 | // transmission | ||
| 85 | for (int bank = 0; bank < LED_BANKS; bank++) { | ||
| 86 | for (int hand = 0; hand < 2; hand++) { | ||
| 87 | int addr = I2C_ADDR(hand); | ||
| 88 | int i = (hand * LEDS_PER_HAND) + (bank * LEDS_PER_BANK); | ||
| 89 | uint8_t *bank_data = (uint8_t *)&led_state[i]; | ||
| 90 | |||
| 91 | command[0] = TWI_CMD_LED_BASE + bank; | ||
| 92 | memcpy(&command[1], bank_data, LED_BYTES_PER_BANK); | ||
| 93 | i2c_transmit(addr, command, sizeof(command), I2C_TIMEOUT); | ||
| 94 | |||
| 95 | // delay to prevent issues with the i2c bus | ||
| 96 | wait_us(10); | ||
| 97 | } | ||
| 98 | } | ||
| 99 | } | ||
| 100 | |||
| 101 | const rgb_matrix_driver_t rgb_matrix_driver = {.init = init, .flush = flush, .set_color = set_color, .set_color_all = set_color_all}; | ||
diff --git a/keyboards/handwired/dygma/raise/leds.h b/keyboards/handwired/dygma/raise/leds.h new file mode 100644 index 000000000..8d70ed70b --- /dev/null +++ b/keyboards/handwired/dygma/raise/leds.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 | #include "quantum.h" | ||
| 20 | #include "rgb_matrix.h" | ||
| 21 | |||
| 22 | extern const uint8_t led_map[DRIVER_LED_TOTAL]; | ||
| 23 | |||
| 24 | void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b); | ||
| 25 | void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b); | ||
diff --git a/keyboards/handwired/dygma/raise/matrix.c b/keyboards/handwired/dygma/raise/matrix.c new file mode 100644 index 000000000..bbcf697a5 --- /dev/null +++ b/keyboards/handwired/dygma/raise/matrix.c | |||
| @@ -0,0 +1,104 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 "quantum.h" | ||
| 17 | #include "i2c_master.h" | ||
| 18 | #include <string.h> | ||
| 19 | #include "wire-protocol-constants.h" | ||
| 20 | |||
| 21 | // shifting << 1 is because drivers/chibios/i2c_master.h expects the address | ||
| 22 | // shifted. | ||
| 23 | // 0x58 and 0x59 are the addresses defined in dygma/raise/Hand.h | ||
| 24 | #define I2C_ADDR_LEFT (0x58 << 1) | ||
| 25 | #define I2C_ADDR_RIGHT (0x59 << 1) | ||
| 26 | #define I2C_ADDR(hand) ((hand) ? I2C_ADDR_RIGHT : I2C_ADDR_LEFT) | ||
| 27 | #define LEFT 0 | ||
| 28 | #define RIGHT 1 | ||
| 29 | |||
| 30 | /* If no key events have occurred, the scanners will time out on reads. | ||
| 31 | * So we don't want to be too permissive here. */ | ||
| 32 | // TODO(ibash) not convinced this is needed... | ||
| 33 | #define MY_I2C_TIMEOUT 10 | ||
| 34 | #define ROWS_PER_HAND (MATRIX_ROWS / 2) | ||
| 35 | |||
| 36 | typedef enum { CHANGED, OFFLINE, UNCHANGED } read_hand_t; | ||
| 37 | |||
| 38 | static read_hand_t last_state[2] = {OFFLINE, OFFLINE}; | ||
| 39 | |||
| 40 | static read_hand_t i2c_read_hand(int hand, matrix_row_t current_matrix[]) { | ||
| 41 | // dygma raise firmware says online is true iff we get the number of | ||
| 42 | // expected bytes (e.g. 6 bytes or ROWS_PER_HAND + 1). | ||
| 43 | // In the case where no keys are pressed the keyscanner will send the same 0 | ||
| 44 | // byte over and over. -- so this case is set. | ||
| 45 | // | ||
| 46 | // On the stm32 side if we don't get as many bytes as expecetd the | ||
| 47 | // i2c_receive times out -- so online can be defined as getting | ||
| 48 | // "I2C_STATUS_SUCCESS". | ||
| 49 | |||
| 50 | uint8_t buf[ROWS_PER_HAND + 1]; | ||
| 51 | i2c_status_t ret = i2c_receive(I2C_ADDR(hand), buf, sizeof(buf), MY_I2C_TIMEOUT); | ||
| 52 | if (ret != I2C_STATUS_SUCCESS) { | ||
| 53 | return OFFLINE; | ||
| 54 | } | ||
| 55 | |||
| 56 | if (buf[0] != TWI_REPLY_KEYDATA) { | ||
| 57 | return UNCHANGED; | ||
| 58 | } | ||
| 59 | |||
| 60 | int start_row = hand ? ROWS_PER_HAND : 0; | ||
| 61 | matrix_row_t *out = ¤t_matrix[start_row]; | ||
| 62 | memcpy(out, &buf[1], ROWS_PER_HAND); | ||
| 63 | |||
| 64 | return CHANGED; | ||
| 65 | } | ||
| 66 | |||
| 67 | static int i2c_set_keyscan_interval(int hand, int delay) { | ||
| 68 | uint8_t buf[] = {TWI_CMD_KEYSCAN_INTERVAL, delay}; | ||
| 69 | i2c_status_t ret = i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), MY_I2C_TIMEOUT); | ||
| 70 | return ret; | ||
| 71 | } | ||
| 72 | |||
| 73 | void matrix_init_custom(void) { | ||
| 74 | i2c_init(); | ||
| 75 | |||
| 76 | // ref: https://github.com/Dygmalab/Kaleidoscope/blob/7bac53de106c42ffda889e6854abc06cf43a3c6f/src/kaleidoscope/device/dygma/Raise.cpp#L83 | ||
| 77 | // ref: https://github.com/Dygmalab/Kaleidoscope/blob/7bac53de106c42ffda889e6854abc06cf43a3c6f/src/kaleidoscope/device/dygma/raise/Hand.cpp#L73 | ||
| 78 | i2c_set_keyscan_interval(LEFT, 50); | ||
| 79 | i2c_set_keyscan_interval(RIGHT, 50); | ||
| 80 | } | ||
| 81 | |||
| 82 | bool matrix_scan_custom(matrix_row_t current_matrix[]) { | ||
| 83 | // HACK(ibash) without the delay between the two calls to i2c_read_hand, the | ||
| 84 | // second call to i2c_read_hand breaks. I observed that the i2s start isn't | ||
| 85 | // sent, or maybe it is, but the address matcher in the attiny can't recognize | ||
| 86 | // it. In any case, a short delay fixes it. | ||
| 87 | read_hand_t left_state = i2c_read_hand(LEFT, current_matrix); | ||
| 88 | wait_us(10); | ||
| 89 | read_hand_t right_state = i2c_read_hand(RIGHT, current_matrix); | ||
| 90 | |||
| 91 | |||
| 92 | if ((last_state[LEFT] == OFFLINE && left_state != OFFLINE) || (last_state[RIGHT] == OFFLINE && right_state != OFFLINE)) { | ||
| 93 | // reinitialize both sides | ||
| 94 | i2c_set_keyscan_interval(LEFT, 50); | ||
| 95 | i2c_set_keyscan_interval(RIGHT, 50); | ||
| 96 | } | ||
| 97 | |||
| 98 | last_state[LEFT] = left_state; | ||
| 99 | last_state[RIGHT] = right_state; | ||
| 100 | |||
| 101 | bool matrix_has_changed = left_state == CHANGED || right_state == CHANGED; | ||
| 102 | |||
| 103 | return matrix_has_changed; | ||
| 104 | } | ||
diff --git a/keyboards/handwired/dygma/raise/mcuconf.h b/keyboards/handwired/dygma/raise/mcuconf.h new file mode 100644 index 000000000..fba1cace2 --- /dev/null +++ b/keyboards/handwired/dygma/raise/mcuconf.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | /* Copyright 2021 Islam Sharabash | ||
| 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 | #include_next <mcuconf.h> | ||
| 20 | |||
| 21 | #undef STM32_I2C_USE_I2C1 | ||
| 22 | #define STM32_I2C_USE_I2C1 TRUE | ||
| 23 | |||
| 24 | #undef STM32_I2C_BUSY_TIMEOUT | ||
| 25 | #define STM32_I2C_BUSY_TIMEOUT 5 | ||
diff --git a/keyboards/handwired/dygma/raise/raise.c b/keyboards/handwired/dygma/raise/raise.c new file mode 100644 index 000000000..d9023093b --- /dev/null +++ b/keyboards/handwired/dygma/raise/raise.c | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include "raise.h" | ||
| 18 | |||
| 19 | void keyboard_post_init_kb(void) { | ||
| 20 | set_all_leds_to(0, 0, 0); | ||
| 21 | keyboard_post_init_user(); | ||
| 22 | } | ||
diff --git a/keyboards/handwired/dygma/raise/raise.h b/keyboards/handwired/dygma/raise/raise.h new file mode 100644 index 000000000..6310fc3d0 --- /dev/null +++ b/keyboards/handwired/dygma/raise/raise.h | |||
| @@ -0,0 +1,83 @@ | |||
| 1 | /* Copyright 2018-2021 James Laird-Wah, Islam Sharabash | ||
| 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 3 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 <https://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "quantum.h" | ||
| 20 | |||
| 21 | #include "leds.h" | ||
| 22 | |||
| 23 | #define XXX KC_NO | ||
| 24 | |||
| 25 | #define LAYOUT_all( \ | ||
| 26 | L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \ | ||
| 27 | L10, L11, L12, L13, L14, L15, R17, R16, R15, R14, R13, R12, R11, R10, \ | ||
| 28 | L20, L21, L22, L23, L24, L25, R26, R25, R24, R23, R22, R21, R20, \ | ||
| 29 | L30, L31, L32, L33, L34, L35, L36, R35, R34, R33, R32, R31, R30, \ | ||
| 30 | L40, L41, L42, L43, L44, R45, R44, R43, R42, R41, R40, \ | ||
| 31 | L46, L47, R47, R46 \ | ||
| 32 | ) { \ | ||
| 33 | { L00, L01, L02, L03, L04, L05, L06, XXX }, \ | ||
| 34 | { L10, L11, L12, L13, L14, L15, XXX, XXX }, \ | ||
| 35 | { L20, L21, L22, L23, L24, L25, XXX, XXX }, \ | ||
| 36 | { L30, L31, L32, L33, L34, L35, L36, XXX }, \ | ||
| 37 | { L40, L41, L42, L43, L44, XXX, L46, L47 }, \ | ||
| 38 | { R00, R01, R02, R03, R04, R05, R06, XXX }, \ | ||
| 39 | { R10, R11, R12, R13, R14, R15, R16, R17 }, \ | ||
| 40 | { R20, R21, R22, R23, R24, R25, R26, XXX }, \ | ||
| 41 | { R30, R31, R32, R33, R34, R35, XXX, XXX }, \ | ||
| 42 | { R40, R41, R42, R43, R44, R45, R46, R47 } \ | ||
| 43 | } | ||
| 44 | |||
| 45 | #define LAYOUT_ansi( \ | ||
| 46 | L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \ | ||
| 47 | L10, L11, L12, L13, L14, L15, R17, R16, R15, R14, R13, R12, R11, R10, \ | ||
| 48 | L20, L21, L22, L23, L24, L25, R26, R25, R24, R23, R22, R21, R20, \ | ||
| 49 | L31 , L32, L33, L34, L35, L36, R35, R34, R33, R32, R31, R30, \ | ||
| 50 | L40, L41, L42, L43, L44, R45, R44, R43, R42, R41, R40, \ | ||
| 51 | L46, L47, R47, R46 \ | ||
| 52 | ) { \ | ||
| 53 | { L00, L01, L02, L03, L04, L05, L06, XXX }, \ | ||
| 54 | { L10, L11, L12, L13, L14, L15, XXX, XXX }, \ | ||
| 55 | { L20, L21, L22, L23, L24, L25, XXX, XXX }, \ | ||
| 56 | { XXX, L31, L32, L33, L34, L35, L36, XXX }, \ | ||
| 57 | { L40, L41, L42, L43, L44, XXX, L46, L47 }, \ | ||
| 58 | { R00, R01, R02, R03, R04, R05, R06, XXX }, \ | ||
| 59 | { R10, R11, R12, R13, R14, R15, R16, R17 }, \ | ||
| 60 | { R20, R21, R22, R23, R24, R25, R26, XXX }, \ | ||
| 61 | { R30, R31, R32, R33, R34, R35, XXX, XXX }, \ | ||
| 62 | { R40, R41, R42, R43, R44, R45, R46, R47 } \ | ||
| 63 | } | ||
| 64 | |||
| 65 | #define LAYOUT_iso( \ | ||
| 66 | L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \ | ||
| 67 | L10, L11, L12, L13, L14, L15, R17, R16, R15, R14, R13, R12, R11, R10, \ | ||
| 68 | L20, L21, L22, L23, L24, L25, R26, R25, R24, R23, R22, R21, R20, \ | ||
| 69 | L30, L31, L32, L33, L34, L35, L36, R35, R34, R33, R32, R31, R30, \ | ||
| 70 | L40, L41, L42, L43, L44, R45, R44, R43, R42, R41, R40, \ | ||
| 71 | L46, L47, R47, R46 \ | ||
| 72 | ) { \ | ||
| 73 | { L00, L01, L02, L03, L04, L05, L06, XXX }, \ | ||
| 74 | { L10, L11, L12, L13, L14, L15, XXX, XXX }, \ | ||
| 75 | { L20, L21, L22, L23, L24, L25, XXX, XXX }, \ | ||
| 76 | { L30, L31, L32, L33, L34, L35, L36, XXX }, \ | ||
| 77 | { L40, L41, L42, L43, L44, XXX, L46, L47 }, \ | ||
| 78 | { R00, R01, R02, R03, R04, R05, R06, XXX }, \ | ||
| 79 | { R10, R11, R12, R13, R14, R15, R16, R17 }, \ | ||
| 80 | { R20, R21, R22, R23, R24, R25, R26, XXX }, \ | ||
| 81 | { R30, R31, R32, R33, R34, R35, XXX, XXX }, \ | ||
| 82 | { R40, R41, R42, R43, R44, R45, R46, R47 } \ | ||
| 83 | } | ||
diff --git a/keyboards/handwired/dygma/raise/readme.md b/keyboards/handwired/dygma/raise/readme.md new file mode 100644 index 000000000..219ea5f3c --- /dev/null +++ b/keyboards/handwired/dygma/raise/readme.md | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | # Raise | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | * Keyboard Maintainer: [ibash](https://github.com/ibash) | ||
| 6 | * Hardware Supported: [F411 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1) with the [Dygma Raise](http://www.dygma.com) | ||
| 7 | * Hardware Availability: See below | ||
| 8 | |||
| 9 | |||
| 10 | Make example for this keyboard (after setting up your build environment): | ||
| 11 | |||
| 12 | make handwired/dygma/raise/ansi:default | ||
| 13 | |||
| 14 | Flashing example for this keyboard: | ||
| 15 | |||
| 16 | make handwired/dygma/raise/ansi:default:flash | ||
| 17 | |||
| 18 | See 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). | ||
| 19 | |||
| 20 | ## Hardware | ||
| 21 | |||
| 22 | QMK does not currently support the [Dygma Neuron](https://dygma.com/products/neuron-black) because QMK does not support SAMD21 which the Neuron has. | ||
| 23 | Instead this code uses a [STM32 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1) to create a Neuron replacement. | ||
| 24 | |||
| 25 | ## Required Hardware | ||
| 26 | |||
| 27 | 1. [STM32 Blackpill from WeAct Studio](https://github.com/WeActTC/MiniSTM32F4x1) (via [aliexpress](https://www.aliexpress.com/item/1005001456186625.html) or [adafruit](https://www.adafruit.com/product/4877)). | ||
| 28 | |||
| 29 | 2. 2x USB-C breakouts (via [keeb](https://keeb.io/collections/diy-parts/products/usb-c-breakout-board) or [adafruit](https://www.adafruit.com/product/4090)). | ||
| 30 | |||
| 31 | 3. 2x 2.7KΩ resistors (via [digikey](https://www.digikey.com/en/products/detail/yageo/CFR-25JB-52-2K7/684)). | ||
| 32 | |||
| 33 | 4. Breadboard or PCB proto board, wires, solder, etc. | ||
| 34 | |||
| 35 | ## Wiring | ||
| 36 | |||
| 37 | Briefly each raise hand uses I2C to communicate with the Neuron: | ||
| 38 | |||
| 39 | 1. USB D+ is the I2C clock line. | ||
| 40 | 2. USB D- is the I2C data line. | ||
| 41 | 3. The resistors are pullup resistors for the I2C lines. | ||
| 42 | 4. Each hand draws power from the USB port. | ||
| 43 | |||
| 44 |  | ||
| 45 | |||
| 46 | <p float="left"> | ||
| 47 | <img src="https://i.imgur.com/GvXfnpf.jpg" width="200"> | ||
| 48 | <img src="https://i.imgur.com/kFKFjrU.jpg" width="200"> | ||
| 49 | </p> | ||
| 50 | |||
| 51 | We are also prototyping a [custom pcb](https://www.reddit.com/r/DygmaLab/comments/ojgm95/pcb_for_running_qmk_on_the_raise/?utm_source=share&utm_medium=web2x&context=3). | ||
| 52 | |||
| 53 | <p> | ||
| 54 | <img src="https://i.imgur.com/xfzIxkW.png" width="200"> | ||
| 55 | </p> | ||
diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk new file mode 100644 index 000000000..a316e1af1 --- /dev/null +++ b/keyboards/handwired/dygma/raise/rules.mk | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = STM32F411 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = stm32-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | ||
| 11 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = no # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 16 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 17 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 18 | AUDIO_ENABLE = no # Audio output | ||
| 19 | RGB_MATRIX_ENABLE = yes | ||
| 20 | RGB_MATRIX_DRIVER = custom | ||
| 21 | CUSTOM_MATRIX = lite | ||
| 22 | |||
| 23 | # TODO(ibash) we don't actually need to enable raw, but there's some side effect | ||
| 24 | # in the usb driver this triggers that allows mousekeys to work. The same side | ||
| 25 | # effect happens if console or midi is enabled -- so something to do with | ||
| 26 | # alternate usb endpoints. | ||
| 27 | RAW_ENABLE = yes | ||
| 28 | |||
| 29 | QUANTUM_LIB_SRC += i2c_master.c | ||
| 30 | SRC += leds.c matrix.c | ||
diff --git a/keyboards/handwired/dygma/raise/wire-protocol-constants.h b/keyboards/handwired/dygma/raise/wire-protocol-constants.h new file mode 100644 index 000000000..67c4ca0b2 --- /dev/null +++ b/keyboards/handwired/dygma/raise/wire-protocol-constants.h | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | /* KeyboardioScanner | ||
| 2 | * Copyright (C) 2015-2018 Keyboard.io, Inc | ||
| 3 | * | ||
| 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 5 | * of this software and associated documentation files (the "Software"), to deal | ||
| 6 | * in the Software without restriction, including without limitation the rights | ||
| 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 8 | * copies of the Software, and to permit persons to whom the Software is | ||
| 9 | * furnished to do so, subject to the following conditions: | ||
| 10 | * | ||
| 11 | * The above copyright notice and this permission notice shall be included in | ||
| 12 | * all copies or substantial portions of the Software. | ||
| 13 | * | ||
| 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| 20 | * SOFTWARE. | ||
| 21 | */ | ||
| 22 | |||
| 23 | #pragma once | ||
| 24 | |||
| 25 | #define TWI_CMD_NONE 0x00 | ||
| 26 | #define TWI_CMD_VERSION 0x01 | ||
| 27 | #define TWI_CMD_KEYSCAN_INTERVAL 0x02 | ||
| 28 | #define TWI_CMD_LED_SET_ALL_TO 0x03 | ||
| 29 | #define TWI_CMD_LED_SET_ONE_TO 0x04 | ||
| 30 | #define TWI_CMD_COLS_USE_PULLUPS 0x05 | ||
| 31 | #define TWI_CMD_LED_SPI_FREQUENCY 0x06 | ||
| 32 | |||
| 33 | #define LED_SPI_FREQUENCY_4MHZ 0x07 | ||
| 34 | #define LED_SPI_FREQUENCY_2MHZ 0x06 | ||
| 35 | #define LED_SPI_FREQUENCY_1MHZ 0x05 | ||
| 36 | #define LED_SPI_FREQUENCY_512KHZ 0x04 | ||
| 37 | #define LED_SPI_FREQUENCY_256KHZ 0x03 | ||
| 38 | #define LED_SPI_FREQUENCY_128KHZ 0x02 | ||
| 39 | #define LED_SPI_FREQUENCY_64KHZ 0x01 | ||
| 40 | #define LED_SPI_OFF 0x00 | ||
| 41 | |||
| 42 | |||
| 43 | // 512KHZ seems to be the sweet spot in early testing | ||
| 44 | // so make it the default | ||
| 45 | #define LED_SPI_FREQUENCY_DEFAULT LED_SPI_FREQUENCY_512KHZ | ||
| 46 | |||
| 47 | |||
| 48 | #define TWI_CMD_LED_BASE 0x80 | ||
| 49 | |||
| 50 | #define TWI_REPLY_NONE 0x00 | ||
| 51 | #define TWI_REPLY_KEYDATA 0x01 | ||
