Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Joshua Diamond 2022-09-12 18:57:58 -04:00
commit 23e12497b2
39 changed files with 1583 additions and 99 deletions

View File

@ -1,77 +0,0 @@
/*
Copyright 2020 Cole Smith <cole@boadsource.xyz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 8
#define MATRIX_COLS 5
#define MATRIX_ROW_PINS \
{ B2, B6, B4, B5 }
// wiring of each half
#define MATRIX_COL_PINS \
{ F4, F5, F6, F7, B1 }
#define SOFT_SERIAL_PIN D2
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
// #define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
//#define LOCKING_RESYNC_ENABLE
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
#ifdef RGBLIGHT_ENABLE
# define RGBLED_NUM 12 // Number of LEDs
# define RGBLED_SPLIT \
{ 6, 6 }
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
#endif
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
// #define NO_DEBUG
/* disable print */
// #define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

View File

@ -3,18 +3,4 @@
#pragma once #pragma once
/* // Just here to please quantum/split_common/split_util.c
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

View File

@ -2,7 +2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#pragma once #pragma once
#undef RGB_DI_PIN
#define RGB_DI_PIN B5 #define RGB_DI_PIN B5
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
#define DRIVER_LED_TOTAL 44 #define DRIVER_LED_TOTAL 44

View File

@ -0,0 +1,236 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ansi.h"
#ifdef RGB_MATRIX_ENABLE
const aw_led g_aw_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, CS1_SW1, CS2_SW1, CS3_SW1 }, // 0 Esc
{0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 1 1
{0, CS4_SW3, CS5_SW3, CS6_SW3 }, // 2 2
{0, CS4_SW4, CS5_SW4, CS6_SW4 }, // 3 3
{0, CS4_SW5, CS5_SW5, CS6_SW5 }, // 4 4
{0, CS4_SW6, CS5_SW6, CS6_SW6 }, // 5 5
{0, CS4_SW7, CS5_SW7, CS6_SW7 }, // 6 6
{0, CS4_SW8, CS5_SW8, CS6_SW8 }, // 7 7
{0, CS4_SW9, CS5_SW9, CS6_SW9 }, // 8 8
{0, CS4_SW10, CS5_SW10, CS6_SW10 }, // 9 9
{0, CS4_SW11, CS5_SW11, CS6_SW11 }, // 10 0
{0, CS4_SW12, CS5_SW12, CS6_SW12 }, // 11 -
{1, CS1_SW5, CS2_SW5, CS3_SW5 }, // 12 =
{1, CS1_SW7, CS2_SW7, CS3_SW7 }, // 13 Backspace
{1, CS4_SW4, CS5_SW4, CS6_SW4 }, // 14 Del
{0, CS7_SW1, CS8_SW1, CS9_SW1 }, // 15 Tab
{0, CS7_SW2, CS8_SW2, CS9_SW2 }, // 16 Q
{0, CS7_SW3, CS8_SW3, CS9_SW3 }, // 17 W
{0, CS7_SW4, CS8_SW4, CS9_SW4 }, // 18 E
{0, CS7_SW5, CS8_SW5, CS9_SW5 }, // 19 R
{0, CS7_SW6, CS8_SW6, CS9_SW6 }, // 20 T
{0, CS7_SW7, CS8_SW7, CS9_SW7 }, // 21 Y
{0, CS7_SW8, CS8_SW8, CS9_SW8 }, // 22 U
{0, CS7_SW9, CS8_SW9, CS9_SW9 }, // 23 I
{0, CS7_SW10, CS8_SW10, CS9_SW10 }, // 24 O
{0, CS7_SW11, CS8_SW11, CS9_SW11 }, // 25 P
{0, CS7_SW12, CS8_SW12, CS9_SW12 }, // 26 [
{1, CS1_SW8, CS2_SW8, CS3_SW8 }, // 27 ]
{1, CS1_SW9, CS2_SW9, CS3_SW9 }, // 28 \|
{1, CS4_SW7, CS5_SW7, CS6_SW7 }, // 29 PgUp
{0, CS10_SW1, CS11_SW1, CS12_SW1 }, // 30 Caps Lock
{0, CS10_SW2, CS11_SW2, CS12_SW2 }, // 31 A
{0, CS10_SW3, CS11_SW3, CS12_SW3 }, // 32 S
{0, CS10_SW4, CS11_SW4, CS12_SW4 }, // 33 D
{0, CS10_SW5, CS11_SW5, CS12_SW5 }, // 34 F
{0, CS10_SW6, CS11_SW6, CS12_SW6 }, // 35 G
{0, CS10_SW7, CS11_SW7, CS12_SW7 }, // 36 H
{0, CS10_SW8, CS11_SW8, CS12_SW8 }, // 37 J
{0, CS10_SW9, CS11_SW9, CS12_SW9 }, // 38 K
{0, CS10_SW10, CS11_SW10, CS12_SW10}, // 39 L
{0, CS10_SW11, CS11_SW11, CS12_SW11}, // 40 ;
{0, CS10_SW12, CS11_SW12, CS12_SW12}, // 41 '
{1, CS1_SW11, CS2_SW11, CS3_SW11 }, // 42 Enter
{1, CS4_SW5, CS5_SW5, CS6_SW5 }, // 43 PgDn
{0, CS13_SW1, CS14_SW1, CS15_SW1 }, // 44 Shift_L
{0, CS13_SW3, CS14_SW3, CS15_SW3 }, // 45 Z
{0, CS13_SW4, CS14_SW4, CS15_SW4 }, // 46 X
{0, CS13_SW5, CS14_SW5, CS15_SW5 }, // 47 C
{0, CS13_SW6, CS14_SW6, CS15_SW6 }, // 48 V
{0, CS13_SW7, CS14_SW7, CS15_SW7 }, // 49 B
{0, CS13_SW8, CS14_SW8, CS15_SW8 }, // 50 N
{0, CS13_SW9, CS14_SW9, CS15_SW9 }, // 51 M
{0, CS13_SW10, CS14_SW10, CS15_SW10}, // 52 ,
{0, CS13_SW11, CS14_SW11, CS15_SW11}, // 53 .
{0, CS13_SW12, CS14_SW12, CS15_SW12}, // 54 /
{1, CS4_SW8, CS5_SW8, CS6_SW8 }, // 55 Shift_R
{1, CS4_SW9, CS5_SW9, CS6_SW9 }, // 56 Up
{1, CS4_SW6, CS5_SW6, CS6_SW6 }, // 57 END
{0, CS16_SW1, CS17_SW1, CS18_SW1 }, // 58 Ctrl_L
{0, CS16_SW2, CS17_SW2, CS18_SW2 }, // 59 Win_L
{0, CS16_SW3, CS17_SW3, CS18_SW3 }, // 60 Alt_L
{0, CS16_SW6, CS17_SW6, CS18_SW6 }, // 61 Space
{0, CS16_SW9, CS17_SW9, CS18_SW9 }, // 62 Alt_R
{0, CS16_SW10, CS17_SW10, CS18_SW10}, // 63 FN
{1, CS4_SW10, CS5_SW10, CS6_SW10 }, // 64 Left
{1, CS4_SW11, CS5_SW11, CS6_SW11 }, // 65 Down
{1, CS4_SW12, CS5_SW12, CS6_SW12 }, // 66 Right
{1, CS13_SW1, CS14_SW1, CS15_SW1 }, // 69 LED 1
{1, CS13_SW2, CS14_SW2, CS15_SW2 }, // 70 LED 2
{1, CS13_SW3, CS14_SW3, CS15_SW3 }, // 71 LED 3
{1, CS13_SW4, CS14_SW4, CS15_SW4 }, // 72 LED 4
{1, CS13_SW5, CS14_SW5, CS15_SW5 }, // 73 LED 5
{1, CS13_SW6, CS14_SW6, CS15_SW6 }, // 74 LED 6
{1, CS13_SW7, CS14_SW7, CS15_SW7 }, // 75 LED 7
{1, CS13_SW8, CS14_SW8, CS15_SW8 }, // 76 LED 8
{1, CS13_SW9, CS14_SW9, CS15_SW9 }, // 77 LED 9
{1, CS13_SW10, CS14_SW10, CS15_SW10}, // 78 LED 10
{1, CS16_SW1, CS17_SW1, CS18_SW1 }, // 79 LED 11
{1, CS16_SW2, CS17_SW2, CS18_SW2 }, // 80 LED 12
{1, CS16_SW3, CS17_SW3, CS18_SW3 }, // 81 LED 13
{1, CS16_SW4, CS17_SW4, CS18_SW4 }, // 82 LED 14
{1, CS16_SW5, CS17_SW5, CS18_SW5 }, // 83 LED 15
{1, CS16_SW6, CS17_SW6, CS18_SW6 }, // 84 LED 16
{1, CS16_SW7, CS17_SW7, CS18_SW7 }, // 85 LED 17
{1, CS16_SW8, CS17_SW8, CS18_SW8 }, // 86 LED 18
{1, CS16_SW9, CS17_SW9, CS18_SW9 }, // 87 LED 19
{1, CS16_SW10, CS17_SW10, CS18_SW10} // 88 LED 20
};
#define __ NO_LED
led_config_t g_led_config = {{
{ 44, 57, __, 64, __, 66, 58, 55},
{ 16, 15, 31, 0, 45, 59, __, 1},
{ 17, 30, 32, 60, 46, 14, 29, 2},
{ 18, 61, 33, 63, 47, 56, 62, 3},
{ 19, 20, 34, 35, 48, 49, 5, 4},
{ 22, 21, 37, 36, 51, 50, 6, 7},
{ 23, 27, 38, __, 52, 43, 12, 8},
{ 24, 13, 39, 65, 53, __, 28, 9},
{ 25, 26, 40, 41, 42, 54, 11, 10}
}, {
{14, 0 }, // 0 Esc
{28, 0 }, // 1 1
{42, 0 }, // 2 2
{56, 0 }, // 3 3
{70, 0 }, // 4 4
{84, 0 }, // 5 5
{98, 0 }, // 6 6
{112, 0 }, // 7 7
{126, 0 }, // 8 8
{140, 0 }, // 9 9
{154, 0 }, // 10 0
{168, 0 }, // 11 -
{182, 0 }, // 12 =
{196, 0 }, // 13 Backspace
{210, 0 }, // 14 Del
{14, 16}, // 15 Tab
{28, 16}, // 16 Q
{42, 16}, // 17 W
{56, 16}, // 18 E
{70, 16}, // 19 R
{84, 16}, // 20 T
{98, 16}, // 21 Y
{112, 16}, // 22 U
{126, 16}, // 23 I
{140, 16}, // 24 O
{154, 16}, // 25 P
{168, 16}, // 26 [
{182, 16}, // 27 ]
{196, 16}, // 28 \|
{210, 16}, // 29 PgUp
{14, 32}, // 30 Caps Lock
{28, 32}, // 31 A
{42, 32}, // 32 S
{56, 32}, // 33 D
{70, 32}, // 34 F
{84, 32}, // 35 G
{98, 32}, // 36 H
{112, 32}, // 37 J
{126, 32}, // 38 K
{140, 32}, // 39 L
{154, 32}, // 40 ;
{168, 32}, // 41 '
{196, 32}, // 42 Enter
{210, 32}, // 43 PgDn
{14, 48}, // 44 Shift_L
{42, 48}, // 45 Z
{56, 48}, // 46 X
{70, 48}, // 47 C
{84, 48}, // 48 V
{98, 48}, // 49 B
{112, 48}, // 50 N
{126, 48}, // 51 M
{140, 48}, // 52 ,
{154, 48}, // 53 .
{168, 48}, // 54 /
{182, 48}, // 55 Shift_R
{196, 48}, // 56 Up
{210, 48}, // 57 END
{14, 64}, // 58 Ctrl_L
{28, 64}, // 59 Win_L
{42, 64}, // 60 Alt_L
{84, 64}, // 61 Space
{126, 64}, // 62 Alt_R
{140, 64}, // 63 FN
{182, 64}, // 64 Left
{196, 64}, // 65 Down
{210, 64}, // 66 Right
{0, 0}, // 69 LED 1
{0, 7}, // 70 LED 2
{0, 14}, // 71 LED 3
{0, 21}, // 72 LED 4
{0, 28}, // 73 LED 5
{0, 35}, // 74 LED 6
{0, 42}, // 75 LED 7
{0, 49}, // 76 LED 8
{0, 56}, // 77 LED 9
{0, 64}, // 78 LED 10
{224, 0 }, // 79 LED 11
{224, 7 }, // 80 LED 12
{224, 14}, // 81 LED 13
{224, 21}, // 82 LED 14
{224, 28}, // 83 LED 15
{224, 35}, // 84 LED 16
{224, 42}, // 85 LED 17
{224, 49}, // 86 LED 18
{224, 56}, // 87 LED 19
{224, 64}, // 88 LED 20
}, {
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, 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,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2
} };
#endif

View File

@ -0,0 +1,47 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#define ___ KC_NO
// ESC 1 2 3 4 5 6 7 8 9 0 - = BS Del
// Tab Q W E R T Y U I O P [ ] \ PgUp
// Caps A S D F G H J K L ; ' Enter PgDn
// Sh_L Z X C V B N M , . / Sh_R Up END
// Ct_L Win_L Alt_L SPACE Alt_R FN Left Down Right
// clang-format off
#define LAYOUT( \
k13, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, k71, k25,\
k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, k76, k26,\
k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, k84, k65,\
k00, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k07, k35, k01,\
k06, k15, k23, k31, k36, k33, k03, k73, k05 \
)\
{\
{ k00, k01, ___, k03, ___, k05, k06, k07},\
{ k10, k11, k12, k13, k14, k15, ___, k17},\
{ k20, k21, k22, k23, k24, k25, k26, k27},\
{ k30, k31, k32, k33, k34, k35, k36, k37},\
{ k40, k41, k42, k43, k44, k45, k46, k47},\
{ k50, k51, k52, k53, k54, k55, k56, k57},\
{ k60, k61, k62, ___, k64, k65, k66, k67},\
{ k70, k71, k72, k73, k74, ___, k76, k77},\
{ k80, k81, k82, k83, k84, k85, k86, k87} \
}

View File

@ -0,0 +1,90 @@
{
"keyboard_name": "GMMK V2 65 ANSI",
"manufacturer": "Glorious",
"url": "http://www.pcgamingrace.com",
"maintainer": "GloriousThrall",
"usb": {
"vid": "0x320F",
"pid": "0x5045",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "`", "x": 0, "y": 0 },
{ "label": "1", "x": 1, "y": 0 },
{ "label": "2", "x": 2, "y": 0 },
{ "label": "3", "x": 3, "y": 0 },
{ "label": "4", "x": 4, "y": 0 },
{ "label": "5", "x": 5, "y": 0 },
{ "label": "6", "x": 6, "y": 0 },
{ "label": "7", "x": 7, "y": 0 },
{ "label": "8", "x": 8, "y": 0 },
{ "label": "9", "x": 9, "y": 0 },
{ "label": "0", "x": 10, "y": 0 },
{ "label": "-", "x": 11, "y": 0 },
{ "label": "=", "x": 12, "y": 0 },
{ "label": "Backspace", "x": 13, "y": 0, "w": 2.25},
{ "label": "PgUp", "x": 15.25, "y": 0 },
{ "label": "Tab", "x": 0, "y": 1, "w": 1.5},
{ "label": "Q", "x": 1.5, "y": 1 },
{ "label": "W", "x": 2.5, "y": 1 },
{ "label": "E", "x": 3.5, "y": 1 },
{ "label": "R", "x": 4.5, "y": 1 },
{ "label": "T", "x": 5.5, "y": 1 },
{ "label": "Y", "x": 6.5, "y": 1 },
{ "label": "U", "x": 7.5, "y": 1 },
{ "label": "I", "x": 8.5, "y": 1 },
{ "label": "O", "x": 9.5, "y": 1 },
{ "label": "P", "x": 10.5, "y": 1 },
{ "label": "[", "x": 11.5, "y": 1 },
{ "label": "]", "x": 12.5, "y": 1 },
{ "label": "\\", "x": 13.5, "y": 1 , "w": 1.75},
{ "label": "PgDn", "x": 15.25, "y": 1 },
{ "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75},
{ "label": "A", "x": 1.75, "y": 2 },
{ "label": "S", "x": 2.75, "y": 2 },
{ "label": "D", "x": 3.75, "y": 2 },
{ "label": "F", "x": 4.75, "y": 2 },
{ "label": "G", "x": 5.75, "y": 2 },
{ "label": "H", "x": 6.75, "y": 2 },
{ "label": "J", "x": 7.75, "y": 2 },
{ "label": "K", "x": 8.75, "y": 2 },
{ "label": "L", "x": 9.75, "y": 2 },
{ "label": ";", "x": 10.75, "y": 2 },
{ "label": "'", "x": 11.75, "y": 2 },
{ "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
{ "label": "HOME", "x": 15.25, "y": 2 },
{ "label": "Shift", "x": 0, "y": 3, "w": 2.25},
{ "label": "Z", "x": 2.25, "y": 3 },
{ "label": "X", "x": 3.25, "y": 3 },
{ "label": "C", "x": 4.25, "y": 3 },
{ "label": "V", "x": 5.25, "y": 3 },
{ "label": "B", "x": 6.25, "y": 3 },
{ "label": "N", "x": 7.25, "y": 3 },
{ "label": "M", "x": 8.25, "y": 3 },
{ "label": ",", "x": 9.25, "y": 3 },
{ "label": ".", "x": 10.25, "y": 3 },
{ "label": "/", "x": 11.25, "y": 3 },
{ "label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{ "label": "Up", "x": 14.25, "y": 3 },
{ "label": "END", "x": 15.25, "y": 3 },
{ "label": "Ctrl", "x": 0, "y": 4, "w": 1.25},
{ "label": "Win", "x": 1.25, "y": 4, "w": 1.25},
{ "label": "Alt", "x": 2.5, "y": 4, "w": 1.25},
{ "label": "Space", "x": 3.75, "y": 4, "w": 6.25},
{ "label": "Alt", "x": 10, "y": 4, "w": 1.25},
{ "label": "FN", "x": 11.25, "y": 4, "w": 1.25},
{ "label": "Left", "x": 13.25, "y": 4 },
{ "label": "Down", "x": 14.25, "y": 4 },
{ "label": "Right", "x": 15.25, "y": 4 }
]
}
}
}

View File

@ -0,0 +1,44 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
enum custom_layers {
_BL,
_FL,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[_BL] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
[_FL] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD)
};

View File

@ -0,0 +1 @@
# ANSI GMMKV2 65% Layout

View File

@ -0,0 +1,51 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[0] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
[1] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______),
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,23 @@
# GMMK V2 65% (ANSI)
A keyboard made and sold by Glorious LLC. Equipped with the WestBerry G7 ARM Cortex-M4 microcontroller
* Keyboard Maintainer: [GloriousThrall](https://github.com/GloriousThrall)
* Hardware Supported: GMMK V2
* Hardware Availability: [GloriousPCGaming.com](https://www.pcgamingrace.com)
Make example for this keyboard (after setting up your build environment):
make gmmk/gmmk2/p65/ansi:default
Flashing example for this keyboard:
make gmmk/gmmk2/p65/ansi:default:flash
To reset the board into bootloader mode, do one of the following:
* Hold the Reset switch mounted on the surface of the PCB while connecting the USB cable (remove the spacebar key and press and hold the pin on the right side)
* Hold the Escape key while connecting the USB cable (also erases persistent settings)
* Fn+Backslash will reset the board to bootloader mode if you have flashed the default QMK keymap
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).

View File

@ -0,0 +1,22 @@
# MCU name
MCU = WB32F3G71
# Bootloader selection
BOOTLOADER = wb32-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite.
MOUSEKEY_ENABLE = yes # Mouse keys.
EXTRAKEY_ENABLE = yes # Audio control and System control.
CONSOLE_ENABLE = no # Console for debug.
COMMAND_ENABLE = no # Commands for debug and configuration.
NKRO_ENABLE = yes # Enable NKRO Rollover.
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality.
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow.
AUDIO_ENABLE = no # Audio output.
RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
RGB_MATRIX_DRIVER = AW20216 # Enable RGB matrix effects.
EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = embedded_flash

View File

@ -0,0 +1,117 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* key matrix size */
#define MATRIX_ROWS 9
#define MATRIX_COLS 8
#define MATRIX_ROW_PINS \
{ B0, B1, B2, B3, B4, B5, B6, B7, B8 }
#define MATRIX_COL_PINS \
{ A0, A1, A2, A3, A4, A8, A9, A10 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Hold ESC on start up to clear EEPROM and boot into bootloader mode */
#define BOOTMAGIC_LITE_ROW 1
#define BOOTMAGIC_LITE_COLUMN 3
#define TAP_CODE_DELAY 10
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#define RGB_DISABLE_WHEN_USB_SUSPENDED
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDM2
#define SPI_SCK_PIN B13
#define SPI_MOSI_PIN B15
#define SPI_MISO_PIN B14
#define DRIVER_1_CS A15
#define DRIVER_2_CS B9
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 54
#define DRIVER_2_LED_TOTAL 34
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_DUAL_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#define ENABLE_RGB_MATRIX_RAINDROPS
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#define ENABLE_RGB_MATRIX_HUE_BREATHING
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
#define ENABLE_RGB_MATRIX_HUE_WAVE
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
#define RGB_MATRIX_KEYPRESSES
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#define ENABLE_RGB_MATRIX_SPLASH
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
/* Set debounce time to 5ms */
#define DEBOUNCE 5
/* Force NKRO on boot up regardless of the setting saved in the EEPROM (uncomment to enable it) */
// #define FORCE_NKRO

View File

@ -0,0 +1,29 @@
/* Copyright (C) 2021 Westberry Technology (ChangZhou) Corp., Ltd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/wb_support/gmmk2/halconf.h -r platforms/chibios/boards/common/configs/halconf.h`
*/
#pragma once
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#include_next <halconf.h>

View File

@ -0,0 +1,91 @@
{
"keyboard_name": "GMMK V2 65 ISO",
"manufacturer": "Glorious",
"url": "http://www.pcgamingrace.com",
"maintainer": "GloriousThrall",
"usb": {
"vid": "0x320F",
"pid": "0x504A",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "`", "x": 0, "y": 0 },
{ "label": "1", "x": 1, "y": 0 },
{ "label": "2", "x": 2, "y": 0 },
{ "label": "3", "x": 3, "y": 0 },
{ "label": "4", "x": 4, "y": 0 },
{ "label": "5", "x": 5, "y": 0 },
{ "label": "6", "x": 6, "y": 0 },
{ "label": "7", "x": 7, "y": 0 },
{ "label": "8", "x": 8, "y": 0 },
{ "label": "9", "x": 9, "y": 0 },
{ "label": "0", "x": 10, "y": 0 },
{ "label": "-", "x": 11, "y": 0 },
{ "label": "=", "x": 12, "y": 0 },
{ "label": "Backspace", "x": 13, "y": 0, "w": 2.25},
{ "label": "PgUp", "x": 15.25, "y": 0 },
{ "label": "Tab", "x": 0, "y": 1, "w": 1.5},
{ "label": "Q", "x": 1.5, "y": 1 },
{ "label": "W", "x": 2.5, "y": 1 },
{ "label": "E", "x": 3.5, "y": 1 },
{ "label": "R", "x": 4.5, "y": 1 },
{ "label": "T", "x": 5.5, "y": 1 },
{ "label": "Y", "x": 6.5, "y": 1 },
{ "label": "U", "x": 7.5, "y": 1 },
{ "label": "I", "x": 8.5, "y": 1 },
{ "label": "O", "x": 9.5, "y": 1 },
{ "label": "P", "x": 10.5, "y": 1 },
{ "label": "[", "x": 11.5, "y": 1 },
{ "label": "]", "x": 12.5, "y": 1 },
{ "label": "Enter", "x": 13.5, "y": 1 ,"h":2, "w": 1.75},
{ "label": "PgDn", "x": 15.25, "y": 1 },
{ "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75},
{ "label": "A", "x": 1.75, "y": 2 },
{ "label": "S", "x": 2.75, "y": 2 },
{ "label": "D", "x": 3.75, "y": 2 },
{ "label": "F", "x": 4.75, "y": 2 },
{ "label": "G", "x": 5.75, "y": 2 },
{ "label": "H", "x": 6.75, "y": 2 },
{ "label": "J", "x": 7.75, "y": 2 },
{ "label": "K", "x": 8.75, "y": 2 },
{ "label": "L", "x": 9.75, "y": 2 },
{ "label": ";", "x": 10.75, "y": 2 },
{ "label": "'", "x": 11.75, "y": 2 },
{ "label": "#", "x": 12.75, "y": 2 },
{ "label": "HOME", "x": 15.25, "y": 2 },
{ "label": "Shift", "x": 0, "y": 3, "w": 1.25},
{ "label": "\\", "x": 1.25, "y": 3 },
{ "label": "Z", "x": 2.25, "y": 3 },
{ "label": "X", "x": 3.25, "y": 3 },
{ "label": "C", "x": 4.25, "y": 3 },
{ "label": "V", "x": 5.25, "y": 3 },
{ "label": "B", "x": 6.25, "y": 3 },
{ "label": "N", "x": 7.25, "y": 3 },
{ "label": "M", "x": 8.25, "y": 3 },
{ "label": ",", "x": 9.25, "y": 3 },
{ "label": ".", "x": 10.25, "y": 3 },
{ "label": "/", "x": 11.25, "y": 3 },
{ "label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{ "label": "Up", "x": 14.25, "y": 3 },
{ "label": "END", "x": 15.25, "y": 3 },
{ "label": "Ctrl", "x": 0, "y": 4, "w": 1.25},
{ "label": "Win", "x": 1.25, "y": 4, "w": 1.25},
{ "label": "Alt", "x": 2.5, "y": 4, "w": 1.25},
{ "label": "Space", "x": 3.75, "y": 4, "w": 6.25},
{ "label": "Alt", "x": 10, "y": 4, "w": 1.25},
{ "label": "FN", "x": 11.25, "y": 4, "w": 1.25},
{ "label": "Left", "x": 13.25, "y": 4 },
{ "label": "Down", "x": 14.25, "y": 4 },
{ "label": "Right", "x": 15.25, "y": 4 }
]
}
}
}

