1
0

Compare commits

...

6 Commits

Author SHA1 Message Date
Joel Challis
2645751ce1 Add warning when deprecated 'promicro_rp2040' is used (#25112) 2025-04-08 12:35:43 +10:00
Joel Challis
ca84b57042 Remove direct docs.qmk.fm links from docs (#25113) 2025-04-08 12:31:17 +10:00
sudo pacman -Syu
5f222a3e02 Fix coban pad9a wrong layout in keyboard.json (#25100) 2025-04-07 11:03:05 -06:00
Ivan Gromov
f94c8fd766 [Keyboard] Add Ortho Slayer (#25099)
* Add Ortho Slayer

* Update keyboards/keyten/ortho_slayer/keymaps/default/keymap.c

Co-authored-by: jack <jack@pngu.org>

* Update keyboards/keyten/ortho_slayer/readme.md

Co-authored-by: jack <jack@pngu.org>

---------

Co-authored-by: jack <jack@pngu.org>
2025-04-07 00:29:37 -06:00
nonameCCC
a7ac6e4e68 [Keyboard] Add PHDesign PH60/Multi Keyboard PCB (#25086)
* Add PH60/Multi Support

* Add PCB PIcture for README

* Remove MO(_FN2)

* README Typo Fix

* Layout and README Adjustment

* Add README for PHDesign Main Folder

* Keymap Improvement

* Update README.md
2025-04-06 22:03:24 -06:00
Dam Vu Duy
9e775b8e9d Add Coban Pad 12A (#25039)
Co-authored-by: jack <jack@pngu.org>
2025-04-06 10:56:19 -07:00
16 changed files with 640 additions and 3 deletions

View File

@@ -231,7 +231,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat
If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/)
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help!
There are a lot of possibilities inside the firmware - explore [the documentation](/) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help!
## Links to Other Guides

View File

@@ -85,7 +85,7 @@ Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired
If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past.
PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](https://docs.qmk.fm/pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation.
PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation.
## Detection

View File

@@ -0,0 +1,7 @@
// Copyright 2025 RyanDam (https://github.com/RyanDam)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U

View File

@@ -0,0 +1,50 @@
{
"keyboard_name": "Coban Pad 12A",
"name": "Coban Pad 12A",
"url": "https://cobanstationery.com",
"maintainer": "Coban Stationery",
"manufacturer": "Coban Stationery",
"usb": {
"pid": "0xC12A",
"vid": "0xCB3A",
"device_version": "1.0.0"
},
"matrix_pins": {
"cols": ["GP18", "GP16", "GP11", "GP10"],
"rows": ["GP19", "GP17", "GP12"]
},
"diode_direction": "ROW2COL",
"encoder": {
"rotary": [
{"pin_a": "GP20", "pin_b": "GP21"}
]
},
"processor": "RP2040",
"bootloader": "rp2040",
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2}
]
}
}
}

View File

@@ -0,0 +1,19 @@
// Copyright 2025 RyanDam (https://github.com/RyanDam)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MPLY, KC_MPRV, KC_MUTE, KC_MNXT,
KC_PGUP, KC_ESC, KC_UP, KC_ENT,
KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
};
#endif

View File

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

View File

@@ -0,0 +1,23 @@
# Coban Pad 12A
![Coban Pad 12A](https://i.imgur.com/PTIaQld.jpeg)
Small ortho keyboard with 11 hotswapable buttons and 1 encoder
* Keyboard Maintainer: [RyanDam](https://github.com/RyanDam)
* Hardware Supported: Coban Pad 12A
Make example for this keyboard (after setting up your build environment):
make coban/pad12a:default
Flashing example for this keyboard:
make coban/pad12a: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).
## Bootloader
Enter the bootloader:
* **boot button**: Hold the BOOT button on the back of the PCB while plug in usb cable

View File

@@ -69,7 +69,7 @@
{"label": "key_3", "matrix": [0, 4], "x": 2, "y": 1},
{"label": "key_4", "matrix": [0, 5], "x": 0, "y": 2},
{"label": "key_5", "matrix": [0, 6], "x": 1, "y": 2},
{"label": "key_6", "matrix": [0, 7], "x": 2, "y": 3}
{"label": "key_6", "matrix": [0, 7], "x": 2, "y": 2}
]
}
}

View File

