summaryrefslogtreecommitdiff
path: root/keyboards/splitkb
diff options
context:
space:
mode:
authorVeyPatch <126267034+VeyPatch@users.noreply.github.com>2025-06-09 03:43:31 +0200
committerGitHub <noreply@github.com>2025-06-09 02:43:31 +0100
commit1a54ecf2468456713d26d7e0747aee7a2c5a1edc (patch)
tree3884d27cb7542c6fdc82a425e65d76a992a21b3a /keyboards/splitkb
parent319844407c9ba04d985ce5600f7575ca77fd3886 (diff)
[Keyboard] Add splitkb.com's Halcyon Corne rev2 (#25143)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Diffstat (limited to 'keyboards/splitkb')
-rwxr-xr-xkeyboards/splitkb/halcyon/corne/info.json60
-rw-r--r--keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json43
-rwxr-xr-xkeyboards/splitkb/halcyon/corne/keymaps/default/readme.md87
-rwxr-xr-xkeyboards/splitkb/halcyon/corne/readme.md31
-rwxr-xr-xkeyboards/splitkb/halcyon/corne/rev2/config.h32
-rw-r--r--keyboards/splitkb/halcyon/corne/rev2/halconf.h11
-rwxr-xr-xkeyboards/splitkb/halcyon/corne/rev2/keyboard.json156
-rw-r--r--keyboards/splitkb/halcyon/corne/rev2/mcuconf.h14
-rw-r--r--keyboards/splitkb/halcyon/corne/rev2/rev2.c28
9 files changed, 462 insertions, 0 deletions
diff --git a/keyboards/splitkb/halcyon/corne/info.json b/keyboards/splitkb/halcyon/corne/info.json
new file mode 100755
index 0000000000..8b3325910d
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/info.json
@@ -0,0 +1,60 @@
1{
2 "manufacturer": "splitkb.com",
3 "maintainer": "splitkb.com",
4 "url": "https://splitkb.com",
5 "usb": {
6 "device_version": "1.0.0",
7 "vid": "0x8D1D"
8 },
9 "layout_aliases": {
10 "LAYOUT": "LAYOUT_split_3x6_3"
11 },
12 "layouts": {
13 "LAYOUT_split_3x6_3": {
14 "layout": [
15 {"label": "L06", "matrix": [0, 0], "x": 0, "y": 0.3},
16 {"label": "L05", "matrix": [0, 1], "x": 1, "y": 0.3},
17 {"label": "L04", "matrix": [0, 2], "x": 2, "y": 0.1},
18 {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
19 {"label": "L02", "matrix": [0, 4], "x": 4, "y": 0.1},
20 {"label": "L01", "matrix": [0, 5], "x": 5, "y": 0.2},
21 {"label": "R01", "matrix": [4, 5], "x": 9, "y": 0.2},
22 {"label": "R02", "matrix": [4, 4], "x": 10, "y": 0.1},
23 {"label": "R03", "matrix": [4, 3], "x": 11, "y": 0},
24 {"label": "R04", "matrix": [4, 2], "x": 12, "y": 0.1},
25 {"label": "R05", "matrix": [4, 1], "x": 13, "y": 0.3},
26 {"label": "R06", "matrix": [4, 0], "x": 14, "y": 0.3},
27 {"label": "L12", "matrix": [1, 0], "x": 0, "y": 1.3},
28 {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1.3},
29 {"label": "L10", "matrix": [1, 2], "x": 2, "y": 1.1},
30 {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1},
31 {"label": "L08", "matrix": [1, 4], "x": 4, "y": 1.1},
32 {"label": "L07", "matrix": [1, 5], "x": 5, "y": 1.2},
33 {"label": "R07", "matrix": [5, 5], "x": 9, "y": 1.2},
34 {"label": "R08", "matrix": [5, 4], "x": 10, "y": 1.1},
35 {"label": "R09", "matrix": [5, 3], "x": 11, "y": 1},
36 {"label": "R10", "matrix": [5, 2], "x": 12, "y": 1.1},
37 {"label": "R11", "matrix": [5, 1], "x": 13, "y": 1.3},
38 {"label": "R12", "matrix": [5, 0], "x": 14, "y": 1.3},
39 {"label": "L18", "matrix": [2, 0], "x": 0, "y": 2.3},
40 {"label": "L17", "matrix": [2, 1], "x": 1, "y": 2.3},
41 {"label": "L16", "matrix": [2, 2], "x": 2, "y": 2.1},
42 {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2},
43 {"label": "L14", "matrix": [2, 4], "x": 4, "y": 2.1},
44 {"label": "L13", "matrix": [2, 5], "x": 5, "y": 2.2},
45 {"label": "R13", "matrix": [6, 5], "x": 9, "y": 2.2},
46 {"label": "R14", "matrix": [6, 4], "x": 10, "y": 2.1},
47 {"label": "R15", "matrix": [6, 3], "x": 11, "y": 2},
48 {"label": "R16", "matrix": [6, 2], "x": 12, "y": 2.1},
49 {"label": "R17", "matrix": [6, 1], "x": 13, "y": 2.3},
50 {"label": "R18", "matrix": [6, 0], "x": 14, "y": 2.3},
51 {"label": "L21", "matrix": [3, 3], "x": 4, "y": 3.7},
52 {"label": "L20", "matrix": [3, 4], "x": 5, "y": 3.7},
53 {"label": "L19", "matrix": [3, 5], "w": 1.5, "x": 6, "y": 3.2},
54 {"label": "R19", "matrix": [7, 5], "w": 1.5, "x": 8, "y": 3.2},
55 {"label": "R20", "matrix": [7, 4], "x": 9, "y": 3.7},
56 {"label": "R21", "matrix": [7, 3], "x": 10, "y": 3.7}
57 ]
58 }
59 }
60}
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 0000000000..ab42d0731c
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json
@@ -0,0 +1,43 @@
1{
2 "keyboard": "splitkb/halcyon/corne/rev2",
3 "keymap": "default",
4 "version": 1,
5 "layout": "LAYOUT_split_3x6_3",
6 "layers": [
7 [
8 "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC" ,
9 "KC_LCTL" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN" , "KC_QUOT" ,
10 "KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_ESC" ,
11 "KC_LGUI" , "MO(1)" , "KC_SPC" , "KC_ENT" , "MO(2)" , "KC_RALT"
12 ],
13 [
14 "KC_TAB" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC" ,
15 "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_LEFT" , "KC_DOWN" , "KC_UP" , "KC_RIGHT", "XXXXXXX" , "XXXXXXX" ,
16 "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" ,
17 "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "MO(3)" , "KC_RALT"
18 ],
19 [
20 "KC_TAB" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RPRN" , "KC_BSPC" ,
21 "KC_LCTL" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MINS" , "KC_EQL" , "KC_LBRC" , "KC_RBRC" , "KC_BSLS" , "KC_GRV" ,
22 "KC_LSFT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_UNDS" , "KC_PLUS" , "KC_LCBR" , "KC_RCBR" , "KC_PIPE" , "KC_TILD" ,
23 "KC_LGUI" , "MO(3)" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT"
24 ],
25 [
26 "QK_BOOT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" ,
27 "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" ,
28 "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" ,
29 "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT"
30 ]
31 ],
32 "config": {
33 "features": {
34 "encoder_map": true
35 }
36 },
37 "encoders": [
38 [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
39 [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}],
40 [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}],
41 [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}]
42 ]
43}
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 0000000000..8e44629494
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/keymaps/default/readme.md
@@ -0,0 +1,87 @@
1# Halcyon Corne's Default Keymap
2_This keymap is a copy of the [Corne default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/default)_
3
4A simple default keymap for the Halcyon Corne
5============================================
6
7Keymaps 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.
8
9What do all these layers do?
10----------------------------
11
12### Layer 0: Base layer
13
14![Layer 0](https://i.imgur.com/Ri5cTHqh.png)
15
16This is where your basic letters live.
17
18The homing thumb fingers are used to access the different layers.
19
20* The homing left thumb finger gives access to the Numbers (or lower) layer
21* The homing right thumb finger gives access to the Symbols (or raise) layer
22* Pressing both homing thumb fingers gives access to the Adjust layer
23
24### Layer 1: Lower
25
26![Layer 1](https://i.imgur.com/9h6ZRQLh.png)
27
28The Lower layer gives access to your number keys on the top row. It also exposes the arrow keys in the usual Vim-style layout.
29
30### Layer 2: Raise
31
32![Layer 2](https://i.imgur.com/U1pf7pJh.png)
33
34The 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.
35
36### Layer 3: Adjust
37
38![Layer 3](https://i.imgur.com/A6z1DCbh.png)
39
40The Adjust layer exposes RGB adjustment keys on the left hand.
41
42Where is the keymap.c?
43----------------------
44
45The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system.
46
47This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface.
48
49How do I edit and update the keymap?
50------------------------------------
51
52The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard.
53
54To edit it, you may:
55* Edit it directly from a text editor.
56* Edit it from the QMK Configurator.
57
58If you decide to use the latter workflow, here are the steps to follow:
59
60* 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).
61* Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/splitkb/halcyon/corne/keymaps/default/keymap.json`)
62* Perform any modification to the keymap in the web UI
63* 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)
64* Replace your original keymap with the one you just downloaded
65
66I want to do more than the JSON format supports!
67-------------------------------------------------
68
69While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour.
70
71To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation.
72
73First, from the root of your qmk repo, move to your keymap folder
74
75```bash
76cd ./keyboards/splitkb/halcyon/corne/keymaps/my_personal_keymap
77```
78
79Next, convert your `keymap.json` to a `keymap.c`
80
81```bash
82qmk json2c -o keymap.c keymap.json
83```
84
85
86You 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!
87**If a JSON file is present, the C file is ignored.**
diff --git a/keyboards/splitkb/halcyon/corne/readme.md b/keyboards/splitkb/halcyon/corne/readme.md
new file mode 100755
index 0000000000..b859da2edd
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/readme.md
@@ -0,0 +1,31 @@
1# Halcyon Corne
2
3![splitkb/halcyon/corne](https://i.imgur.com/Cpo2dM8.png)
4
5The Halcyon Corne rev2 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:
6
7- Halcyon keyboards come preassembled! You won't need a soldering iron.
8- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules.
9- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases.
10- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C.
11- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO!
12- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing.
13
14* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com)
15* Hardware Availability: [splitkb.com](https://splitkb.com).
16
17Make example for this keyboard (after setting up your build environment):
18
19 make splitkb/halcyon/corne/rev2:default
20
21The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive.
22
23See 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).
24
25## Bootloader
26
27Enter the bootloader in 3 ways:
28
29* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port.
30* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard.
31* **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 0000000000..b5cd6f95f2
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/rev2/config.h
@@ -0,0 +1,32 @@
1// Copyright 2025 splitkb.com (support@splitkb.com)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6// Make it easier to enter the bootloader
7#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
8#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
9
10// UART1, communication between the two halves
11#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
12#define SERIAL_USART_TX_PIN GP28 // USART TX pin
13#define SERIAL_USART_RX_PIN GP29 // USART RX pin
14#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver
15
16// VBUS detection
17#define USB_VBUS_PIN GP1
18
19//// VIK
20
21// GPIO1 = GP27
22// GPIO2 = GP26
23// CS = GP13
24
25#define I2C_DRIVER I2C0
26#define I2C1_SDA_PIN GP16
27#define I2C1_SCL_PIN GP17
28
29#define SPI_DRIVER SPID1
30#define SPI_SCK_PIN GP14
31#define SPI_MOSI_PIN GP15
32#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 0000000000..a6937ddf9d
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/rev2/halconf.h
@@ -0,0 +1,11 @@
1// Copyright 2025 splitkb.com (support@splitkb.com)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6//// VIK
7
8#define HAL_USE_I2C TRUE
9#define HAL_USE_SPI TRUE
10
11#include_next <halconf.h>
diff --git a/keyboards/splitkb/halcyon/corne/rev2/keyboard.json b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json
new file mode 100755
index 0000000000..33e8e7a907
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/rev2/keyboard.json
@@ -0,0 +1,156 @@
1{
2 "keyboard_name": "Halcyon Corne rev2",
3 "bootloader": "rp2040",
4 "diode_direction": "COL2ROW",
5 "encoder": {
6 "rotary": [
7 {"pin_a": "GP24", "pin_b": "GP23", "resolution": 2}
8 ]
9 },
10 "features": {
11 "encoder": true,
12 "extrakey": true,
13 "mousekey": true,
14 "nkro": true,
15 "rgb_matrix": true
16 },
17 "matrix_pins": {
18 "cols": ["GP9", "GP4", "GP7", "GP6", "GP5", "GP10"],
19 "rows": ["GP20", "GP25", "GP11", "GP8"]
20 },
21 "processor": "RP2040",
22 "rgb_matrix": {
23 "animations": {
24 "alphas_mods": true,
25 "band_pinwheel_sat": true,
26 "band_pinwheel_val": true,
27 "band_sat": true,
28 "band_spiral_sat": true,
29 "band_spiral_val": true,
30 "band_val": true,
31 "breathing": true,
32 "cycle_all": true,
33 "cycle_left_right": true,
34 "cycle_out_in": true,
35 "cycle_out_in_dual": true,
36 "cycle_pinwheel": true,
37 "cycle_spiral": true,
38 "cycle_up_down": true,
39 "digital_rain": true,
40 "dual_beacon": true,
41 "gradient_left_right": true,
42 "gradient_up_down": true,
43 "hue_breathing": true,
44 "hue_pendulum": true,
45 "hue_wave": true,
46 "jellybean_raindrops": true,
47 "multisplash": true,
48 "pixel_flow": true,
49 "pixel_fractal": true,
50 "pixel_rain": true,
51 "rainbow_beacon": true,
52 "rainbow_moving_chevron": true,
53 "rainbow_pinwheels": true,
54 "raindrops": true,
55 "solid_multisplash": true,
56 "solid_reactive": true,
57 "solid_reactive_cross": true,
58 "solid_reactive_multicross": true,
59 "solid_reactive_multinexus": true,
60 "solid_reactive_multiwide": true,
61 "solid_reactive_nexus": true,
62 "solid_reactive_simple": true,
63 "solid_reactive_wide": true,
64 "solid_splash": true,
65 "splash": true,
66 "typing_heatmap": true
67 },
68 "driver": "ws2812",
69 "layout": [
70 {"x": 93, "y": 17, "flags": 2},
71 {"x": 59, "y": 3, "flags": 2},
72 {"x": 25, "y": 7, "flags": 2},
73 {"x": 29, "y": 49, "flags": 2},
74 {"x": 70, "y": 51, "flags": 2},
75 {"x": 104, "y": 55, "flags": 2},
76 {"matrix": [3, 2], "x": 95, "y": 63, "flags": 4},
77 {"matrix": [3, 1], "x": 80, "y": 58, "flags": 4},
78 {"matrix": [3, 0], "x": 60, "y": 55, "flags": 4},
79 {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4},
80 {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4},
81 {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4},
82 {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4},
83 {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4},
84 {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4},
85 {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4},
86 {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4},
87 {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4},
88 {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
89 {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4},
90 {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4},
91 {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
92 {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4},
93 {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4},
94 {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4},
95 {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4},
96 {"matrix": [2, 0], "x": 0, "y": 41, "flags": 4},
97 {"x": 131, "y": 17, "flags": 2},
98 {"x": 165, "y": 3, "flags": 2},
99 {"x": 199, "y": 7, "flags": 2},
100 {"x": 195, "y": 49, "flags": 2},
101 {"x": 154, "y": 51, "flags": 2},
102 {"x": 120, "y": 55, "flags": 2},
103 {"matrix": [7, 2], "x": 129, "y": 63, "flags": 4},
104 {"matrix": [7, 1], "x": 144, "y": 58, "flags": 4},
105 {"matrix": [7, 0], "x": 164, "y": 55, "flags": 4},
106 {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4},
107 {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4},
108 {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4},
109 {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4},
110 {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4},
111 {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4},
112 {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4},
113 {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4},
114 {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4},
115 {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4},
116 {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4},
117 {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4},
118 {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4},
119 {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4},
120 {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4},
121 {"matrix": [4, 0], "x": 224, "y": 7, "flags": 4},
122 {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4},
123 {"matrix": [6, 0], "x": 224, "y": 41, "flags": 4}
124 ],
125 "max_brightness": 128,
126 "sleep": true,
127 "split_count": [27, 27]
128 },
129 "split": {
130 "enabled": true,
131 "handedness": {
132 "pin": "GP19"
133 },
134 "matrix_pins": {
135 "right": {
136 "cols": ["GP5", "GP9", "GP7", "GP20", "GP25", "GP4"],
137 "rows": ["GP6", "GP10", "GP11", "GP8"]
138 }
139 },
140 "serial": {
141 "driver": "vendor"
142 },
143 "transport": {
144 "sync": {
145 "matrix_state": true
146 }
147 }
148 },
149 "usb": {
150 "pid": "0x3A07"
151 },
152 "ws2812": {
153 "driver": "vendor",
154 "pin": "GP3"
155 }
156}
diff --git a/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h
new file mode 100644
index 0000000000..126697a4a0
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/rev2/mcuconf.h
@@ -0,0 +1,14 @@
1// Copyright 2025 splitkb.com (support@splitkb.com)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#include_next <mcuconf.h>
7
8//// VIK
9
10#undef RP_I2C_USE_I2C0
11#define RP_I2C_USE_I2C0 TRUE
12
13#undef RP_SPI_USE_SPI1
14#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 0000000000..e0a64ae9a4
--- /dev/null
+++ b/keyboards/splitkb/halcyon/corne/rev2/rev2.c
@@ -0,0 +1,28 @@
1// Copyright 2025 splitkb.com (support@splitkb.com)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "quantum.h"
5
6#ifdef ENCODER_ENABLE
7bool encoder_update_kb(uint8_t index, bool clockwise) {
8 if (!encoder_update_user(index, clockwise)) {
9 return false;
10 }
11 if (index == 0) {
12 // Volume control
13 if (clockwise) {
14 tap_code(KC_VOLU);
15 } else {
16 tap_code(KC_VOLD);
17 }
18 } else if (index == 1) {
19 // Page up/Page down
20 if (clockwise) {
21 tap_code(KC_PGDN);
22 } else {
23 tap_code(KC_PGUP);
24 }
25 }
26 return false;
27}
28#endif