View File

@ -0,0 +1,238 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "iso.h"
#ifdef RGB_MATRIX_ENABLE
const aw_led g_aw_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, CS1_SW1, CS2_SW1, CS3_SW1 }, // 0 Esc
{0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 1 1
{0, CS4_SW3, CS5_SW3, CS6_SW3 }, // 2 2
{0, CS4_SW4, CS5_SW4, CS6_SW4 }, // 3 3
{0, CS4_SW5, CS5_SW5, CS6_SW5 }, // 4 4
{0, CS4_SW6, CS5_SW6, CS6_SW6 }, // 5 5
{0, CS4_SW7, CS5_SW7, CS6_SW7 }, // 6 6
{0, CS4_SW8, CS5_SW8, CS6_SW8 }, // 7 7
{0, CS4_SW9, CS5_SW9, CS6_SW9 }, // 8 8
{0, CS4_SW10, CS5_SW10, CS6_SW10 }, // 9 9
{0, CS4_SW11, CS5_SW11, CS6_SW11 }, // 10 0
{0, CS4_SW12, CS5_SW12, CS6_SW12 }, // 11 -
{1, CS1_SW5, CS2_SW5, CS3_SW5 }, // 12 =
{1, CS1_SW7, CS2_SW7, CS3_SW7 }, // 13 Backspace
{1, CS4_SW4, CS5_SW4, CS6_SW4 }, // 14 HOME
{0, CS7_SW1, CS8_SW1, CS9_SW1 }, // 15 Tab
{0, CS7_SW2, CS8_SW2, CS9_SW2 }, // 16 Q
{0, CS7_SW3, CS8_SW3, CS9_SW3 }, // 17 W
{0, CS7_SW4, CS8_SW4, CS9_SW4 }, // 18 E
{0, CS7_SW5, CS8_SW5, CS9_SW5 }, // 19 R
{0, CS7_SW6, CS8_SW6, CS9_SW6 }, // 20 T
{0, CS7_SW7, CS8_SW7, CS9_SW7 }, // 21 Y
{0, CS7_SW8, CS8_SW8, CS9_SW8 }, // 22 U
{0, CS7_SW9, CS8_SW9, CS9_SW9 }, // 23 I
{0, CS7_SW10, CS8_SW10, CS9_SW10 }, // 24 O
{0, CS7_SW11, CS8_SW11, CS9_SW11 }, // 25 P
{0, CS7_SW12, CS8_SW12, CS9_SW12 }, // 26 [
{1, CS1_SW8, CS2_SW8, CS3_SW8 }, // 27 ]
{1, CS1_SW11, CS2_SW11, CS3_SW11 }, // 28 ENTER
{1, CS4_SW7, CS5_SW7, CS6_SW7 }, // 29 PgUp
{0, CS10_SW1, CS11_SW1, CS12_SW1 }, // 30 Caps Lock
{0, CS10_SW2, CS11_SW2, CS12_SW2 }, // 31 A
{0, CS10_SW3, CS11_SW3, CS12_SW3 }, // 32 S
{0, CS10_SW4, CS11_SW4, CS12_SW4 }, // 33 D
{0, CS10_SW5, CS11_SW5, CS12_SW5 }, // 34 F
{0, CS10_SW6, CS11_SW6, CS12_SW6 }, // 35 G
{0, CS10_SW7, CS11_SW7, CS12_SW7 }, // 36 H
{0, CS10_SW8, CS11_SW8, CS12_SW8 }, // 37 J
{0, CS10_SW9, CS11_SW9, CS12_SW9 }, // 38 K
{0, CS10_SW10, CS11_SW10, CS12_SW10}, // 39 L
{0, CS10_SW11, CS11_SW11, CS12_SW11}, // 40 ;
{0, CS10_SW12, CS11_SW12, CS12_SW12}, // 41 '
{1, CS1_SW10, CS2_SW10, CS3_SW10 }, // 42 k42
{1, CS4_SW5, CS5_SW5, CS6_SW5 }, // 43 PgDn
{0, CS13_SW1, CS14_SW1, CS15_SW1 }, // 44 Shift_L
{0, CS13_SW2, CS14_SW2, CS15_SW2 }, // 45 k45
{0, CS13_SW3, CS14_SW3, CS15_SW3 }, // 46 Z
{0, CS13_SW4, CS14_SW4, CS15_SW4 }, // 47 X
{0, CS13_SW5, CS14_SW5, CS15_SW5 }, // 48 C
{0, CS13_SW6, CS14_SW6, CS15_SW6 }, // 49 V
{0, CS13_SW7, CS14_SW7, CS15_SW7 }, // 50 B
{0, CS13_SW8, CS14_SW8, CS15_SW8 }, // 51 N
{0, CS13_SW9, CS14_SW9, CS15_SW9 }, // 52 M
{0, CS13_SW10, CS14_SW10, CS15_SW10}, // 53 ,
{0, CS13_SW11, CS14_SW11, CS15_SW11}, // 54 .
{0, CS13_SW12, CS14_SW12, CS15_SW12}, // 55 /
{1, CS4_SW8, CS5_SW8, CS6_SW8 }, // 56 Shift_R
{1, CS4_SW9, CS5_SW9, CS6_SW9 }, // 57 Up
{1, CS4_SW6, CS5_SW6, CS6_SW6 }, // 58 END
{0, CS16_SW1, CS17_SW1, CS18_SW1 }, // 59 Ctrl_L
{0, CS16_SW2, CS17_SW2, CS18_SW2 }, // 60 Win_L
{0, CS16_SW3, CS17_SW3, CS18_SW3 }, // 61 Alt_L
{0, CS16_SW6, CS17_SW6, CS18_SW6 }, // 62 Space
{0, CS16_SW9, CS17_SW9, CS18_SW9 }, // 63 Alt_R
{0, CS16_SW10, CS17_SW10, CS18_SW10}, // 64 FN
{1, CS4_SW10, CS5_SW10, CS6_SW10 }, // 65 Left
{1, CS4_SW11, CS5_SW11, CS6_SW11 }, // 66 Down
{1, CS4_SW12, CS5_SW12, CS6_SW12 }, // 67 Right
{1, CS13_SW1, CS14_SW1, CS15_SW1 }, // 68 LED 1
{1, CS13_SW2, CS14_SW2, CS15_SW2 }, // 69 LED 2
{1, CS13_SW3, CS14_SW3, CS15_SW3 }, // 70 LED 3
{1, CS13_SW4, CS14_SW4, CS15_SW4 }, // 71 LED 4
{1, CS13_SW5, CS14_SW5, CS15_SW5 }, // 72 LED 5
{1, CS13_SW6, CS14_SW6, CS15_SW6 }, // 73 LED 6
{1, CS13_SW7, CS14_SW7, CS15_SW7 }, // 74 LED 7
{1, CS13_SW8, CS14_SW8, CS15_SW8 }, // 75 LED 8
{1, CS13_SW9, CS14_SW9, CS15_SW9 }, // 76 LED 9
{1, CS13_SW10, CS14_SW10, CS15_SW10}, // 77 LED 10
{1, CS16_SW1, CS17_SW1, CS18_SW1 }, // 78 LED 11
{1, CS16_SW2, CS17_SW2, CS18_SW2 }, // 79 LED 12
{1, CS16_SW3, CS17_SW3, CS18_SW3 }, // 80 LED 13
{1, CS16_SW4, CS17_SW4, CS18_SW4 }, // 81 LED 14
{1, CS16_SW5, CS17_SW5, CS18_SW5 }, // 82 LED 15
{1, CS16_SW6, CS17_SW6, CS18_SW6 }, // 83 LED 16
{1, CS16_SW7, CS17_SW7, CS18_SW7 }, // 84 LED 17
{1, CS16_SW8, CS17_SW8, CS18_SW8 }, // 85 LED 18
{1, CS16_SW9, CS17_SW9, CS18_SW9 }, // 86 LED 19
{1, CS16_SW10, CS17_SW10, CS18_SW10} // 87 LED 20
};
#define __ NO_LED
led_config_t g_led_config = {{
{ 44, 58, 45, 65, __, 67, 59, 56},
{ 16, 15, 31, 0, 46, 60, __, 1},
{ 17, 30, 32, 61, 47, 14, 29, 2},
{ 18, 62, 33, 64, 48, 57, 63, 3},
{ 19, 20, 34, 35, 49, 50, 5, 4},
{ 22, 21, 37, 36, 52, 51, 6, 7},
{ 23, 27, 38, __, 53, 43, 12, 8},
{ 24, 13, 39, 66, 54, 42, __, 9},
{ 25, 26, 40, 41, 28, 55, 11, 10}
}, {
{14, 0 }, // 0 Esc
{28, 0 }, // 1 1
{42, 0 }, // 2 2
{56, 0 }, // 3 3
{70, 0 }, // 4 4
{84, 0 }, // 5 5
{98, 0 }, // 6 6
{112, 0 }, // 7 7
{126, 0 }, // 8 8
{140, 0 }, // 9 9
{154, 0 }, // 10 0
{168, 0 }, // 11 -
{182, 0 }, // 12 =
{196, 0 }, // 13 Backspace
{210, 0 }, // 14 HOME
{14, 16}, // 15 Tab
{28, 16}, // 16 Q
{42, 16}, // 17 W
{56, 16}, // 18 E
{70, 16}, // 19 R
{84, 16}, // 20 T
{98, 16}, // 21 Y
{112, 16}, // 22 U
{126, 16}, // 23 I
{140, 16}, // 24 O
{154, 16}, // 25 P
{168, 16}, // 26 [
{182, 16}, // 27 ]
{196, 16}, // 28 ENTER
{210, 16}, // 29 PgUp
{14, 32}, // 30 Caps Lock
{28, 32}, // 31 A
{42, 32}, // 32 S
{56, 32}, // 33 D
{70, 32}, // 34 F
{84, 32}, // 35 G
{98, 32}, // 36 H
{112, 32}, // 37 J
{126, 32}, // 38 K
{140, 32}, // 39 L
{154, 32}, // 40 ;
{168, 32}, // 41 '
{182, 32}, // 42 k42
{210, 32}, // 43 PgDn
{14, 48}, // 44 Shift_L
{28, 48}, // 45 k45
{42, 48}, // 46 Z
{56, 48}, // 47 X
{70, 48}, // 48 C
{84, 48}, // 49 V
{98, 48}, // 50 B
{112, 48}, // 51 N
{126, 48}, // 52 M
{140, 48}, // 53 ,
{154, 48}, // 54 .
{168, 48}, // 55 /
{182, 48}, // 56 Shift_R
{196, 48}, // 57 Up
{210, 48}, // 58 END
{14, 64}, // 59 Ctrl_L
{28, 64}, // 60 Win_L
{42, 64}, // 61 Alt_L
{84, 64}, // 62 Space
{126, 64}, // 63 Alt_R
{140, 64}, // 64 FN
{182, 64}, // 65 Left
{196, 64}, // 66 Down
{210, 64}, // 67 Right
{0, 0}, // 68 LED 1
{0, 7}, // 69 LED 2
{0, 14}, // 70 LED 3
{0, 21}, // 71 LED 4
{0, 28}, // 72 LED 5
{0, 35}, // 73 LED 6
{0, 42}, // 74 LED 7
{0, 49}, // 75 LED 8
{0, 56}, // 76 LED 9
{0, 64}, // 77 LED 10
{224, 0 }, // 78 LED 11
{224, 7 }, // 79 LED 12
{224, 14}, // 80 LED 13
{224, 21}, // 81 LED 14
{224, 28}, // 82 LED 15
{224, 35}, // 83 LED 16
{224, 42}, // 84 LED 17
{224, 49}, // 85 LED 18
{224, 56}, // 86 LED 19
{224, 64}, // 87 LED 20
}, {
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, 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,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2
} };
#endif