@@ -0,0 +1,117 @@
{
"manufacturer": "keyten x La-Versa",
"keyboard_name": "Ortho Slayer",
"maintainer": "key10iq",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"usb": {
"vid": "0xEB69",
"pid": "0x9001",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"diode_direction": "ROW2COL",
"matrix_pins": {
"rows": ["B6", "B4", "A15", "B0", "B1", "A6", "B15", "B11", "A9", "B13"],
"cols": ["B7", "B14", "B5", "A8", "B3", "A10", "A14", "B12", "A7", "B2", "B10"]
},
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [1, 0], "x": 1, "y": 0 },
{ "matrix": [0, 1], "x": 2, "y": 0 },
{ "matrix": [1, 1], "x": 3, "y": 0 },
{ "matrix": [0, 2], "x": 4, "y": 0 },
{ "matrix": [1, 2], "x": 5, "y": 0 },
{ "matrix": [0, 3], "x": 6, "y": 0 },
{ "matrix": [1, 3], "x": 7, "y": 0 },
{ "matrix": [0, 4], "x": 8, "y": 0 },
{ "matrix": [1, 4], "x": 9, "y": 0 },
{ "matrix": [0, 5], "x": 10, "y": 0 },
{ "matrix": [1, 5], "x": 11, "y": 0 },
{ "matrix": [0, 6], "x": 12, "y": 0 },
{ "matrix": [1, 6], "x": 13, "y": 0 },
{ "matrix": [0, 7], "x": 14.25, "y": 0 },
{ "matrix": [1, 7], "x": 15.25, "y": 0 },
{ "matrix": [0, 8], "x": 16.25, "y": 0 },
{ "matrix": [1, 8], "x": 17.5, "y": 0 },
{ "matrix": [0, 9], "x": 18.5, "y": 0 },
{ "matrix": [1, 9], "x": 19.5, "y": 0 },
{ "matrix": [0, 10], "x": 20.5, "y": 0 },
{ "matrix": [2, 0], "x": 0, "y": 1 },
{ "matrix": [3, 0], "x": 1, "y": 1 },
{ "matrix": [2, 1], "x": 2, "y": 1 },
{ "matrix": [3, 1], "x": 3, "y": 1 },
{ "matrix": [2, 2], "x": 4, "y": 1 },
{ "matrix": [3, 2], "x": 5, "y": 1 },
{ "matrix": [2, 3], "x": 6, "y": 1 },
{ "matrix": [3, 3], "x": 7, "y": 1 },
{ "matrix": [2, 4], "x": 8, "y": 1 },
{ "matrix": [3, 4], "x": 9, "y": 1 },
{ "matrix": [2, 5], "x": 10, "y": 1 },
{ "matrix": [3, 5], "x": 11, "y": 1 },
{ "matrix": [2, 6], "x": 12, "y": 1 },
{ "matrix": [3, 6], "x": 13, "y": 1 },
{ "matrix": [2, 7], "x": 14.25, "y": 1 },
{ "matrix": [3, 7], "x": 15.25, "y": 1 },
{ "matrix": [2, 8], "x": 16.25, "y": 1 },
{ "matrix": [3, 8], "x": 17.5, "y": 1 },
{ "matrix": [2, 9], "x": 18.5, "y": 1 },
{ "matrix": [3, 9], "x": 19.5, "y": 1 },
{ "h": 2, "matrix": [5, 10], "x": 20.5, "y": 1 },
{ "matrix": [4, 0], "x": 0, "y": 2 },
{ "matrix": [5, 0], "x": 1, "y": 2 },
{ "matrix": [4, 1], "x": 2, "y": 2 },
{ "matrix": [5, 1], "x": 3, "y": 2 },
{ "matrix": [4, 2], "x": 4, "y": 2 },
{ "matrix": [5, 2], "x": 5, "y": 2 },
{ "matrix": [4, 3], "x": 6, "y": 2 },
{ "matrix": [5, 3], "x": 7, "y": 2 },
{ "matrix": [4, 4], "x": 8, "y": 2 },
{ "matrix": [5, 4], "x": 9, "y": 2 },
{ "matrix": [4, 5], "x": 10, "y": 2 },
{ "matrix": [5, 5], "x": 11, "y": 2 },
{ "matrix": [4, 6], "x": 12, "y": 2 },
{ "matrix": [5, 6], "x": 13, "y": 2 },
{ "matrix": [5, 9], "x": 17.5, "y": 2 },
{ "matrix": [4, 9], "x": 18.5, "y": 2 },
{ "matrix": [4, 10], "x": 19.5, "y": 2 },
{ "matrix": [6, 0], "w": 2, "x": 0, "y": 3 },
{ "matrix": [7, 0], "x": 2, "y": 3 },
{ "matrix": [6, 2], "x": 3, "y": 3 },
{ "matrix": [7, 2], "x": 4, "y": 3 },
{ "matrix": [6, 3], "x": 5, "y": 3 },
{ "matrix": [7, 3], "x": 6, "y": 3 },
{ "matrix": [6, 4], "x": 7, "y": 3 },
{ "matrix": [7, 4], "x": 8, "y": 3 },
{ "matrix": [6, 5], "x": 9, "y": 3 },
{ "matrix": [7, 5], "x": 10, "y": 3 },
{ "matrix": [7, 6], "x": 11, "y": 3 },
{ "matrix": [6, 6], "w": 2, "x": 12, "y": 3 },
{ "matrix": [6, 8], "x": 15.25, "y": 3 },
{ "matrix": [7, 8], "x": 17.5, "y": 3 },
{ "matrix": [6, 9], "x": 18.5, "y": 3 },
{ "matrix": [7, 9], "x": 19.5, "y": 3 },
{ "h": 2, "matrix": [9, 10], "x": 20.5, "y": 3 },
{ "matrix": [8, 0], "w": 1.25, "x": 0, "y": 4 },
{ "matrix": [9, 0], "x": 1.25, "y": 4 },
{ "matrix": [8, 1], "w": 1.25, "x": 2.25, "y": 4 },
{ "matrix": [8, 4], "w": 7, "x": 3.5, "y": 4 },
{ "matrix": [9, 4], "w": 1.25, "x": 10.5, "y": 4 },
{ "matrix": [8, 6], "x": 11.75, "y": 4 },
{ "matrix": [9, 6], "w": 1.25, "x": 12.75, "y": 4 },
{ "matrix": [8, 7], "x": 14.25, "y": 4 },
{ "matrix": [9, 7], "x": 15.25, "y": 4 },
{ "matrix": [8, 8], "x": 16.25, "y": 4 },
{ "matrix": [9, 8], "w": 2, "x": 17.5, "y": 4 },
{ "matrix": [8, 10], "x": 19.5, "y": 4 }
]
}
}
}

