Merge branch 'vial' of https://github.com/vial-kb/vial-qmk into vial

This commit is contained in:
stanrc85 2025-02-21 09:20:40 -05:00
commit 047baf034a
21 changed files with 965 additions and 0 deletions

View file

@ -0,0 +1,24 @@
#pragma once
#define SERIAL_USART_TX_PIN GP12
#define USB_VBUS_PIN GP13
#define SPLIT_HAND_PIN GP21
#define I2C_DRIVER I2CD1
#define OLED_UPDATE_INTERVAL 50
#define I2C1_SDA_PIN GP6
#define I2C1_SCL_PIN GP7
#define RGB_MATRIX_SLEEP
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
#define USB_SUSPEND_WAKEUP_DELAY 200
/* 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
#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_LED_STATE_ENABLE

View file

@ -0,0 +1,5 @@
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View file

@ -0,0 +1,259 @@
{
"manufacturer": "Keebart",
"keyboard_name": "sofle_choc_pro",
"url": "https://keebart.com/products/sofle",
"maintainer": "Keebart",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"nkro": true,
"oled": true,
"rgblight": false,
"rgb_matrix": true,
"mousekey": true,
"encoder": true
},
"matrix_pins": {
"cols": [ "GP27", "GP26", "GP25", "GP24", "GP19", "GP18" ],
"rows": [ "GP0", "GP1", "GP2", "GP3", "GP4" ]
},
"processor": "RP2040",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"encoder": {
"rotary": [ { "pin_a": "GP23", "pin_b": "GP22" }, ]
},
"bootmagic": {
"enabled": true,
"matrix": [ 0, 0 ]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [ 5, 0 ]
},
"matrix_pins": {
"right": {
"cols": [ "GP27", "GP26", "GP25", "GP24", "GP19", "GP18" ],
"rows": [ "GP0", "GP1", "GP2", "GP3", "GP4" ]
}
},
"encoder": {
"right": {
"rotary": [ { "pin_a": "GP23", "pin_b": "GP22" }, ]
}
},
"transport": {
"sync": {
"matrix_state": true
},
"watchdog": true
}
},
"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 }
]
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP10"
},
"rgblight": {
"led_count": 60,
"split": true,
"split_count": [ 30, 30 ],
"max_brightness": 50,
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
}
},
"rgb_matrix": {
"driver": "ws2812",
"max_brightness": 50,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"rainbow_moving_chevron": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"split_count": [30, 30],
"layout": [
{"flags":4,"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}
]
}
}

View file

@ -0,0 +1,36 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
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 |/ / \ \ | LT2 | | | |
* `----------------------------------' '------''---------------------------'
*/
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(1,KC_LGUI), KC_ENT, KC_SPC, LT(2,KC_RGUI), KC_DEL, KC_RALT, KC_RCTL
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
{ ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
};
#endif

View file

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

View file