View File

@ -0,0 +1,47 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#define ___ KC_NO
// ESC 1 2 3 4 5 6 7 8 9 0 - = BS PgUp
// Tab Q W E R T Y U I O P [ ] Enter PgUp
// Caps A S D F G H J K L ; ' \ Enter HOME
// Sh_L \ Z X C V B N M , . / Sh_R Up END
// Ct_L Win_L Alt_L SPACE Alt_R FN Left Down Right
// clang-format off
#define LAYOUT( \
k13, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, k71, k25,\
k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, k84, k26,\
k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, k75, k65,\
k00, k02, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k07, k35, k01,\
k06, k15, k23, k31, k36, k33, k03, k73, k05 \
)\
{\
{ k00, k01, k02, k03, ___, k05, k06, k07},\
{ k10, k11, k12, k13, k14, k15, ___, k17},\
{ k20, k21, k22, k23, k24, k25, k26, k27},\
{ k30, k31, k32, k33, k34, k35, k36, k37},\
{ k40, k41, k42, k43, k44, k45, k46, k47},\
{ k50, k51, k52, k53, k54, k55, k56, k57},\
{ k60, k61, k62, ___, k64, k65, k66, k67},\
{ k70, k71, k72, k73, k74, k75, ___, k77},\
{ k80, k81, k82, k83, k84, k85, k86, k87} \
}