View File

@@ -0,0 +1,24 @@
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
MO(1), 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_GRV, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_ESC, 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_BSPC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_KP_9, KC_PPLS,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_P4, KC_P5, KC_P6,
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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),
[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, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,27 @@
# keyten x La-Versa Ortho Slayer
Ortho Slayer is a full size FRL ortho keyboard inspired by Berserk
![Ortho Slayer image](https://i.imgur.com/CGYysPM.jpeg)
* Keyboard Maintainer: [keyten](https://github.com/key10iq)
* Hardware Supported: keyten x La-Versa Ortho Slayer
* Hardware Availability: private GB
Make example for this keyboard (after setting up your build environment):
make keyten/ortho_slayer:default
Flashing example for this keyboard:
make keyten/ortho_slayer: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).
## Bootloader
Enter the bootloader in 3 ways:
* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available
* Physical reset button: Hold the button on the back of the PCB

View File

@@ -0,0 +1,298 @@
{
"manufacturer": "phdesign.cc",
"keyboard_name": "ph60_multi",
"maintainer": "phdesign",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"],
"rows": ["GP14", "GP15", "GP18", "GP19", "GP20"]
},
"processor": "RP2040",
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"url": "phdesign.cc",
"usb": {
"device_version": "2.0.1",
"pid": "0x0002",
"vid": "0x5048"
},
"community_layouts": ["60_ansi", "60_ansi_tsangan_split_bs_rshift", "60_iso"]
"layouts": {
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [2, 13], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [2, 13], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

@@ -0,0 +1,28 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layers {
_BASE,
_FN1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base Layer (61 keys)
[_BASE] = LAYOUT_all(
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, 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_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_NUBS, 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, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
),
// Fn1 Layer (Windows Lock Shifting Layer)
[_FN1] = LAYOUT_all(
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_DEL, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______,
_______, GU_TOGG, _______, _______, _______, _______, _______, _______
),
};

View File

@@ -0,0 +1,28 @@
# phdesign/ph60/multi
![PromoImage](https://i.imgur.com/sUwC9mk.jpg)
A 60% multi-layout supported keyboard PCB with open source keyboard case.
* Keyboard Maintainer: [Team PHDesign](https://github.com/ph-design)
* Hardware Supported: PH60/Multi PCB
* Hardware Availability:
- Store: https://e.tb.cn/h.6VMjUgWZkUGwq26?tk=oVyAeD6uPS2
- GitHub Repo: https://github.com/ph-design/PH60/tree/Rev.2/PCB_Rev2/Multi
Make example for this keyboard (after setting up your build environment):
make phdesign/ph60/multi:default
Flashing example for this keyboard:
make phdesign/ph60/multi: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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead

View File

@@ -0,0 +1,9 @@
![PHDesign Logo](https://i.imgur.com/zkiyChR.png)
PHDesign is a team focused on making variety kinds of tech stuff,including keyboards and keyboard-like controllers. This directory includes QMK config files for our keyboard products.
* Maintainer: [Team PHDesign](https://github.com/ph-design)
* Supported Hardware:
* [`PH60/Multi`](ph60/multi/): PH60 multi-layout PCB
* [`PH-AC`](phac/): PH-AC rhythm game controller
* Product Availability: [phdesing.cc](https://phdesign.cc/)

View File

@@ -1,2 +1,8 @@
CONVERTER:=platforms/chibios/converters/promicro_to_sparkfun_pm2040
ACTIVE_CONVERTER:=sparkfun_pm2040
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
$(info The 'CONVERT_TO=promicro_rp2040' option is now deprecated.)
$(info Depending on hardware either 'CONVERT_TO=sparkfun_pm2040' or 'CONVERT_TO=rp2040_ce' should be used instead.)
$(info See https://docs.qmk.fm/feature_converters#pro-micro documentation for more information.)
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)