Browse Source

[Keyboard] Add recore keyboard (#23320)

Co-authored-by: joliverMI <qmk@Desktop2023>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
pull/23153/merge
joliverMI 1 month ago
committed by GitHub
parent
commit
041f60f9a9
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
7 changed files with 292 additions and 0 deletions
  1. +18
    -0
      keyboards/pmk/recore/v3/config.h
  2. +141
    -0
      keyboards/pmk/recore/v3/info.json
  3. +52
    -0
      keyboards/pmk/recore/v3/keymaps/default/keymap.c
  4. +52
    -0
      keyboards/pmk/recore/v3/keymaps/via/keymap.c
  5. +1
    -0
      keyboards/pmk/recore/v3/keymaps/via/rules.mk
  6. +27
    -0
      keyboards/pmk/recore/v3/readme.md
  7. +1
    -0
      keyboards/pmk/recore/v3/rules.mk

+ 18
- 0
keyboards/pmk/recore/v3/config.h View File

@ -0,0 +1,18 @@
// Copyright 2023 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/*Split keyboard configuration*/
// Hardware Settings
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP1
#define SERIAL_USART_RX_PIN GP0
// Communication Settings
#define FORCED_SYNC_THROTTLE_MS 1000
#define SPLIT_MAX_CONNECTION_ERRORS 5
#define SPLIT_CONNECTION_CHECK_TIMEOUT 2000
// RGB Configuration
#define RGBLIGHT_EFFECT_BREATHE_CENTER 2.0 //1.0 to 2.7

+ 141
- 0
keyboards/pmk/recore/v3/info.json View File

@ -0,0 +1,141 @@
{
"manufacturer": "Posey's Mechanical Keyboards",
"keyboard_name": "recorev3",
"maintainer": "joliverMI",
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"rgblight": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"],
"rows": ["GP10", "GP11", "GP12", "GP13", "GP14"]
},
"processor": "RP2040",
"ws2812": {
"driver": "vendor",
"pin": "GP17"
},
"rgblight": {
"animations": {
"breathing": true
},
"layers": {
"enabled": true,
"max": 4
},
"led_count": 2,
"sleep": true,
"split": true,
"split_count": [1, 1]
},
"split": {
"enabled": true,
"handedness": {
"pin": "GP18"
}
},
"tags": ["ortho", "split"],
"url": "poseysmechanicalkeyboards.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0001",
"vid": "0x4A4F"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0,0], "x": 0, "y": 0.75, "w": 1.25},
{"matrix": [0,1], "x": 1.25, "y": 0.75},
{"matrix": [0,2], "x": 2.25, "y": 0.2},
{"matrix": [0,3], "x": 3.25, "y": 0},
{"matrix": [0,4], "x": 4.25, "y": 0.2},
{"matrix": [0,5], "x": 5.25, "y": 0.3},
{"matrix": [0,6], "x": 6.25, "y": 0.55, "h": 1.25},
{"matrix": [0,7], "x": 7.25, "y": 0.55, "h": 1.25},
{"matrix": [5,0], "x": 9.25, "y": 0.55, "h": 1.25},
{"matrix": [5,1], "x": 10.25, "y": 0.55, "h": 1.25},
{"matrix": [5,2], "x": 11.25, "y": 0.3},
{"matrix": [5,3], "x": 12.25, "y": 0.2},
{"matrix": [5,4], "x": 13.25, "y": 0},
{"matrix": [5,5], "x": 14.25, "y": 0.2},
{"matrix": [5,6], "x": 15.25, "y": 0.75},
{"matrix": [5,7], "x": 16.25, "y": 0.75, "w": 1.25},
{"matrix": [1,0], "x": 0, "y": 1.75, "w": 1.25},
{"matrix": [1,1], "x": 1.25, "y": 1.75},
{"matrix": [1,2], "x": 2.25, "y": 1.2},
{"matrix": [1,3], "x": 3.25, "y": 1},
{"matrix": [1,4], "x": 4.25, "y": 1.2},
{"matrix": [1,5], "x": 5.25, "y": 1.3},
{"matrix": [1,6], "x": 6.25, "y": 1.8, "h": 1.25},
{"matrix": [1,7], "x": 7.25, "y": 1.8, "h": 1.25},
{"matrix": [6,0], "x": 9.25, "y": 1.8, "h": 1.25},
{"matrix": [6,1], "x": 10.25, "y": 1.8, "h": 1.25},
{"matrix": [6,2], "x": 11.25, "y": 1.3},
{"matrix": [6,3], "x": 12.25, "y": 1.2},
{"matrix": [6,4], "x": 13.25, "y": 1},
{"matrix": [6,5], "x": 14.25, "y": 1.2},
{"matrix": [6,6], "x": 15.25, "y": 1.75},
{"matrix": [6,7], "x": 16.25, "y": 1.75, "w": 1.25},
{"matrix": [2,0], "x": 0, "y": 2.75, "w": 1.25},
{"matrix": [2,1], "x": 1.25, "y": 2.75},
{"matrix": [2,2], "x": 2.25, "y": 2.2},
{"matrix": [2,3], "x": 3.25, "y": 2},
{"matrix": [2,4], "x": 4.25, "y": 2.2},
{"matrix": [2,5], "x": 5.25, "y": 2.3},
{"matrix": [7,2], "x": 11.25, "y": 2.3},
{"matrix": [7,3], "x": 12.25, "y": 2.2},
{"matrix": [7,4], "x": 13.25, "y": 2},
{"matrix": [7,5], "x": 14.25, "y": 2.2},
{"matrix": [7,6], "x": 15.25, "y": 2.75},
{"matrix": [7,7], "x": 16.25, "y": 2.75, "w": 1.25},
{"matrix": [3,0], "x": 0, "y": 3.75, "w": 1.25},
{"matrix": [3,1], "x": 1.25, "y": 3.75},
{"matrix": [3,2], "x": 2.25, "y": 3.2},
{"matrix": [3,3], "x": 3.25, "y": 3},
{"matrix": [3,4], "x": 4.25, "y": 3.2},
{"matrix": [3,5], "x": 5.25, "y": 3.3},
{"matrix": [3,6], "x": 6.25, "y": 3.05, "h": 1.25},
{"matrix": [3,7], "x": 7.25, "y": 3.05, "h": 1.25},
{"matrix": [8,0], "x": 9.25, "y": 3.05, "h": 1.25},
{"matrix": [8,1], "x": 10.25, "y": 3.05, "h": 1.25},
{"matrix": [8,2], "x": 11.25, "y": 3.3},
{"matrix": [8,3], "x": 12.25, "y": 3.2},
{"matrix": [8,4], "x": 13.25, "y": 3},
{"matrix": [8,5], "x": 14.25, "y": 3.2},
{"matrix": [8,6], "x": 15.25, "y": 3.75},
{"matrix": [8,7], "x": 16.25, "y": 3.75, "w": 1.25},
{"matrix": [4,0], "x": 0, "y": 4.75, "w": 1.25},
{"matrix": [4,1], "x": 1.25, "y": 4.75},
{"matrix": [4,2], "x": 2.25, "y": 4.2, "w": 1.25},
{"matrix": [4,3], "x": 3.5, "y": 4.2, "w": 1.25},
{"matrix": [4,5], "x": 4.75, "y": 4.3, "w": 1.25},
{"matrix": [4,6], "x": 6, "y": 4.8, "h": 1.25},
{"matrix": [4,7], "x": 7, "y": 5, "h": 1.25},
{"matrix": [9,0], "x": 9.5, "y": 5, "h": 1.25},
{"matrix": [9,1], "x": 10.5, "y": 4.8, "h": 1.25},
{"matrix": [9,2], "x": 11.5, "y": 4.3, "w": 1.25},
{"matrix": [9,4], "x": 12.75, "y": 4.2, "w": 1.25},
{"matrix": [9,5], "x": 14, "y": 4.2, "w": 1.25},
{"matrix": [9,6], "x": 15.25, "y": 4.75},
{"matrix": [9,7], "x": 16.25, "y": 4.75, "w": 1.25}
]
}
}
}

