[Keyboard] Refactor Caticorn PCB (#21644)

This commit is contained in:
HorrorTroll 2023-08-14 13:12:59 +07:00 committed by GitHub
parent 07dc49a918
commit 3da773dbdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 116 additions and 414 deletions

View File

@ -1,20 +1,27 @@
{ {
"keyboard_name": "Caticorn Hotswap", "keyboard_name": "Caticorn Hotswap",
"manufacturer": "HorrorTroll", "manufacturer": "HorrorTroll",
"url": "",
"maintainer": "HorrorTroll", "maintainer": "HorrorTroll",
"usb": { "usb": {
"vid": "0x7516", "vid": "0x7516",
"pid": "0x6002", "pid": "0x6002",
"device_version": "0.0.1" "device_version": "0.0.1"
}, },
"diode_direction": "COL2ROW",
"matrix_pins": { "matrix_pins": {
"cols": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP20", "GP21", "GP16", "GP17", "GP18", "GP19", "GP15", "GP14", "GP13", "GP10", "GP9"], "cols": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP20", "GP21", "GP16", "GP17", "GP18", "GP19", "GP15", "GP14", "GP13", "GP10", "GP9"],
"rows": ["GP7", "GP0", "GP8", "GP25", "GP11", "GP12"] "rows": ["GP7", "GP0", "GP8", "GP25", "GP11", "GP12"]
}, },
"diode_direction": "COL2ROW",
"processor": "RP2040", "processor": "RP2040",
"bootloader": "rp2040", "bootloader": "rp2040",
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": false,
"nkro": true
},
"community_layouts": ["tkl_f13_ansi"], "community_layouts": ["tkl_f13_ansi"],
"layouts": { "layouts": {
"LAYOUT_tkl_f13_ansi": { "LAYOUT_tkl_f13_ansi": {

View File

@ -1,4 +1,4 @@
/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll> /* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -26,8 +26,6 @@ enum layer_names {
_FN, _FN,
}; };
// enum layer_keycodes { };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* /*
@ -86,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
Fn Fn
*/ */
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_FN] = LAYOUT_tkl_f13_ansi( [_FN] = LAYOUT_tkl_f13_ansi(
QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, KC_MYCM, _______, _______, _______, QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, KC_MYCM, _______, _______, _______,
NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -1,19 +0,0 @@
/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
*
* 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 DYNAMIC_KEYMAP_LAYER_COUNT 2

View File

@ -1,4 +1,4 @@
/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll> /* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -26,8 +26,6 @@ enum layer_names {
_FN, _FN,
}; };
// enum layer_keycodes { };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* /*

View File

@ -1,10 +1,12 @@
# Caticorn Hotswap (Rev 1) # Caticorn Hotswap (Rev 1)
![Caticorn](https://i.imgur.com/DPbDtwKh.png)
A TKL keyboard, which controlled by an RP2040 chipset. A TKL keyboard, which controlled by an RP2040 chipset.
* Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll) * Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll)
* Hardware Supported: RP2040 * Hardware Supported: RP2040
* Hardware Availability: Prototype PCB * Hardware Availability: Private prototype (only 5 PCB available)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
@ -21,5 +23,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 3 ways: Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard
* **Physical reset button**: Press and hold the button on the back of the PCB, then plug USB onto PC * **Physical reset button**: Press and hold the button on the back of the PCB, then plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -1,16 +1 @@
# Build Options # This file intentionally left blank
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # 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 N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
# EEPROM driver
EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = rp2040_flash

View File

@ -1,20 +1,27 @@
{ {
"keyboard_name": "Caticorn Solder", "keyboard_name": "Caticorn Solder",
"manufacturer": "HorrorTroll", "manufacturer": "HorrorTroll",
"url": "",
"maintainer": "HorrorTroll", "maintainer": "HorrorTroll",
"usb": { "usb": {
"vid": "0x7516", "vid": "0x7516",
"pid": "0x6001", "pid": "0x6001",
"device_version": "0.0.1" "device_version": "0.0.1"
}, },
"diode_direction": "COL2ROW",
"matrix_pins": { "matrix_pins": {
"cols": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP20", "GP21", "GP16", "GP17", "GP18", "GP19", "GP15", "GP14", "GP13", "GP10", "GP9"], "cols": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP20", "GP21", "GP16", "GP17", "GP18", "GP19", "GP15", "GP14", "GP13", "GP10", "GP9"],
"rows": ["GP7", "GP0", "GP8", "GP25", "GP11", "GP12"] "rows": ["GP7", "GP0", "GP8", "GP25", "GP11", "GP12"]
}, },
"diode_direction": "COL2ROW",
"processor": "RP2040", "processor": "RP2040",
"bootloader": "rp2040", "bootloader": "rp2040",
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": false,
"nkro": true
},
"community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift"], "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift"],
"layouts": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {

View File

@ -1,4 +1,4 @@
/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll> /* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -22,231 +22,75 @@
// entirely and just use numbers. // entirely and just use numbers.
enum layer_names { enum layer_names {
_F12, _BASE,
_F13,
_F12_7U,
_F13_7U,
_FN, _FN,
}; };
enum layer_keycodes {
TOG_F12 = SAFE_RANGE, //Enable default layer for F12 layout
TOG_F13, //Enable default layer for F13 layout
F12_TGN, //Enable default layer for F12 Tsangan layout
F13_TGN, //Enable default layer for F13 Tsangan layout
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12PScScrPse
` 1 2 3 4 5 6 7 8 9 0 - = ¥ BksInsHomPgU
Tab q w e r t y u i o p [ ] \ DelEndPgD
Caps a s d f g h j k l ; ' Enter
LSft \ z x c v b n m , . / RSft Fn
LCrlGUI LAlt Space RAlt Fn GUIRCrl
~ ! @ # $ % ^ & * ( ) _ + |
Q W E R T Y U I O P { } |
Caps A S D F G H J K L : " │ │
LSft | Z X C V B N M < > ? RSft
*/
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F12] = LAYOUT_all(
KC_ESC, _______, 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_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/* /*
EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12F13PScScrPse EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12F13PScScrPse
` 1 2 3 4 5 6 7 8 9 0 - = ¥ BksInsHomPgU ` 1 2 3 4 5 6 7 8 9 0 - = BackspInsHomPgU
Tab q w e r t y u i o p [ ] \ DelEndPgD Tab q w e r t y u i o p [ ] \ DelEndPgD
Caps a s d f g h j k l ; ' Enter Caps a s d f g h j k l ; ' Enter
LSft \ z x c v b n m , . / RSft Fn LShift z x c v b n m , . / RShift
LCrlGUI LAlt Space RAlt Fn GUIRCrl LCrlGUI LAlt Space RAlt Fn GUIRCrl
~ ! @ # $ % ^ & * ( ) _ + | ~ ! @ # $ % ^ & * ( ) _ +
Q W E R T Y U I O P { } | Q W E R T Y U I O P { } |
Caps A S D F G H J K L : " │ │ Caps A S D F G H J K L : " │ │
LSft | Z X C V B N M < > ? RSft LShift Z X C V B N M < > ? RShift
*/ */
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F13] = LAYOUT_all( [_BASE] = LAYOUT_tkl_f13_ansi(
KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, 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_INS, KC_HOME, 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_END, KC_PGDN, 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_END, 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_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, MO(_FN), KC_UP, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/*
Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12PScScrPse
` 1 2 3 4 5 6 7 8 9 0 - = ¥ BksInsHomPgU
Tab q w e r t y u i o p [ ] \ DelEndPgD
Caps a s d f g h j k l ; ' Enter
LSft \ z x c v b n m , . / RSft Fn
LCrl GUILAlt Space RAlt FnRCrl
~ ! @ # $ % ^ & * ( ) _ + |
Q W E R T Y U I O P { } |
Caps A S D F G H J K L : " │ │
LSft | Z X C V B N M < > ? RSft
*/
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F12_7U] = LAYOUT_all(
KC_ESC, _______, 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_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
), ),
/* /*
EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12F13PScScrPse RstMePVoDVoUMutStpPrvPlyNxtMaiHomCalSch
` 1 2 3 4 5 6 7 8 9 0 - = ¥ BksInsHomPgU NKO
Tab q w e r t y u i o p [ ] \ DelEndPgD
Caps a s d f g h j k l ; ' Enter
LSft \ z x c v b n m , . / RSft Fn
LCrl GUILAlt Space RAlt FnRCrl
~ ! @ # $ % ^ & * ( ) _ + |
Q W E R T Y U I O P { } |
Caps A S D F G H J K L : " │ │
LSft | Z X C V B N M < > ? RSft
*/
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F13_7U] = LAYOUT_all(
KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/*
Rst MePVoDVoUMutStpPrvPlyNxtMaiHomCalSch
NKO
Fn Fn
*/ */
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_FN] = LAYOUT_all( [_FN] = LAYOUT_tkl_f13_ansi(
QK_BOOT, _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, _______,
NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TOG_F12, TOG_F13, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F12_TGN, F13_TGN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), )
}; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case TOG_F12:
if (record->event.pressed) {
set_single_persistent_default_layer(_F12);
}
return false;
case TOG_F13:
if (record->event.pressed) {
set_single_persistent_default_layer(_F13);
}
return false;
case F12_TGN:
if (record->event.pressed) {
set_single_persistent_default_layer(_F12_7U);
}
return false;
case F13_TGN:
if (record->event.pressed) {
set_single_persistent_default_layer(_F13_7U);
}
return false;
}
return true;
}

View File

@ -1,19 +0,0 @@
/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
*
* 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 DYNAMIC_KEYMAP_LAYER_COUNT 5

View File

@ -1,4 +1,4 @@
/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll> /* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -24,16 +24,8 @@
enum layer_names { enum layer_names {
_F12, _F12,
_F13, _F13,
_F12_7U, _FN1,
_F13_7U, _FN2,
_FN,
};
enum layer_keycodes {
TOG_F12 = SAFE_RANGE, //Enable default layer for F12 layout
TOG_F13, //Enable default layer for F13 layout
F12_TGN, //Enable default layer for F12 Tsangan layout
F13_TGN, //Enable default layer for F13 Tsangan layout
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@ -68,14 +60,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F12] = LAYOUT_all( [_F12] = LAYOUT_all(
KC_ESC, _______, 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_PSCR, KC_SCRL, KC_PAUS, KC_ESC, _______, 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_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, 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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, KC_PGDN, 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_END, 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_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, MO(_FN), KC_UP, 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, MO(_FN1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
), ),
/* /*
@ -108,94 +100,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F13] = LAYOUT_all( [_F13] = LAYOUT_all(
KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, 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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, KC_PGDN, 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_END, 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_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, MO(_FN), KC_UP, 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, MO(_FN2), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/*
Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12PScScrPse
` 1 2 3 4 5 6 7 8 9 0 - = ¥ BksInsHomPgU
Tab q w e r t y u i o p [ ] \ DelEndPgD
Caps a s d f g h j k l ; ' Enter
LSft \ z x c v b n m , . / RSft Fn
LCrl GUILAlt Space RAlt FnRCrl
~ ! @ # $ % ^ & * ( ) _ + |
Q W E R T Y U I O P { } |
Caps A S D F G H J K L : " │ │
LSft | Z X C V B N M < > ? RSft
*/
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F12_7U] = LAYOUT_all(
KC_ESC, _______, 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_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/*
EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12F13PScScrPse
` 1 2 3 4 5 6 7 8 9 0 - = ¥ BksInsHomPgU
Tab q w e r t y u i o p [ ] \ DelEndPgD
Caps a s d f g h j k l ; ' Enter
LSft \ z x c v b n m , . / RSft Fn
LCrl GUILAlt Space RAlt FnRCrl
~ ! @ # $ % ^ & * ( ) _ + |
Q W E R T Y U I O P { } |
Caps A S D F G H J K L : " │ │
LSft | Z X C V B N M < > ? RSft
*/
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_F13_7U] = LAYOUT_all(
KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS,
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_INT3, KC_BSPC, KC_INS, KC_HOME, 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_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
), ),
/* /*
@ -215,38 +127,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
/* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
[_FN] = LAYOUT_all( [_FN1] = LAYOUT_all(
QK_BOOT, _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, QK_BOOT, _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, TO(_F13),
NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TOG_F12, TOG_F13, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F12_TGN, F13_TGN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) { /*
switch (keycode) {
case TOG_F12: RstMePVoDVoUMutStpPrvPlyNxtMaiHomCalSch
if (record->event.pressed) {
set_single_persistent_default_layer(_F12);
} NKO
return false;
case TOG_F13:
if (record->event.pressed) {
set_single_persistent_default_layer(_F13);
}
return false;
case F12_TGN:
if (record->event.pressed) { Fn
set_single_persistent_default_layer(_F12_7U);
} */
return false; /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
case F13_TGN: [_FN2] = LAYOUT_all(
if (record->event.pressed) { QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, TO(_F12),
set_single_persistent_default_layer(_F13_7U); NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
} _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
return false; _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
} _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
return true; _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
} )
};

View File

@ -1,10 +1,12 @@
# Caticorn Solder (Rev 1) # Caticorn Solder (Rev 1)
![Caticorn](https://i.imgur.com/g5aCKQUh.png)
A TKL keyboard, which controlled by an RP2040 chipset. A TKL keyboard, which controlled by an RP2040 chipset.
* Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll) * Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll)
* Hardware Supported: RP2040 * Hardware Supported: RP2040
* Hardware Availability: Prototype PCB * Hardware Availability: Private prototype (only 5 PCB available)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
@ -21,5 +23,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 3 ways: Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard
* **Physical reset button**: Press and hold the button on the back of the PCB, then plug USB onto PC * **Physical reset button**: Press and hold the button on the back of the PCB, then plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -1,16 +1 @@
# Build Options # This file intentionally left blank
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # 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 N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
# EEPROM driver
EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = rp2040_flash