View File

@ -0,0 +1,44 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
enum custom_layers {
_BL,
_FL,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[_BL] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGUP,
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, KC_PGDN,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
[_FL] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD)
};

View File

@ -0,0 +1 @@
# ISO GMMKV2 65% Layout

View File

@ -0,0 +1,50 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[0] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGUP,
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, KC_PGDN,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______),
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,23 @@
# GMMK V2 65% (ISO)
A keyboard made and sold by Glorious LLC. Equipped with the WestBerry G7 ARM Cortex-M4 microcontroller
* Keyboard Maintainer: [GloriousThrall](https://github.com/GloriousThrall)
* Hardware Supported: GMMK V2
* Hardware Availability: [GloriousPCGaming.com](https://www.pcgamingrace.com)
Make example for this keyboard (after setting up your build environment):
make gmmk/gmmk2/p65/iso:default
Flashing example for this keyboard:
make gmmk/gmmk2/p65/iso:default:flash
To reset the board into bootloader mode, do one of the following:
* Hold the Reset switch mounted on the surface of the PCB while connecting the USB cable (remove the spacebar key and press and hold the pin on the right side)
* Hold the Escape key while connecting the USB cable (also erases persistent settings)
* Fn+Backslash will reset the board to bootloader mode if you have flashed the default QMK keymap
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).

View File

@ -0,0 +1,22 @@
# MCU name
MCU = WB32F3G71
# Bootloader selection
BOOTLOADER = wb32-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite.
MOUSEKEY_ENABLE = yes # Mouse keys.
EXTRAKEY_ENABLE = yes # Audio control and System control.
CONSOLE_ENABLE = no # Console for debug.
COMMAND_ENABLE = no # Commands for debug and configuration.
NKRO_ENABLE = yes # Enable NKRO Rollover.
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality.
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow.
AUDIO_ENABLE = no # Audio output.
RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
RGB_MATRIX_DRIVER = AW20216 # Enable RGB matrix effects.
EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = embedded_flash

View File

@ -0,0 +1,27 @@
/* Copyright (C) 2021 Westberry Technology (ChangZhou) Corp., Ltd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/wb_support/gmmk2/mcuconf.h -r platforms/chibios/GENERIC_WB32_F3G71XX/configs/mcuconf.h`
*/
#pragma once
#include_next <mcuconf.h>
#undef WB32_SPI_USE_SPIM2
#define WB32_SPI_USE_SPIM2 TRUE

View File

@ -0,0 +1,17 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "p65.h"

View File

@ -0,0 +1,25 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#if defined(KEYBOARD_gmmk_gmmk2_p65_ansi)
# include "ansi/ansi.h"
#elif defined(KEYBOARD_gmmk_gmmk2_p65_iso)
# include "iso/iso.h"
#endif // GMMK V2 revisions

View File

@ -108,7 +108,7 @@
{ "matrix": [0, 0], "x":0, "y":5.25, "w":1.25}, { "matrix": [0, 0], "x":0, "y":5.25, "w":1.25},
{ "matrix": [1, 0], "x":1.25, "y":5.25, "w":1.25}, { "matrix": [1, 0], "x":1.25, "y":5.25, "w":1.25},
{ "matrix": [2, 0], "x":2.5, "y":5.25, "w":1.25}, { "matrix": [2, 0], "x":2.5, "y":5.25, "w":1.25},
{ "matrix": [6, 0], "y":5.25, "w":6.25}, { "matrix": [6, 0], "x":3.75, "y":5.25, "w":6.25},
{ "matrix": [8, 0], "x":10, "y":5.25, "w":1.5}, { "matrix": [8, 0], "x":10, "y":5.25, "w":1.5},
{ "matrix": [7, 0], "x":11.5, "y":5.25, "w":1.5}, { "matrix": [7, 0], "x":11.5, "y":5.25, "w":1.5},

View File

@ -0,0 +1,8 @@
// Copyright 2022 moritz plattner (@moritz plattner)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// Move Bootmagic key from ~ to ESC (0,0 to 1,0)
#define BOOTMAGIC_LITE_ROW 1
#define BOOTMAGIC_LITE_COLUMN 0

View File

@ -0,0 +1,190 @@
{
"manufacturer": "Linworks",
"keyboard_name": "EM.8",
"maintainer": "ebastler",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": false,
"nkro": true
},
"matrix_pins": {
"cols": [ "B5", "B4", "D0", "D1", "D4", "D6", "D7", "F6", "F5", "F4", "F1", "B2", "B6", "C6", "C7" ],
"rows": [ "B7", "B0", "F0", "E6", "F7" ]
},
"processor": "atmega32u4",
"url": "https://klc-playground.com/",
"usb": {
"device_version": "1.0.0",
"pid": "0x0006",
"vid": "0x4C58"
},
"indicators": {
"num_lock": "D2",
"caps_lock": "D3",
"scroll_lock": "D5",
"on_state": 0
},
"layouts": {
"LAYOUT_em8_2u_backsp": {
"layout": [
{"x":0, "y":0, "matrix":[1,0] },
{"x":1.25, "y":0, "matrix":[0,0] },
{"x":2.25, "y":0, "matrix":[0,1] },
{"x":3.25, "y":0, "matrix":[0,2] },
{"x":4.25, "y":0, "matrix":[0,3] },
{"x":5.25, "y":0, "matrix":[0,4] },
{"x":6.25, "y":0, "matrix":[0,5] },
{"x":7.25, "y":0, "matrix":[0,6] },
{"x":10.25, "y":0, "matrix":[0,7] },
{"x":11.25, "y":0, "matrix":[0,8] },
{"x":12.25, "y":0, "matrix":[0,9] },
{"x":13.25, "y":0, "matrix":[0,10] },
{"x":14.25, "y":0, "matrix":[0,11] },
{"x":15.25, "y":0, "matrix":[0,12] },
{"x":16.25, "y":0, "w": 2, "matrix":[0,13] },
{"x":18.5, "y":0, "matrix":[0,14] },
{"x":0, "y":1, "matrix":[2,0] },
{"x":1.25, "y":1, "w":1.5, "matrix":[1,1] },
{"x":2.75, "y":1, "matrix":[1,2] },
{"x":3.75, "y":1, "matrix":[1,3] },
{"x":4.75, "y":1, "matrix":[1,4] },
{"x":5.75, "y":1, "matrix":[1,5] },
{"x":6.75, "y":1, "matrix":[1,6] },
{"x":9.75, "y":1, "matrix":[1,7] },
{"x":10.75, "y":1, "matrix":[1,8] },
{"x":11.75, "y":1, "matrix":[1,9] },
{"x":12.75, "y":1, "matrix":[1,10] },
{"x":13.75, "y":1, "matrix":[1,11] },
{"x":14.75, "y":1, "matrix":[1,12] },
{"x":15.75, "y":1, "matrix":[1,13] },
{"x":16.75, "y":1, "w":1.5, "matrix":[1,14] },
{"x":18.5, "y":1, "matrix":[2,14] },
{"x":0, "y":2, "matrix":[3,0] },
{"x":1.25, "y":2, "w":1.75, "matrix":[2,1] },
{"x":3, "y":2, "matrix":[2,2] },
{"x":4, "y":2, "matrix":[2,3] },
{"x":5, "y":2, "matrix":[2,4] },
{"x":6, "y":2, "matrix":[2,5] },
{"x":7, "y":2, "matrix":[2,6] },
{"x":10, "y":2, "matrix":[2,7] },
{"x":11, "y":2, "matrix":[2,8] },
{"x":12, "y":2, "matrix":[2,9] },
{"x":13, "y":2, "matrix":[2,10] },
{"x":14, "y":2, "matrix":[2,11] },
{"x":15, "y":2, "matrix":[2,12] },
{"x":16, "y":2, "w":2.25, "matrix":[2,13] },
{"x":1.25, "y":3, "w":2.25, "matrix":[3,1] },
{"x":3.5, "y":3, "matrix":[3,2] },
{"x":4.5, "y":3, "matrix":[3,3] },
{"x":5.5, "y":3, "matrix":[3,4] },
{"x":6.5, "y":3, "matrix":[3,5] },
{"x":7.5, "y":3, "matrix":[3,6] },
{"x":9.5, "y":3, "matrix":[3,7] },
{"x":10.5, "y":3, "matrix":[3,8] },
{"x":11.5, "y":3, "matrix":[3,9] },
{"x":12.5, "y":3, "matrix":[3,10] },
{"x":13.5, "y":3, "matrix":[3,11] },
{"x":14.5, "y":3, "matrix":[3,12] },
{"x":15.5, "y":3, "w":1.75, "matrix":[3,13] },
{"x":17.5, "y":3.25, "matrix":[3,14] },
{"x":1.25, "y":4, "w":1.5, "matrix":[4,1] },
{"x":4.25, "y":4, "w":1.5, "matrix":[4,3] },
{"x":5.75, "y":4, "w":2.25, "matrix":[4,5] },
{"x":8, "y":4, "w":1, "matrix":[4,6] },
{"x":9.5, "y":4, "w":2.75, "matrix":[4,8] },
{"x":12.25, "y":4, "w":1.5, "matrix":[4,10] },
{"x":16.5, "y":4.25, "w":1, "matrix":[4,12] },
{"x":17.5, "y":4.25, "w":1, "matrix":[4,13] },
{"x":18.5, "y":4.25, "w":1, "matrix":[4,14] }
]
},
"LAYOUT_em8_all": {
"layout": [
{"x":0, "y":0, "matrix":[1,0] },
{"x":1.25, "y":0, "matrix":[0,0] },
{"x":2.25, "y":0, "matrix":[0,1] },
{"x":3.25, "y":0, "matrix":[0,2] },
{"x":4.25, "y":0, "matrix":[0,3] },
{"x":5.25, "y":0, "matrix":[0,4] },
{"x":6.25, "y":0, "matrix":[0,5] },
{"x":7.25, "y":0, "matrix":[0,6] },
{"x":10.25, "y":0, "matrix":[0,7] },
{"x":11.25, "y":0, "matrix":[0,8] },
{"x":12.25, "y":0, "matrix":[0,9] },
{"x":13.25, "y":0, "matrix":[0,10] },
{"x":14.25, "y":0, "matrix":[0,11] },
{"x":15.25, "y":0, "matrix":[0,12] },
{"x":16.25, "y":0, "matrix":[0,13] },
{"x":17.25, "y":0, "matrix":[4,11] },
{"x":18.5, "y":0, "matrix":[0,14] },
{"x":0, "y":1, "matrix":[2,0] },
{"x":1.25, "y":1, "w":1.5, "matrix":[1,1] },
{"x":2.75, "y":1, "matrix":[1,2] },
{"x":3.75, "y":1, "matrix":[1,3] },
{"x":4.75, "y":1, "matrix":[1,4] },
{"x":5.75, "y":1, "matrix":[1,5] },
{"x":6.75, "y":1, "matrix":[1,6] },
{"x":9.75, "y":1, "matrix":[1,7] },
{"x":10.75, "y":1, "matrix":[1,8] },
{"x":11.75, "y":1, "matrix":[1,9] },
{"x":12.75, "y":1, "matrix":[1,10] },
{"x":13.75, "y":1, "matrix":[1,11] },
{"x":14.75, "y":1, "matrix":[1,12] },
{"x":15.75, "y":1, "matrix":[1,13] },
{"x":16.75, "y":1, "w":1.5, "matrix":[1,14] },
{"x":18.5, "y":1, "matrix":[2,14] },
{"x":0, "y":2, "matrix":[3,0] },
{"x":1.25, "y":2, "w":1.75, "matrix":[2,1] },
{"x":3, "y":2, "matrix":[2,2] },
{"x":4, "y":2, "matrix":[2,3] },
{"x":5, "y":2, "matrix":[2,4] },
{"x":6, "y":2, "matrix":[2,5] },
{"x":7, "y":2, "matrix":[2,6] },
{"x":10, "y":2, "matrix":[2,7] },
{"x":11, "y":2, "matrix":[2,8] },
{"x":12, "y":2, "matrix":[2,9] },
{"x":13, "y":2, "matrix":[2,10] },
{"x":14, "y":2, "matrix":[2,11] },
{"x":15, "y":2, "matrix":[2,12] },
{"x":16, "y":2, "w":2.25, "matrix":[2,13] },
{"x":1.25, "y":3, "w":2.25, "matrix":[3,1] },
{"x":3.5, "y":3, "matrix":[3,2] },
{"x":4.5, "y":3, "matrix":[3,3] },
{"x":5.5, "y":3, "matrix":[3,4] },
{"x":6.5, "y":3, "matrix":[3,5] },
{"x":7.5, "y":3, "matrix":[3,6] },
{"x":9.5, "y":3, "matrix":[3,7] },
{"x":10.5, "y":3, "matrix":[3,8] },
{"x":11.5, "y":3, "matrix":[3,9] },
{"x":12.5, "y":3, "matrix":[3,10] },
{"x":13.5, "y":3, "matrix":[3,11] },
{"x":14.5, "y":3, "matrix":[3,12] },
{"x":15.5, "y":3, "w":1.75, "matrix":[3,13] },
{"x":17.5, "y":3.25, "matrix":[3,14] },
{"x":1.25, "y":4, "w":1.5, "matrix":[4,1] },
{"x":4.25, "y":4, "w":1.5, "matrix":[4,3] },
{"x":5.75, "y":4, "w":2.25, "matrix":[4,5] },
{"x":8, "y":4, "w":1, "matrix":[4,6] },
{"x":9.5, "y":4, "w":2.75, "matrix":[4,8] },
{"x":12.25, "y":4, "w":1.5, "matrix":[4,10] },
{"x":16.5, "y":4.25, "w":1, "matrix":[4,12] },
{"x":17.5, "y":4.25, "w":1, "matrix":[4,13] },
{"x":18.5, "y":4.25, "w":1, "matrix":[4,14] }
]
}
}
}