+ 52
- 0
keyboards/pmk/recore/v3/keymaps/default/keymap.c View File

@ -0,0 +1,52 @@
// Copyright 2024 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_QWERTY,
_NAV,
_SYMB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
// L1 X1 X1 L1
KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,MO(_SYMB),MO(_NAV),MO(_NAV),MO(_SYMB),KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,
// X2 X3 X3 X2
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC ,KC_MPLY, KC_PAUS ,KC_RBRC , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_EQL ,
//
KC_ESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
//
KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_PGUP ,KC_PGDN , KC_HOME ,KC_END , KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
//
KC_LGUI ,KC_PMNS ,MO(_NAV) ,KC_LALT ,KC_LCTL ,KC_BSPC ,KC_DEL , KC_ENT, KC_SPC ,MO(_NAV),KC_RALT ,KC_RCTL ,KC_LEFT ,KC_RGHT
// T1 T2 T3 T4 T5 T5 T4 T3 T2 T1
),
[_SYMB] = LAYOUT(
// L1 X1 X1 L1
_______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,_______ ,_______, _______ ,_______ ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,_______ ,
// X2 X3 X3 X2
_______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ ,_______, _______ ,KC_RCBR ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS ,_______ ,
//
_______ ,KC_HASH ,KC_DLR ,KC_LBRC ,KC_RBRC ,KC_GRV , KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,_______ ,
//
_______ ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD ,_______ ,_______ , _______ ,_______ ,KC_P0 ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,_______ ,
//
_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , KC_ENT ,_______ ,_______ ,_______ ,KC_PDOT ,KC_PENT ,_______
// T1 T2 T3 T4 T5 T5 T4 T3 T2 T1
),
[_NAV] = LAYOUT(
// L1 X1 X1 L1
_______ ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,QK_BOOT ,
// X2 X3 X3 X2
_______ ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
//
_______ ,KC_LEFT ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_RGHT , KC_LEFT ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_RGHT ,XXXXXXX ,
//
_______ ,XXXXXXX ,XXXXXXX ,KC_DOWN ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,XXXXXXX ,KC_DOWN ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
//
_______ ,XXXXXXX ,XXXXXXX ,_______ ,_______ ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,EE_CLR
// T1 T2 T3 T4 T5 T5 T4 T3 T2 T1
)
};

