mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-05-09 07:18:20 +00:00
[Keyboard] Add Sofle Choc Prog from keebart (#24974)
This commit is contained in:
parent
8ae5d34c0d
commit
65aef7be95
10
keyboards/keebart/sofle_choc_pro/config.h
Normal file
10
keyboards/keebart/sofle_choc_pro/config.h
Normal file
@ -0,0 +1,10 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define USB_VBUS_PIN GP13
|
||||
|
||||
/* RP2040- and hardware-specific config */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
235
keyboards/keebart/sofle_choc_pro/keyboard.json
Normal file
235
keyboards/keebart/sofle_choc_pro/keyboard.json
Normal file
@ -0,0 +1,235 @@
|
||||
{
|
||||
"manufacturer": "Keebart",
|
||||
"keyboard_name": "sofle_choc_pro",
|
||||
"maintainer": "Keebart",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP23", "pin_b": "GP22"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP27", "GP26", "GP25", "GP24", "GP19", "GP18"],
|
||||
"rows": ["GP0", "GP1", "GP2", "GP3", "GP4"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_sat": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"jellybean_raindrops": true,
|
||||
"multisplash": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"solid_multisplash": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [4, 5], "x": 99, "y": 38, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 91, "y": 64, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 77, "y": 60, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 82, "y": 45, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 82, "y": 31, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 82, "y": 17, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 82, "y": 3, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 66, "y": 2, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 66, "y": 29, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 66, "y": 43, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 58, "y": 59, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 41, "y": 59, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 49, "y": 41, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 49, "y": 28, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 49, "y": 16, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 49, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 33, "y": 2, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 33, "y": 16, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 33, "y": 29, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 33, "y": 43, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 25, "y": 60, "flags": 4},
|
||||
{"matrix": [3, 1], "x": 16, "y": 47, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 16, "y": 33, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 16, "y": 19, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 16, "y": 5, "flags": 4},
|
||||
{"matrix": [0, 0], "x": 0, "y": 5, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 0, "y": 19, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 0, "y": 33, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 0, "y": 47, "flags": 4},
|
||||
{"matrix": [9, 5], "x": 125, "y": 38, "flags": 4},
|
||||
{"matrix": [9, 4], "x": 134, "y": 64, "flags": 4},
|
||||
{"matrix": [9, 3], "x": 147, "y": 60, "flags": 4},
|
||||
{"matrix": [8, 5], "x": 142, "y": 45, "flags": 4},
|
||||
{"matrix": [7, 5], "x": 142, "y": 31, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 142, "y": 17, "flags": 4},
|
||||
{"matrix": [5, 5], "x": 142, "y": 3, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 158, "y": 2, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 158, "y": 16, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 158, "y": 29, "flags": 4},
|
||||
{"matrix": [8, 4], "x": 158, "y": 43, "flags": 4},
|
||||
{"matrix": [9, 2], "x": 166, "y": 59, "flags": 4},
|
||||
{"matrix": [9, 1], "x": 183, "y": 59, "flags": 4},
|
||||
{"matrix": [8, 3], "x": 175, "y": 41, "flags": 4},
|
||||
{"matrix": [7, 3], "x": 175, "y": 28, "flags": 4},
|
||||
{"matrix": [6, 3], "x": 175, "y": 16, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 175, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 191, "y": 2, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 191, "y": 16, "flags": 4},
|
||||
{"matrix": [7, 2], "x": 191, "y": 29, "flags": 4},
|
||||
{"matrix": [8, 2], "x": 191, "y": 43, "flags": 4},
|
||||
{"matrix": [9, 0], "x": 199, "y": 60, "flags": 4},
|
||||
{"matrix": [8, 1], "x": 208, "y": 47, "flags": 4},
|
||||
{"matrix": [7, 1], "x": 208, "y": 33, "flags": 4},
|
||||
{"matrix": [6, 1], "x": 208, "y": 19, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 208, "y": 5, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 224, "y": 5, "flags": 4},
|
||||
{"matrix": [6, 0], "x": 224, "y": 19, "flags": 4},
|
||||
{"matrix": [7, 0], "x": 224, "y": 33, "flags": 4},
|
||||
{"matrix": [8, 0], "x": 224, "y": 47, "flags": 4}
|
||||
],
|
||||
"max_brightness": 50,
|
||||
"sleep": true,
|
||||
"split_count": [30, 30]
|
||||
},
|
||||
"split": {
|
||||
"bootmagic": {
|
||||
"matrix": [5, 0]
|
||||
},
|
||||
"enabled": true,
|
||||
"handedness": {
|
||||
"pin": "GP21"
|
||||
},
|
||||
"serial": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP12"
|
||||
},
|
||||
"transport": {
|
||||
"sync": {
|
||||
"indicators": true,
|
||||
"layer_state": true,
|
||||
"matrix_state": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": "https://keebart.com/products/sofle",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"suspend_wakeup_delay": 200,
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP10"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_4x6_5": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.375},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.375},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.125},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.125},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.25},
|
||||
{"matrix": [5, 5], "x": 9, "y": 0.25},
|
||||
{"matrix": [5, 4], "x": 10, "y": 0.125},
|
||||
{"matrix": [5, 3], "x": 11, "y": 0},
|
||||
{"matrix": [5, 2], "x": 12, "y": 0.125},
|
||||
{"matrix": [5, 1], "x": 13, "y": 0.375},
|
||||
{"matrix": [5, 0], "x": 14, "y": 0.375},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.375},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.375},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.125},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.125},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [6, 5], "x": 9, "y": 1.25},
|
||||
{"matrix": [6, 4], "x": 10, "y": 1.125},
|
||||
{"matrix": [6, 3], "x": 11, "y": 1},
|
||||
{"matrix": [6, 2], "x": 12, "y": 1.125},
|
||||
{"matrix": [6, 1], "x": 13, "y": 1.375},
|
||||
{"matrix": [6, 0], "x": 14, "y": 1.375},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.375},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.375},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.125},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.125},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.25},
|
||||
{"matrix": [7, 5], "x": 9, "y": 2.25},
|
||||
{"matrix": [7, 4], "x": 10, "y": 2.125},
|
||||
{"matrix": [7, 3], "x": 11, "y": 2},
|
||||
{"matrix": [7, 2], "x": 12, "y": 2.125},
|
||||
{"matrix": [7, 1], "x": 13, "y": 2.375},
|
||||
{"matrix": [7, 0], "x": 14, "y": 2.375},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.375},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.375},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.125},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4, "y": 3.125},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3.25},
|
||||
{"matrix": [4, 5], "x": 6, "y": 2.75},
|
||||
{"matrix": [9, 5], "x": 8, "y": 2.75},
|
||||
{"matrix": [8, 5], "x": 9, "y": 3.25},
|
||||
{"matrix": [8, 4], "x": 10, "y": 3.125},
|
||||
{"matrix": [8, 3], "x": 11, "y": 3},
|
||||
{"matrix": [8, 2], "x": 12, "y": 3.125},
|
||||
{"matrix": [8, 1], "x": 13, "y": 3.375},
|
||||
{"matrix": [8, 0], "x": 14, "y": 3.375},
|
||||
{"matrix": [4, 0], "x": 1.5, "y": 4.375},
|
||||
{"matrix": [4, 1], "x": 2.5, "y": 4.25},
|
||||
{"matrix": [4, 2], "x": 3.5, "y": 4.25},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4.375},
|
||||
{"matrix": [4, 4], "x": 6, "y": 4.375, "h": 1.5},
|
||||
{"matrix": [9, 4], "x": 8, "y": 4.375, "h": 1.5},
|
||||
{"matrix": [9, 3], "x": 9.5, "y": 4.375},
|
||||
{"matrix": [9, 2], "x": 10.5, "y": 4.25},
|
||||
{"matrix": [9, 1], "x": 11.5, "y": 4.25},
|
||||
{"matrix": [9, 0], "x": 12.5, "y": 4.375}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
49
keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c
Normal file
49
keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c
Normal file
@ -0,0 +1,49 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
BASE, // default layer
|
||||
MDIA, // media keys
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* QWERTY
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | CAPS | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------|
|
||||
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | LCTL | LALT | LCMD | LGUI | /Enter / \Space \ | RGUI | DEL | RALT | RCTL |
|
||||
* | | | | LT1 |/ / \ \ | LT1 | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
|
||||
[BASE] = LAYOUT_split_4x6_5(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LALT, KC_LCMD, LT(MDIA,KC_LGUI), KC_ENT, KC_SPC, LT(MDIA,KC_RGUI), KC_DEL, KC_RALT, KC_RCTL
|
||||
),
|
||||
[MDIA] = LAYOUT_split_4x6_5(
|
||||
KC_MUTE,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
|
||||
RM_TOGG,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
|
||||
RM_NEXT,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
|
||||
RM_HUEU,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______,_______,_______,
|
||||
_______,_______,_______,_______, _______, _______, _______,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
|
||||
[MDIA] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
|
||||
};
|
||||
#endif
|
@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
28
keyboards/keebart/sofle_choc_pro/readme.md
Normal file
28
keyboards/keebart/sofle_choc_pro/readme.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Sofle Choc Pro
|
||||
|
||||

|
||||
|
||||
A complete remake of the Sofle Choc Keyboard by Josef Adamčík. Featuring an onboard RP2040 with 128 MB flash
|
||||
memory and choc-spaced keys for a more compact keyboard.
|
||||
|
||||
- Keyboard Maintainer: [Keebart](https://github.com/Keebart)
|
||||
- Hardware Supported: RP2040
|
||||
- Hardware Availability: [Keebart Shop](https://keebart.com/products/sofle)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keebart/sofle_choc_pro:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make keebart/sofle_choc_pro: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 top left key of the left side of the keyboard while connecting the left side to the computer. Similarly, hold down the top right key of the right side of the keyboard while connecting the right side to the computer.
|
||||
- **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
Loading…
Reference in New Issue
Block a user