View File

@ -0,0 +1,52 @@
/* Copyright 2022 Moritz Plattner
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_em8_all(
KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_em8_all(
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
),
[2] = LAYOUT_em8_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_em8_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@ -0,0 +1,52 @@
/* Copyright 2022 Moritz Plattner
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_em8_all(
KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_em8_all(
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
),
[2] = LAYOUT_em8_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_em8_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,22 @@
# EM.8
The Ergonomic Modified 8 is a tented ergonomic keyboard and the successor to the EM.7, designed by Syryan and Lx3.The default PCB supports hotswap and the layout options are limited to split or regular backpsace, as well as regular or stepped caps lock.
* Keyboard maintainer: [ebastler](https://github.com/ebastler)
* Hardware supported: Lin EM.8
* Hardware availability: Groupbuy. More infos on [the Linworks Discord](https://discord.gg/UC8gTdVnsj)
Make example for this keyboard (after setting up your build environment):
make linworks/em8:default
Flash example for this keyboard:
make linworks/em8:default:flash
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).
## How to enter the bootloader
* **Bootmagic reset**: Hold down the key `ESC` key and plug in the keyboard (Top left most switch). On older firmware revisions, `~` (top left most switch of the alpha cluster) may be needed instead.
* **Physical reset button**: Briefly press the button on the back of the PCB

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -1,5 +1,5 @@
{ {
"keyboard_name": "Unicomp Spacesaver M", "keyboard_name": "Unicomp Classic / Ultra Classic (post-2013)",
"manufacturer": "Unicomp/Purdea Andrei", "manufacturer": "Unicomp/Purdea Andrei",
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb", "url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
"maintainer": "purdeaandrei", "maintainer": "purdeaandrei",

View File

@ -1,5 +1,5 @@
{ {
"keyboard_name": "Unicomp Spacesaver M", "keyboard_name": "Unicomp Classic / Ultra Classic (pre-2013)",
"manufacturer": "Unicomp/Purdea Andrei", "manufacturer": "Unicomp/Purdea Andrei",
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb", "url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
"maintainer": "purdeaandrei", "maintainer": "purdeaandrei",

View File

@ -370,7 +370,7 @@ def _extract_split_right_pins(info_data, config_c):
direct_pins = config_c.get('DIRECT_PINS_RIGHT', '').replace(' ', '')[1:-1] direct_pins = config_c.get('DIRECT_PINS_RIGHT', '').replace(' ', '')[1:-1]
if row_pins or col_pins or direct_pins: if row_pins or col_pins or direct_pins:
if info_data.get('split', {}).get('matrix_pins', {}).get('right') in info_data: if info_data.get('split', {}).get('matrix_pins', {}).get('right', None):
_log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.')
if 'split' not in info_data: if 'split' not in info_data:

View File

@ -45,6 +45,9 @@
# include "joystick.h" # include "joystick.h"
#endif #endif
// TODO: wb32 support defines ISO macro which breaks PRODUCT stringification
#undef ISO
// clang-format off // clang-format off
/* /*