+ 52
- 0
keyboards/pmk/recore/v3/keymaps/via/keymap.c View File

@ -0,0 +1,52 @@
// Copyright 2024 Javier Oliver (@joliverMI)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_QWERTY,
_NAV,
_SYMB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
// L1 X1 X1 L1
KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,MO(_SYMB),MO(_NAV),MO(_NAV),MO(_SYMB),KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,
// X2 X3 X3 X2
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC ,KC_MPLY, KC_PAUS ,KC_RBRC , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_EQL ,
//
KC_ESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
//
KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_PGUP ,KC_PGDN , KC_HOME ,KC_END , KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
//
KC_LGUI ,KC_PMNS ,MO(_NAV) ,KC_LALT ,KC_LCTL ,KC_BSPC ,KC_DEL , KC_ENT, KC_SPC ,MO(_NAV),KC_RALT ,KC_RCTL ,KC_LEFT ,KC_RGHT
// T1 T2 T3 T4 T5 T5 T4 T3 T2 T1
),
[_SYMB] = LAYOUT(
// L1 X1 X1 L1
_______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,_______ ,_______, _______ ,_______ ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,_______ ,
// X2 X3 X3 X2
_______ ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ ,_______, _______ ,KC_RCBR ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS ,_______ ,
//
_______ ,KC_HASH ,KC_DLR ,KC_LBRC ,KC_RBRC ,KC_GRV , KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,_______ ,
//
_______ ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD ,_______ ,_______ , _______ ,_______ ,KC_P0 ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,_______ ,
//
_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , KC_ENT ,_______ ,_______ ,_______ ,KC_PDOT ,KC_PENT ,_______
// T1 T2 T3 T4 T5 T5 T4 T3 T2 T1
),
[_NAV] = LAYOUT(
// L1 X1 X1 L1
_______ ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,QK_BOOT ,
// X2 X3 X3 X2
_______ ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
//
_______ ,KC_LEFT ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_RGHT , KC_LEFT ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_RGHT ,XXXXXXX ,
//
_______ ,XXXXXXX ,XXXXXXX ,KC_DOWN ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,XXXXXXX ,KC_DOWN ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
//
_______ ,XXXXXXX ,XXXXXXX ,_______ ,_______ ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,EE_CLR
// T1 T2 T3 T4 T5 T5 T4 T3 T2 T1
)
};

+ 1
- 0
keyboards/pmk/recore/v3/keymaps/via/rules.mk View File

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

+ 27
- 0
keyboards/pmk/recore/v3/readme.md View File

@ -0,0 +1,27 @@
# recorev3
![recorev3](https://i.imgur.com/28fVsP3.jpeg)
The Posey Recore keyboard is an ortholinear keyboard designed from the gournd up for gaming. By pushing the left half of your split keyboard out of the way, you'll be able to game with better posture and increase mouse movement. The thumb cluster arc can be remapped to control and shift for use in gaming.
* Keyboard Maintainer: [Javier Oliver](https://github.com/joliverMI)
* Hardware Supported: recore_v3 and logic_module_v1
* Hardware Availability: [poseysmechanicalkeyboards.com](https://poseysmechanicalkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make pmk/recore/v3:default
Flashing example for this keyboard:
make pmk/recore/v3: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 Escape and plug in the keyboard
* **Physical reset button**: Hold the button on the bottom of the keyboard while you plug in the USB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

+ 1
- 0
keyboards/pmk/recore/v3/rules.mk View File

@ -0,0 +1 @@
SERIAL_DRIVER = vendor

Loading…
Cancel
Save