From 9557e9a2b2e9a0abdb9732541dcc3ea68cebbff2 Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Tue, 7 Jan 2025 10:47:09 +0100 Subject: [PATCH 1/4] Add Halcyon Corne rev2 --- keyboards/splitkb/halcyon/corne/info.json | 60 +++++++ .../halcyon/corne/keymaps/default/keymap.json | 38 +++++ .../halcyon/corne/keymaps/default/readme.md | 87 ++++++++++ .../halcyon/corne/keymaps/default/rules.mk | 1 + keyboards/splitkb/halcyon/corne/readme.md | 31 ++++ keyboards/splitkb/halcyon/corne/rev2/config.h | 32 ++++ .../splitkb/halcyon/corne/rev2/halconf.h | 14 ++ .../splitkb/halcyon/corne/rev2/keyboard.json | 160 ++++++++++++++++++ .../splitkb/halcyon/corne/rev2/mcuconf.h | 14 ++ keyboards/splitkb/halcyon/corne/rev2/rev2.c | 28 +++ 10 files changed, 465 insertions(+) create mode 100755 keyboards/splitkb/halcyon/corne/info.json create mode 100644 keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json create mode 100755 keyboards/splitkb/halcyon/corne/keymaps/default/readme.md create mode 100644 keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk create mode 100755 keyboards/splitkb/halcyon/corne/readme.md create mode 100755 keyboards/splitkb/halcyon/corne/rev2/config.h create mode 100644 keyboards/splitkb/halcyon/corne/rev2/halconf.h create mode 100755 keyboards/splitkb/halcyon/corne/rev2/keyboard.json create mode 100644 keyboards/splitkb/halcyon/corne/rev2/mcuconf.h create mode 100644 keyboards/splitkb/halcyon/corne/rev2/rev2.c diff --git a/keyboards/splitkb/halcyon/corne/info.json b/keyboards/splitkb/halcyon/corne/info.json new file mode 100755 index 000000000000..8b3325910d1f --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/info.json @@ -0,0 +1,60 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"label": "L06", "matrix": [0, 0], "x": 0, "y": 0.3}, + {"label": "L05", "matrix": [0, 1], "x": 1, "y": 0.3}, + {"label": "L04", "matrix": [0, 2], "x": 2, "y": 0.1}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 4], "x": 4, "y": 0.1}, + {"label": "L01", "matrix": [0, 5], "x": 5, "y": 0.2}, + {"label": "R01", "matrix": [4, 5], "x": 9, "y": 0.2}, + {"label": "R02", "matrix": [4, 4], "x": 10, "y": 0.1}, + {"label": "R03", "matrix": [4, 3], "x": 11, "y": 0}, + {"label": "R04", "matrix": [4, 2], "x": 12, "y": 0.1}, + {"label": "R05", "matrix": [4, 1], "x": 13, "y": 0.3}, + {"label": "R06", "matrix": [4, 0], "x": 14, "y": 0.3}, + {"label": "L12", "matrix": [1, 0], "x": 0, "y": 1.3}, + {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1.3}, + {"label": "L10", "matrix": [1, 2], "x": 2, "y": 1.1}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 4], "x": 4, "y": 1.1}, + {"label": "L07", "matrix": [1, 5], "x": 5, "y": 1.2}, + {"label": "R07", "matrix": [5, 5], "x": 9, "y": 1.2}, + {"label": "R08", "matrix": [5, 4], "x": 10, "y": 1.1}, + {"label": "R09", "matrix": [5, 3], "x": 11, "y": 1}, + {"label": "R10", "matrix": [5, 2], "x": 12, "y": 1.1}, + {"label": "R11", "matrix": [5, 1], "x": 13, "y": 1.3}, + {"label": "R12", "matrix": [5, 0], "x": 14, "y": 1.3}, + {"label": "L18", "matrix": [2, 0], "x": 0, "y": 2.3}, + {"label": "L17", "matrix": [2, 1], "x": 1, "y": 2.3}, + {"label": "L16", "matrix": [2, 2], "x": 2, "y": 2.1}, + {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L14", "matrix": [2, 4], "x": 4, "y": 2.1}, + {"label": "L13", "matrix": [2, 5], "x": 5, "y": 2.2}, + {"label": "R13", "matrix": [6, 5], "x": 9, "y": 2.2}, + {"label": "R14", "matrix": [6, 4], "x": 10, "y": 2.1}, + {"label": "R15", "matrix": [6, 3], "x": 11, "y": 2}, + {"label": "R16", "matrix": [6, 2], "x": 12, "y": 2.1}, + {"label": "R17", "matrix": [6, 1], "x": 13, "y": 2.3}, + {"label": "R18", "matrix": [6, 0], "x": 14, "y": 2.3}, + {"label": "L21", "matrix": [3, 3], "x": 4, "y": 3.7}, + {"label": "L20", "matrix": [3, 4], "x": 5, "y": 3.7}, + {"label": "L19", "matrix": [3, 5], "w": 1.5, "x": 6, "y": 3.2}, + {"label": "R19", "matrix": [7, 5], "w": 1.5, "x": 8, "y": 3.2}, + {"label": "R20", "matrix": [7, 4], "x": 9, "y": 3.7}, + {"label": "R21", "matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json new file mode 100644 index 000000000000..0ce952d4bdb0 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json @@ -0,0 +1,38 @@ +{ + "keyboard": "splitkb/halcyon/corne/rev2", + "keymap": "default", + "version": 1, + "layout": "LAYOUT_split_3x6_3", + "layers": [ + [ + "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_LCTL" , "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_N" , "KC_M" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_ESC" , + "KC_LGUI" , "MO(1)" , "KC_SPC" , "KC_ENT" , "MO(2)" , "KC_RALT" + ], + [ + "KC_TAB" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC" , + "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_LEFT" , "KC_DOWN" , "KC_UP" , "KC_RIGHT", "XXXXXXX" , "XXXXXXX" , + "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "MO(3)" , "KC_RALT" + ], + [ + "KC_TAB" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RPRN" , "KC_BSPC" , + "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MINS" , "KC_EQL" , "KC_LBRC" , "KC_RBRC" , "KC_BSLS" , "KC_GRV" , + "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_UNDS" , "KC_PLUS" , "KC_LCBR" , "KC_RCBR" , "KC_PIPE" , "KC_TILD" , + "KC_LGUI" , "MO(3)" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" + ], + [ + "QK_BOOT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" + ] + ], + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}] + ] +} diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md new file mode 100755 index 000000000000..80944b2a425f --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md @@ -0,0 +1,87 @@ +# Halcyon Corne's Default Keymap +_This keymap is a copy of the [Corne default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/default)_ + +A simple default keymap for the Halcyon Corne +============================================ + +Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. + +What do all these layers do? +---------------------------- + +### Layer 0: Base layer + +![Layer 0](https://i.imgur.com/Ri5cTHqh.png) + +This is where your basic letters live. + +The homing thumb fingers are used to access the different layers. + +* The homing left thumb finger gives access to the Numbers (or lower) layer +* The homing right thumb finger gives access to the Symbols (or raise) layer +* Pressing both homing thumb fingers gives access to the Adjust layer + +### Layer 1: Lower + +![Layer 1](https://i.imgur.com/9h6ZRQLh.png) + +The Lower layer gives access to your number keys on the top row. It also exposes the arrow keys in the usual Vim-style layout. + +### Layer 2: Raise + +![Layer 2](https://i.imgur.com/U1pf7pJh.png) + +The Raise layer gives access to the symbols. In addition to shifted number keys on the top row, the right hand also exposes the remaining symbol keys, both as shifted and non-shifted variants. + +### Layer 3: Adjust + +![Layer 3](https://i.imgur.com/A6z1DCbh.png) + +The Adjust layer exposes RGB adjustment keys on the left hand. + +Where is the keymap.c? +---------------------- + +The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. + +This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. + +How do I edit and update the keymap? +------------------------------------ + +The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. + +To edit it, you may: +* Edit it directly from a text editor. +* Edit it from the QMK Configurator. + +If you decide to use the latter workflow, here are the steps to follow: + +* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/corne/rev2/LAYOUT_split_3x5_3), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). +* Browse to the location of your keymap (for example, `/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json`) +* Perform any modification to the keymap in the web UI +* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) +* Replace your original keymap with the one you just downloaded + +I want to do more than the JSON format supports! +------------------------------------------------- + +While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. + +To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. + +First, from the root of your qmk repo, move to your keymap folder + +```bash +cd ./keymaps/splitkb/halcyon/corne/my_personal_keymap +``` + +Next, convert your `keymap.json` to a `keymap.c` + +```bash +qmk json2c -o keymap.c keymap.json +``` + + +You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk b/keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/splitkb/halcyon/corne/readme.md b/keyboards/splitkb/halcyon/corne/readme.md new file mode 100755 index 000000000000..2d29c4eaa311 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/readme.md @@ -0,0 +1,31 @@ +# Halcyon Corne + +![splitkb/halcyon/corne](TODO) + +The Halcyon Corne rev4 is the second Corne revision and the third keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/corne/rev2:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +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: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/corne/rev2/config.h b/keyboards/splitkb/halcyon/corne/rev2/config.h new file mode 100755 index 000000000000..b5cd6f95f29b --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/config.h @@ -0,0 +1,32 @@ +// Copyright 2025 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/corne/rev2/halconf.h b/keyboards/splitkb/halcyon/corne/rev2/halconf.h new file mode 100644 index 000000000000..fd95e15f8398 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/halconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//// VIK + +#define HAL_USE_I2C TRUE + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json new file mode 100755 index 000000000000..c94d26622851 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json @@ -0,0 +1,160 @@ +{ + "keyboard_name": "Halcyon Corne rev2", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP24", "pin_b": "GP23", "resolution": 2} + ] + }, + "features": { + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP9", "GP4", "GP7", "GP6", "GP5", "GP10"], + "rows": ["GP20", "GP25", "GP11", "GP8"] + }, + "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_color": 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 + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"x": 93, "y": 17, "flags": 2}, + {"x": 59, "y": 3, "flags": 2}, + {"x": 25, "y": 7, "flags": 2}, + {"x": 29, "y": 49, "flags": 2}, + {"x": 70, "y": 51, "flags": 2}, + {"x": 104, "y": 55, "flags": 2}, + {"matrix": [3, 2], "x": 95, "y": 63, "flags": 4}, + {"matrix": [3, 1], "x": 80, "y": 58, "flags": 4}, + {"matrix": [3, 0], "x": 60, "y": 55, "flags": 4}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 4}, + {"x": 131, "y": 17, "flags": 2}, + {"x": 165, "y": 3, "flags": 2}, + {"x": 199, "y": 7, "flags": 2}, + {"x": 195, "y": 49, "flags": 2}, + {"x": 154, "y": 51, "flags": 2}, + {"x": 120, "y": 55, "flags": 2}, + {"matrix": [7, 2], "x": 129, "y": 63, "flags": 4}, + {"matrix": [7, 1], "x": 144, "y": 58, "flags": 4}, + {"matrix": [7, 0], "x": 164, "y": 55, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 4} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [27, 27] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP19" + }, + "matrix_pins": { + "right": { + "cols": ["GP5", "GP9", "GP7", "GP20", "GP25", "GP4"], + "rows": ["GP6", "GP10", "GP11", "GP8"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0x3A07" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h new file mode 100644 index 000000000000..126697a4a05d --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/halcyon/corne/rev2/rev2.c b/keyboards/splitkb/halcyon/corne/rev2/rev2.c new file mode 100644 index 000000000000..e0a64ae9a471 --- /dev/null +++ b/keyboards/splitkb/halcyon/corne/rev2/rev2.c @@ -0,0 +1,28 @@ +// Copyright 2025 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif From 62856ab4fc7ea7a115bd04f4c045469e8e477a30 Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Mon, 14 Apr 2025 16:54:13 +0200 Subject: [PATCH 2/4] Update readme --- keyboards/splitkb/halcyon/corne/keymaps/default/readme.md | 2 +- keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk | 1 - keyboards/splitkb/halcyon/corne/readme.md | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md index 80944b2a425f..8e4462949400 100755 --- a/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md @@ -73,7 +73,7 @@ To add this, you need to convert it to the `c` format. Do keep in mind that this First, from the root of your qmk repo, move to your keymap folder ```bash -cd ./keymaps/splitkb/halcyon/corne/my_personal_keymap +cd ./keyboards/splitkb/halcyon/corne/keymaps/my_personal_keymap ``` Next, convert your `keymap.json` to a `keymap.c` diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk b/keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk deleted file mode 100644 index ee325681483f..000000000000 --- a/keyboards/splitkb/halcyon/corne/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/splitkb/halcyon/corne/readme.md b/keyboards/splitkb/halcyon/corne/readme.md index 2d29c4eaa311..88ea6776adb2 100755 --- a/keyboards/splitkb/halcyon/corne/readme.md +++ b/keyboards/splitkb/halcyon/corne/readme.md @@ -1,6 +1,6 @@ # Halcyon Corne -![splitkb/halcyon/corne](TODO) +![splitkb/halcyon/corne](https://i.imgur.com/Cpo2dM8.png) The Halcyon Corne rev4 is the second Corne revision and the third keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: From c840466ee441d8d7ac659bfbd7bccb6287a55181 Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Mon, 14 Apr 2025 17:05:31 +0200 Subject: [PATCH 3/4] Remove invalid RGB Matrix effects (#24977) --- keyboards/splitkb/halcyon/corne/rev2/keyboard.json | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json index c94d26622851..7438f6fabf07 100755 --- a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json +++ b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json @@ -52,7 +52,6 @@ "rainbow_moving_chevron": true, "rainbow_pinwheels": true, "raindrops": true, - "solid_color": true, "solid_multisplash": true, "solid_reactive": true, "solid_reactive_cross": true, From 0aec19368fa589aa06ba7b282ebcf11e06088bae Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Mon, 14 Apr 2025 21:14:11 +0200 Subject: [PATCH 4/4] Requested changes --- .../splitkb/halcyon/corne/keymaps/default/keymap.json | 11 ++++++++--- keyboards/splitkb/halcyon/corne/rev2/keyboard.json | 3 --- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json index 0ce952d4bdb0..ab42d0731c78 100644 --- a/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json +++ b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json @@ -29,10 +29,15 @@ "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" ] ], + "config": { + "features": { + "encoder_map": true + } + }, "encoders": [ [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], - [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], - [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}], - [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}] + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] ] } diff --git a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json index 7438f6fabf07..33e8e7a907b6 100755 --- a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json +++ b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json @@ -65,9 +65,6 @@ "splash": true, "typing_heatmap": true }, - "default": { - "animation": "cycle_left_right" - }, "driver": "ws2812", "layout": [ {"x": 93, "y": 17, "flags": 2},