@ -0,0 +1,9 @@
#define VIAL_KEYBOARD_UID \
{ 0x4F, 0x2D, 0x5A, 0x8A, 0x49, 0x7C, 0xDF, 0x1D }
#define VIAL_UNLOCK_COMBO_ROWS \
{ 0, 5 }
#define VIAL_UNLOCK_COMBO_COLS \
{ 0, 0 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 10

View file

@ -0,0 +1,29 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
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 |/ / \ \ | LT2 | | | |
* `----------------------------------' '------''---------------------------'
*/
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(1, KC_LGUI), KC_ENT, KC_SPC, LT(2, KC_RGUI), KC_DEL, KC_RALT, KC_RCTL)};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT)},
};
#endif

View file

@ -0,0 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes
ENCODER_MAP_ENABLE = yes
CAPS_WORD_ENABLE = yes
REPEAT_KEY_ENABLE = yes

View file

@ -0,0 +1,318 @@
{
"name": "Sofle Choc Pro",
"matrix": {
"rows": 10,
"cols": 6
},
"lighting": "vialrgb",
"layouts": {
"keymap": [
[
{
"x": 3
},
"0,3",
{
"x": 8.25
},
"5,3"
],
[
{
"y": -0.87,
"x": 2
},
"0,2",
{
"x": 1
},
"0,4",
{
"x": 6.25
},
"5,4",
{
"x": 1
},
"5,2"
],
[
{
"y": -0.88,
"x": 5
},
"0,5"
],
[
{
"y": -1,
"x": 10.25
},
"5,5"
],
[
{
"y": -0.87
},
"0,0",
"0,1",
{
"x": 12.25
},
"5,1",
"5,0"
],
[
{
"y": -0.38,
"x": 3
},
"1,3"
],
[
{
"y": -1,
"x": 12.25
},
"6,3"
],
[
{
"y": -0.8700000000000001,
"x": 2
},
"1,2",
{
"x": 1
},
"1,4",
{
"x": 6.25
},
"6,4",
{
"x": 1
},
"6,2"
],
[
{
"y": -0.8799999999999999,
"x": 5
},
"1,5",
{
"x": 4.25
},
"6,5"
],
[
{
"y": -0.8700000000000001
},
"1,0",
"1,1",
{
"x": 12.25
},
"6,1",
"6,0"
],
[
{
"y": -0.6299999999999999,
"x": 6
},
"0,0\n\n\n\n\n\n\n\n\ne",
"0,1\n\n\n\n\n\n\n\n\ne",
{
"x": 0.25
},
"1,0\n\n\n\n\n\n\n\n\ne",
"1,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": -0.75,
"x": 3
},
"2,3",
{
"x": 8.25
},
"7,3"
],
[
{
"y": -0.8700000000000001,
"x": 2
},
"2,2",
{
"x": 1
},
"2,4",
{
"x": 6.25
},
"7,4",
{
"x": 1
},
"7,2"
],
[
{
"y": -0.8799999999999999,
"x": 5
},
"2,5",
{
"x": 4.25
},
"7,5"
],
[
{
"y": -0.8700000000000001
},
"2,0",
"2,1",
{
"x": 12.25
},
"7,1",
"7,0"
],
[
{
"y": -0.6299999999999999,
"x": 6.5
},
"4,5",
{
"x": 1.25
},
"9,5"
],
[
{
"y": -0.75,
"x": 3
},
"3,3",
{
"x": 8.25
},
"8,3"
],
[
{
"y": -0.8700000000000001,
"x": 2
},
"3,2",
{
"x": 1
},
"3,4",
{
"x": 6.25
},
"8,4",
{
"x": 1
},
"8,2"
],
[
{
"y": -0.8799999999999999,
"x": 5
},
"3,5",
{
"x": 4.25
},
"8,5"
],
[
{
"y": -0.8700000000000001
},
"3,0",
"3,1",
{
"x": 12.25
},
"8,1",
"8,0"
],
[
{
"y": -0.1299999999999999,
"x": 2.5
},
"4,1",
"4,2",
{
"x": 7.25
},
"9,2",
"9,1"
],
[
{
"y": -0.8700000000000001,
"x": 1.5
},
"4,0",
{
"x": 11.25
},
"9,0"
],
[
{
"r": 15,
"rx": 4,
"ry": 9.1,
"y": -4.85,
"x": -0.5
},
"4,3"
],
[
{
"r": 30,
"rx": 5,
"ry": 9.3,
"y": -5.05,
"x": -1.5,
"h": 1.5
},
"4,4"
],
[
{
"r": -30,
"rx": 10,
"y": -4.4,
"x": 1.629999999999999,
"h": 1.5
},
"9,4"
],
[
{
"r": -15,
"rx": 11,
"ry": 9,
"y": -4.42,
"x": 0.7200000000000006
},
"9,3"
]
]
}
}

View file

@ -0,0 +1,6 @@
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE

View file

@ -0,0 +1,30 @@
# Sofle Choc Pro
![sofle_choc_pro](https://raw.githubusercontent.com/Keebart/picture-cdn/refs/heads/main/sofle/led/0.webp)
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
make keebart/sofle_choc_pro:vial
Flashing example for this keyboard:
make keebart/sofle_choc_pro:default:flash
make keebart/sofle_choc_pro:vial: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

View file

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

View file

@ -0,0 +1,26 @@
#pragma once
#define WS2812_DI_PIN A13
#ifdef WS2812_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_SLEEP
#define RGBLED_NUM 5
#define RGBLIGHT_DEFAULT_VAL 128
#define RGBLIGHT_LIMIT_VAL 128
/* #define RGBLIGHT_HUE_STEP 8 */
/* #define RGBLIGHT_SAT_STEP 8 */
/* #define RGBLIGHT_VAL_STEP 8 */
#endif

View file

@ -0,0 +1,89 @@
{
"keyboard_name": "Circe",
"manufacturer": "lazydesigners",
"url": "http://lazydesigners.cn",
"maintainer": "lazydesigners",
"usb": {
"vid": "0x4C44",
"pid": "0x0045",
"device_version": "0.0.1"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "C15", "B8", "A14" ],
"rows": [ "B13", "B12", "F0", "B9"]
},
"features": {
"console": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"bootmagic": {
"enabled": true,
"matrix": [0, 0]
},
"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": [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, "w":1.5},
{"matrix": [0,12], "x":12.75, "y":0},
{"matrix": [1,12], "x":13.75, "y":0},
{"matrix": [1, 0], "x":0, "y":1, "w":1.25},
{"matrix": [1, 1], "x":1.25, "y":1},
{"matrix": [1, 2], "x":2.25, "y":1},
{"matrix": [1, 3], "x":3.25, "y":1},
{"matrix": [1, 4], "x":4.25, "y":1},
{"matrix": [1, 5], "x":5.25, "y":1},
{"matrix": [1, 6], "x":6.25, "y":1},
{"matrix": [1, 7], "x":7.25, "y":1},
{"matrix": [1, 8], "x":8.25, "y":1},
{"matrix": [1, 9], "x":9.25, "y":1},
{"matrix": [1,10], "x":10.25, "y":1},
{"matrix": [1,11], "x":11.25, "y":1, "w":1.25},
{"matrix": [2, 0], "x":0, "y":2, "w":1.25},
{"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":9.75, "y":2},
{"matrix": [2,11], "x":10.75, "y":2, "w":1.25},
{"matrix": [2,12], "x":12.75, "y":2},
{"matrix": [3, 0], "x":0, "y":3, "w":1.25},
{"matrix": [3, 1], "x":1.25, "y":3, "w":1},
{"matrix": [3, 2], "x":2.25, "y":3, "w":1},
{"matrix": [3, 3], "x":3.25, "y":3, "w":1},
{"matrix": [3, 4], "x":4.25, "y":3, "w":2},
{"matrix": [3, 5], "x":6.25, "y":3, "w":2},
{"matrix": [3, 7], "x":8.25, "y":3, "w":1},
{"matrix": [3, 8], "x":9.25, "y":3, "w":1},
{"matrix": [3, 9], "x":10.25, "y":3, "w":1},
{"matrix": [3,10], "x":11.75, "y":3},
{"matrix": [3,11], "x":12.75, "y":3},
{"matrix": [3,12], "x":13.75, "y":3}
]
}
}
}

View file

@ -0,0 +1,30 @@
// Copyright 2024 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define LT1_SPC LT(1, KC_SPC)
// For testing only
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, MO(2), KC_UP,
KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, LT1_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

View file

@ -0,0 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xC9, 0x6D, 0x94, 0xB7, 0x74, 0x64, 0x1B, 0x2A}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 12 }
#define VIAL_COMBO_ENTRIES 32
#define VIAL_TAP_DANCE_ENTRIES 32
#define DYNAMIC_KEYMAP_LAYER_COUNT 8

View file

@ -0,0 +1,30 @@
// Copyright 2024 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define LT1_SPC LT(1, KC_SPC)
// For testing only
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, MO(2), KC_UP,
KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, LT1_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

View file

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

View file

@ -0,0 +1,30 @@
{
"lighting": "qmk_rgblight",
"matrix": {"rows": 4, "cols": 13},
"layouts": {
"labels":
[
["Style", "Staggered","Ortho"],
["Bottom Row", "Staggered Split", "Staggered Longbar","Ortho Split"]
],
"keymap":
[
[
"0,0\n\n\n0,0","0,1\n\n\n0,0","0,2\n\n\n0,0","0,3\n\n\n0,0","0,4\n\n\n0,0","0,5\n\n\n0,0","0,6\n\n\n0,0","0,7\n\n\n0,0","0,8\n\n\n0,0","0,9\n\n\n0,0","0,10\n\n\n0,0",{"w":1.5},"0,11\n\n\n0,0",{"x":0.25},"0,12\n\n\n0,0","1,12\n\n\n0,0",
{"x":-1,"w":1.25},"0,0\n\n\n0,1","0,1\n\n\n0,1","0,2\n\n\n0,1","0,3\n\n\n0,1","0,4\n\n\n0,1","0,5\n\n\n0,1","0,6\n\n\n0,1","0,7\n\n\n0,1","0,8\n\n\n0,1","0,9\n\n\n0,1","0,10\n\n\n0,1",{"w":1.25},"0,11\n\n\n0,1",{"x":0.25},"0,12\n\n\n0,1","1,12\n\n\n0,1"
],
[
{"w":1.25},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10",{"w":1.25},"1,11"
],
[
{"w":1.75},"2,0\n\n\n0,0","2,1\n\n\n0,0","2,2\n\n\n0,0","2,3\n\n\n0,0","2,4\n\n\n0,0","2,5\n\n\n0,0","2,6\n\n\n0,0","2,7\n\n\n0,0","2,8\n\n\n0,0","2,9\n\n\n0,0",{"w":1.75},"2,11\n\n\n0,0", {"x":0.25},"2,12\n\n\n0,0",
{"w":1.25},"2,0\n\n\n0,1","2,1\n\n\n0,1","2,2\n\n\n0,1","2,3\n\n\n0,1","2,4\n\n\n0,1","2,5\n\n\n0,1","2,6\n\n\n0,1","2,7\n\n\n0,1","2,8\n\n\n0,1","2,9\n\n\n0,1","2,10\n\n\n0,1",{"w":1.25},"2,11\n\n\n0,1",{"x":0.25},"2,12\n\n\n0,1"
],
[
{"w":1.25},"3,0\n\n\n1,0",{"w":1.25},"3,1\n\n\n1,0",{"w":1.25},"3,2\n\n\n1,0",{"w":2.25},"3,4\n\n\n1,0",{"w":2.75},"3,5\n\n\n1,0",{"w":1.25},"3,8\n\n\n1,0",{"w":1.25},"3,9\n\n\n1,0",{"x":0.5},"3,10\n\n\n1,0","3,11\n\n\n1,0","3,12\n\n\n1,0",
{"w":1.25},"3,0\n\n\n1,1",{"w":1.25},"3,1\n\n\n1,1",{"w":6.25},"3,5\n\n\n1,1",{"w":1.25},"3,8\n\n\n1,1",{"w":1.25},"3,9\n\n\n1,1",{"x":0.5},"3,10\n\n\n1,1","3,11\n\n\n1,1","3,12\n\n\n1,1",
{"w":1.25},"3,0\n\n\n1,2","3,1\n\n\n1,2","3,2\n\n\n1,2","3,3\n\n\n1,2",{"w":2},"3,4\n\n\n1,2",{"w":2},"3,5\n\n\n1,2","3,7\n\n\n1,2","3,8\n\n\n1,2","3,9\n\n\n1,2",{"x":0.5},"3,10\n\n\n1,2","3,11\n\n\n1,2","3,12\n\n\n1,2"
]
]
}
}

View file

@ -0,0 +1,18 @@
# Circe
A keyboard designed and produced in 2024 by [LAZYDESIGNERS](http://lazydesigners.cn).
* Keyboard Maintainer: [LAZYDESIGNERS](https://github.com/jackytrabbit)
* Hardware Supported: Circe
* Hardware Availability: Check [LAZYDESIGNERS's homepage.](http://lazydesigners.cn)
Make example for this keyboard (after setting up your vial build environment):
make lazydesigners/circe:vial
Flashing example for this keyboard:
make lazydesigners/circe:vial:flash
**Reset Key:** To enter the bootloader, either push the RESET button on the PCB or the RESET button on the FN layer.

View file

@ -0,0 +1,3 @@
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = ws2812