kong personal board firmware

This commit is contained in:
Sadek Baroudi 2023-04-14 16:29:07 -07:00
parent bd1c91cb5a
commit fcc548f105
17 changed files with 608 additions and 0 deletions

View File

@ -0,0 +1,21 @@
//#pragma once
#include "quantum.h"
// readability
#define ___ KC_NO
#define LAYOUT_kong( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
}
#define LAYOUT LAYOUT_kong

View File

@ -0,0 +1,20 @@
/*
Copyright 2022 weteor
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

View File

@ -0,0 +1,20 @@
/*
Copyright 2022 weteor
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_next <halconf.h>

View File

@ -0,0 +1,89 @@
{
"keyboard_name": "kong",
"manufacturer": "weteor",
"url": "https://github.com/weteor/orthocade/",
"maintainer": "weteor",
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"rp2040_bootloader_double_tap_reset": true,
"rp2040_bootloader_double_tap_reset_timeout": true,
"matrix_pins" : {
"cols": [ "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21" ],
"rows": [ "GP22", "GP23", "GP24", "GP25" ]
},
"matrix_size": {
"cols": 12,
"rows": 4
},
"usb": {
"vid": "0xFEED",
"pid": "0x4657",
"device_version": "0.1.0"
},
"build": {
"lto": false,
},
"features": {
"bootmagic": true,
"extrakey": true,
"command": false,
"console": false,
"mousekey": false,
"nkro": true,
},
"layouts": {
"LAYOUT_kong": {
"layout": [
{"label": "K00", "matrix": [0,0], "x":0, "y":0},
{"label": "K01", "matrix": [0,1], "x":1, "y":0},
{"label": "K02", "matrix": [0,2], "x":2, "y":0},
{"label": "K03", "matrix": [0,3], "x":3, "y":0},
{"label": "K04", "matrix": [0,4], "x":4, "y":0},
{"label": "K05", "matrix": [0,5], "x":5, "y":0.125},
{"label": "K06", "matrix": [0,6], "x":6, "y":0.125},
{"label": "K07", "matrix": [0,7], "x":7, "y":0},
{"label": "K08", "matrix": [0,8], "x":8, "y":0},
{"label": "K09", "matrix": [0,9], "x":9, "y":0},
{"label": "K0A", "matrix": [0,10], "x":10, "y":0},
{"label": "K0B", "matrix": [0,11], "x":11, "y":0},
{"label": "K10", "matrix": [1,0], "x":0, "y":1},
{"label": "K11", "matrix": [1,1], "x":1, "y":1},
{"label": "K12", "matrix": [1,2], "x":2, "y":1},
{"label": "K13", "matrix": [1,3], "x":3, "y":1},
{"label": "K14", "matrix": [1,4], "x":4, "y":1},
{"label": "K15", "matrix": [1,5], "x":5, "y":1.125},
{"label": "K16", "matrix": [1,6], "x":6, "y":1.125},
{"label": "K17", "matrix": [1,7], "x":7, "y":1},
{"label": "K18", "matrix": [1,8], "x":8, "y":1},
{"label": "K19", "matrix": [1,9], "x":9, "y":1},
{"label": "K1A", "matrix": [1,10], "x":10, "y":1},
{"label": "K1B", "matrix": [1,11], "x":11, "y":1},
{"label": "K20", "matrix": [2,0], "x":0, "y":2},
{"label": "K21", "matrix": [2,1], "x":1, "y":2},
{"label": "K22", "matrix": [2,2], "x":2, "y":2},
{"label": "K23", "matrix": [2,3], "x":3, "y":2},
{"label": "K24", "matrix": [2,4], "x":4, "y":2},
{"label": "K25", "matrix": [2,5], "x":5, "y":2.125},
{"label": "K26", "matrix": [2,6], "x":6, "y":2.125},
{"label": "K27", "matrix": [2,7], "x":7, "y":2},
{"label": "K28", "matrix": [2,8], "x":8, "y":2},
{"label": "K29", "matrix": [2,9], "x":9, "y":2},
{"label": "K2A", "matrix": [2,10], "x":10, "y":2},
{"label": "K2B", "matrix": [2,11], "x":11, "y":2},
{"label": "K30", "matrix": [3,0], "x":0, "y":3.25},
{"label": "K31", "matrix": [3,1], "x":1, "y":3.25},
{"label": "K32", "matrix": [3,2], "x":2, "y":3.25},
{"label": "K33", "matrix": [3,3], "x":3, "y":3.25},
{"label": "K34", "matrix": [3,4], "x":4, "y":3.25},
{"label": "K35", "matrix": [3,5], "x":5, "y":3.375},
{"label": "K36", "matrix": [3,6], "x":6, "y":3.375},
{"label": "K37", "matrix": [3,7], "x":7, "y":3.25},
{"label": "K38", "matrix": [3,8], "x":8, "y":3.25},
{"label": "K39", "matrix": [3,9], "x":9, "y":3.25},
{"label": "K3A", "matrix": [3,10], "x":10, "y":3.25},
{"label": "K3B", "matrix": [3,11], "x":11, "y":3.25}
]
}
}
}

View File

@ -0,0 +1,40 @@
/* Copyright 2021 weteor
*
* 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
enum layers
{
_ALPHA_QWERTY = 0,
_UP = 1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ALPHA_QWERTY] = LAYOUT_ortho12u_2x3u(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
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_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_UP, KC_ENT), KC_RALT, KC_RGUI, KC_RCTL
),
[_UP] = LAYOUT_ortho12u_2x3u(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, _______, _______, _______, XXXXXXX, _______, _______, _______
),
};

View File

@ -0,0 +1,88 @@
/* Copyright 2021 weteor
*
* 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 "sadekbaroudi.h"
#include QMK_KEYBOARD_H
// clang-format off
#define LAYOUT_kong_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
K33, K34, K35, K36, K37, K38 \
) \
LAYOUT_wrapper( \
K01, K02, K03, LT(_FUNCTION, K04), K05, _______, _______, K06, LT(_FUNCTION, K07), K08, K09, K0A, \
LCTL_T(K11), LGUI_T(K12), LALT_T(K13), LSFT_T(K14), K15, _______, _______, LT(_MOUSE, K16), RSFT_T(K17), RALT_T(K18), RGUI_T(K19), RCTL_T(K1A), \
K21, K22, K23, K24, K25, _______, _______, K26, K27, K28, K29, K2A, \
_______, _______, _______, K33, LT(_NAVIGATION,K34), LT(_FUNCTION,K35), LT(_MEDIA,K36), LT(_SYMBOLS,K37), K38, _______, _______, _______ \
)
/* Re-pass though to allow templates to be used */
#define LAYOUT_kong_base_wrapper(...) LAYOUT_kong_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ALPHA_ALT] = LAYOUT_kong_base_wrapper(
_________________ALPHA_ALT_L1_________________, _________________ALPHA_ALT_R1_________________,
_________________ALPHA_ALT_L2_________________, _________________ALPHA_ALT_R2_________________,
_________________ALPHA_ALT_L3_________________, _________________ALPHA_ALT_R3_________________,
__ALPHA_ALT_THUMBS_6__
),
[_ALPHA] = LAYOUT_kong_base_wrapper(
__________________ALPHA_L1____________________, __________________ALPHA_R1____________________,
__________________ALPHA_L2____________________, __________________ALPHA_R2____________________,
__________________ALPHA_L3____________________, __________________ALPHA_R3____________________,
__ALPHA_THUMBS_6__
),
[_NAVIGATION] = LAYOUT_wrapper(
________________NAVIGATION_1_______________, _______, _______, _________________NUMPAD_1__________________,
________________NAVIGATION_2_______________, _______, _______, _________________NUMPAD_2__________________,
________________NAVIGATION_3_______________, _______, _______, _________________NUMPAD_3__________________,
_______, _______, _______, _______, _______, KC_TAB, KC_BSPC, KC_SPACE, KC_DOT, _______, _______, _______
),
[_SYMBOLS] = LAYOUT_wrapper(
________________SYMBOLS_L1_________________, _______, _______, ________________SYMBOLS_R1_________________,
________________SYMBOLS_L2_________________, _______, _______, ________________SYMBOLS_R2_________________,
________________SYMBOLS_L3_________________, _______, _______, ________________SYMBOLS_R3_________________,
_______, _______, _______, _______, KC_ENT, KC_DEL, KC_BSPC, _______, _______, _______, _______, _______
),
[_FUNCTION] = LAYOUT_wrapper(
________________SHIFTNAV_1_________________, _______, _______, ________________FUNCTION_1_________________,
________________SHIFTNAV_2_________________, _______, _______, ________________FUNCTION_2_________________,
________________SHIFTNAV_3_________________, _______, _______, ________________FUNCTION_3_________________,
___________________BLANK___________________, _______, N_DEL_LINE, KC_SPACE, _______, _______, _______, _______
),
[_MEDIA] = LAYOUT_wrapper(
___________________RGB_1___________________, _______, _______, _________________MACROS_1__________________,
___________________RGB_2___________________, _______, _______, _________________MACROS_2__________________,
___________________RGB_3___________________, _______, _______, _________________MACROS_3__________________,
___________________BLANK___________________, _______, _______, ___________________BLANK___________________
),
[_MOUSE] = LAYOUT_wrapper(
__________________MOUSE_1__________________, _______, _______, ___________________BLANK___________________,
__________________MOUSE_2__________________, _______, _______, ___________________BLANK___________________,
__________________MOUSE_3__________________, _______, _______, ___________________BLANK___________________,
_______, _______, _______, _______, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN3, KC_MS_BTN2, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,20 @@
/* Copyright 2021 weteor
*
* 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 "brk_out.h"

View File

@ -0,0 +1,67 @@
/* Copyright 2021 weteor
*
* 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 XXX KC_NO
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
/*#define LAYOUT_ortho10u_1u_2u( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k30, k31, k33, k34, k35, k36, k38, k39 \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
{ k30, k31, XXX, k33, k34, k35, k36, XXX, k38, k39 } \
}
#define LAYOUT_ortho10u_1_25u_1_75u( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k30, k31, k33, k34, k35, k36, k38, k39 \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
{ k30, k31, XXX, k33, k34, k35, k36, XXX, k38, k39 } \
}
#define LAYOUT_ortho10u_2_25u_1_5u_2_25u( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k30, k31, k33, k34, k35, k38, k39 \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
{ k30, k31, XXX, k33, k34, k35, XXX, XXX, k38, k39 } \
}
*/

View File

@ -0,0 +1,25 @@
/*
Copyright 2022 weteor
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
#define VIAL_KEYBOARD_UID {0x4B, 0x25, 0xFF, 0x63, 0xAE, 0x22, 0x5A, 0x5A}
#define VIAL_KEY_OVERRIDE_ENTRIES 20
#define VIAL_COMBO_ENTRIES 20
#define VIAL_TAP_DANCE_ENTRIES 20
#define DYNAMIC_KEYMAP_LAYER_COUNT 6

View File

@ -0,0 +1,33 @@
/* Copyright 2021 weteor
*
* 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
enum layers
{
_ALPHA_QWERTY = 0,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ALPHA_QWERTY] = LAYOUT_ortho12u(
KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_LGUI, KC_LALT, _______, KC_SPC, _______, _______, KC_ENT, _______, KC_RALT, KC_RGUI
),
};

View File

@ -0,0 +1,3 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIAL_INSECURE = yes

View File

@ -0,0 +1,154 @@
{
"lighting": "none",
"matrix": {
"rows": 4,
"cols": 12
},
"layouts": {
"labels": [
[
"Left Thumb options",
"1-2",
"3",
"1-1-1"
],
[
"Right Thumb options",
"1-2",
"3",
"1-1-1"
]
],
"keymap":[
[
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 2
},
"0,7",
"0,8",
"0,9",
"0,10",
"0,11"
],
[
{
"y": -0.75,
"x": 5
},
"0,5",
"0,6"
],
[
{
"y": -0.25
},
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
{
"x": 2
},
"1,7",
"1,8",
"1,9",
"1,10",
"1,11"
],
[
{
"y": -0.75,
"x": 5
},
"1,5",
"1,6"
],
[
{
"y": -0.25
},
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
{
"x": 2
},
"2,7",
"2,8",
"2,9",
"2,10",
"2,11"
],
[
{
"y": -0.75,
"x": 5
},
"2,5",
"2,6"
],
[
{
"y": -0.25
},
"3,0",
"3,1",
"3,2\n\n\n0,0",
{
"w": 2
},
"3,4\n\n\n0,0",
{
"x": 2,
"w": 2
},
"3,8\n\n\n1,0",
"3,9\n\n\n1,0",
"3,10",
"3,11"
],
[
{
"y": -0.75,
"x": 5
},
"3,5",
"3,6"
],
[
{
"x": 2,
"w": 3
},
"3,3\n\n\n0,1",
{
"x": 2,
"w": 3
},
"3,8\n\n\n1,1"
],
[
{
"x": 2
},
"3,2\n\n\n0,2",
"3,3\n\n\n0,2",
"3,4\n\n\n0,2",
{
"x": 2
},
"3,7\n\n\n1,2",
"3,8\n\n\n1,2",
"3,9\n\n\n1,2"
]
]
}
}

View File

@ -0,0 +1,21 @@
/*
Copyright 2022 weteor
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_next <mcuconf.h>

View File

@ -0,0 +1 @@
#include "mx.h"

View File

@ -0,0 +1 @@
### kong

View File

@ -156,6 +156,11 @@ expanded before being used as arguments to the LAYOUT_xxx macro.
# define LAYOUT LAYOUT_zazu
#endif
// Since kong uses the name LAYOUT_kong instead of LAYOUT
#if (!defined(LAYOUT) && defined(LAYOUT_kong))
# define LAYOUT LAYOUT_kong
#endif
// clang-format off
#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)