diff options
author | QMK Bot <[email protected]> | 2025-03-13 21:05:09 +0000 |
---|---|---|
committer | QMK Bot <[email protected]> | 2025-03-13 21:05:09 +0000 |
commit | 4f257711e09b5877d872f4ff67ac2fc15fa8792f (patch) | |
tree | 6e6a5b5f3cf0a084166ec96aec4ca162e0b0acee /keyboards | |
parent | 27b115151fdc07867d2d0c3a21d4b66510085d4c (diff) | |
parent | 65aef7be95025a8a26fa8fe0c4af3ce0d36f47f4 (diff) | |
download | qmk_firmware-4f257711e09b5877d872f4ff67ac2fc15fa8792f.tar.gz qmk_firmware-4f257711e09b5877d872f4ff67ac2fc15fa8792f.zip |
Diffstat (limited to 'keyboards')
-rw-r--r-- | keyboards/keebart/sofle_choc_pro/config.h | 10 | ||||
-rw-r--r-- | keyboards/keebart/sofle_choc_pro/keyboard.json | 235 | ||||
-rw-r--r-- | keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c | 49 | ||||
-rw-r--r-- | keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/keebart/sofle_choc_pro/readme.md | 28 |
5 files changed, 323 insertions, 0 deletions
diff --git a/keyboards/keebart/sofle_choc_pro/config.h b/keyboards/keebart/sofle_choc_pro/config.h new file mode 100644 index 0000000000..5c9b6ff8f1 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/config.h @@ -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 diff --git a/keyboards/keebart/sofle_choc_pro/keyboard.json b/keyboards/keebart/sofle_choc_pro/keyboard.json new file mode 100644 index 0000000000..a1ba222388 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/keyboard.json @@ -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} + ] + } + } +} diff --git a/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c b/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c new file mode 100644 index 0000000000..c6f33d9c56 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c @@ -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 diff --git a/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk b/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebart/sofle_choc_pro/readme.md b/keyboards/keebart/sofle_choc_pro/readme.md new file mode 100644 index 0000000000..8f0e797be0 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/readme.md @@ -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 |