Skip to content

Commit 25c9441

Browse files
committed
feat: add support for halcyon converter
1 parent a1b1e06 commit 25c9441

21 files changed

Lines changed: 810 additions & 184 deletions

File tree

.github/workflows/build_binaries.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ jobs:
1212
with:
1313
qmk_repo: vial-kb/vial-qmk
1414
qmk_ref: vial
15+
preparation_command: 'ln -s "$GITHUB_WORKSPACE/converters/promicro_to_halcyon/" qmk_firmware/platforms/chibios/converters/'
1516

1617
publish:
1718
name: 'QMK Userspace Publish'
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright 2023 splitkb.com
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
// Left side (front)
7+
#define D3 3U
8+
#define D2 29U
9+
// GND
10+
// GND
11+
#define D1 25U
12+
#define D0 10U
13+
#define D4 19U
14+
#define C6 24U
15+
#define D7 23U
16+
#define E6 22U
17+
#define B4 18U
18+
#define B5 21U
19+
20+
// Right side (front)
21+
// RAW
22+
// GND
23+
// RESET
24+
// VCC
25+
#define F4 4U
26+
#define F5 9U
27+
#define F6 10U
28+
#define F7 5U
29+
#define B1 6U
30+
#define B3 7U
31+
#define B2 11U
32+
#define B6 8U
33+
34+
// LEDs
35+
#define D5 0U // Unconnected
36+
#define B0 2U // Unconnected
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# rp2040_ce MCU settings for converting AVR projects
2+
MCU := RP2040
3+
BOARD := QMK_PM2040
4+
BOOTLOADER := rp2040
5+
6+
# These are defaults based on what has been implemented for RP2040 boards
7+
SERIAL_DRIVER ?= vendor
8+
WS2812_DRIVER ?= vendor
9+
BACKLIGHT_DRIVER ?= software
10+
OPT_DEFS += -DUSB_VBUS_PIN=1U

keyboards/splitkb/kyria/rev3/keymaps/default_hlc/keymap.c

Lines changed: 255 additions & 0 deletions
Large diffs are not rendered by default.

keyboards/splitkb/kyria/rev3/keymaps/default_hlc/readme.md

Lines changed: 242 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
ENCODER_MAP_ENABLE = yes
2+
3+
# This adds module functionality to your keyboard (files found in users/halcyon_modules)
4+
USER_NAME := halcyon_modules
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright 2024 splitkb.com (support@splitkb.com)
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#define VIAL_KEYBOARD_UID {0xEA, 0x55, 0x2E, 0xF9, 0x02, 0xA3, 0x12, 0x94}
7+
8+
#define VIAL_UNLOCK_COMBO_ROWS { 0, 5 }
9+
#define VIAL_UNLOCK_COMBO_COLS { 1, 1 }
10+
11+
// Increase the EEPROM size for layout options
12+
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
13+
14+
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
15+
#define RGB_MATRIX_KEYPRESSES
16+
17+
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
// There is an extra row added for the Halcyon modules. Currently only the Encoder module is
2+
// supported but we reserve 5 keys per half for future expansion. Your personal keymap will also
3+
// need to be updated to include this row, and the `LAYOUT` macro will need to be updated to
4+
// `LAYOUT_split_3x6_5_hlc` in order to compile.
5+
6+
{
7+
"keyboard": "splitkb/halcyon/kyria/rev4",
8+
"keymap": "vial-hlc",
9+
"version": 1,
10+
"layout": "LAYOUT_split_3x6_5_hlc",
11+
"layers": [
12+
[
13+
"KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC" ,
14+
"MT(MOD_LCTL, KC_ESC)" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN" , "MT(MOD_RCTL, KC_QUOTE)" ,
15+
"KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_LBRC" , "KC_CAPS" , "MO(5)" , "KC_RBRC" , "KC_N" , "KC_M" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_RSFT" ,
16+
"MO(6)" , "KC_LGUI" , "MT(MOD_LALT, KC_ENT)" , "KC_SPC" , "MO(3)" , "MO(4)" , "KC_SPC" , "KC_RALT" , "KC_RGUI" , "KC_APP" ,
17+
"KC_MUTE" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_MUTE" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO"
18+
],
19+
[
20+
"KC_TAB" , "KC_QUOTE", "KC_COMM" , "KC_DOT" , "KC_P" , "KC_Y" , "KC_F" , "KC_G" , "KC_C" , "KC_R" , "KC_L" , "KC_BSPC" ,
21+
"MT(MOD_LCTL, KC_ESC)" , "KC_A" , "KC_O" , "KC_E" , "KC_U" , "KC_I" , "KC_D" , "KC_H" , "KC_T" , "KC_N" , "KC_S" , "MT(MOD_RCTL, KC_MINUS)" ,
22+
"KC_LSFT" , "KC_SCLN" , "KC_Q" , "KC_J" , "KC_K" , "KC_X" , "KC_LBRC" , "KC_CAPS" , "MO(5)" , "KC_RBRC" , "KC_B" , "KC_M" , "KC_W" , "KC_V" , "KC_Z" , "KC_RSFT" ,
23+
"MO(6)" , "KC_LGUI" , "MT(MOD_LALT, KC_ENT)" , "KC_SPC" , "MO(3)" , "MO(4)" , "KC_SPC" , "KC_RALT" , "KC_RGUI" , "KC_APP" ,
24+
"KC_MUTE" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_MUTE" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO"
25+
],
26+
[
27+
"KC_TAB" , "KC_Q" , "KC_W" , "KC_F" , "KC_P" , "KC_B" , "KC_J" , "KC_L" , "KC_U" , "KC_Y" , "KC_SCLN" , "KC_BSPC" ,
28+
"MT(MOD_LCTL, KC_ESC)" , "KC_A" , "KC_R" , "KC_S" , "KC_T" , "KC_G" , "KC_M" , "KC_N" , "KC_E" , "KC_I" , "KC_O" , "MT(MOD_RCTL, KC_QUOTE)" ,
29+
"KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_D" , "KC_V" , "KC_LBRC" , "KC_CAPS" , "MO(5)" , "KC_RBRC" , "KC_K" , "KC_H" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_RSFT" ,
30+
"MO(6)" , "KC_LGUI" , "MT(MOD_LALT, KC_ENT)" , "KC_SPC" , "MO(3)" , "MO(4)" , "KC_SPC" , "KC_RALT" , "KC_RGUI" , "KC_APP" ,
31+
"KC_MUTE" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_MUTE" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO"
32+
],
33+
[
34+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "KC_PGUP" , "KC_HOME" , "KC_UP" , "KC_END" , "KC_VOLU" , "KC_DEL" ,
35+
"_______" , "KC_LGUI" , "KC_LALT" , "KC_LCTL" , "KC_LSFT" , "_______" , "KC_PGDN" , "KC_LEFT" , "KC_DOWN" , "KC_RGHT" , "KC_VOLD" , "KC_INS" ,
36+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "KC_SCRL" , "_______" , "_______" , "KC_PAUSE", "KC_MPRV" , "KC_MPLY" , "KC_MNXT" , "KC_MUTE" , "KC_PSCR" ,
37+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
38+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
39+
],
40+
[
41+
"KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_EQL" ,
42+
"KC_TILD" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RPRN" , "KC_PLUS" ,
43+
"KC_PIPE" , "KC_BSLS" , "KC_COLN" , "KC_SCLN" , "KC_MINS" , "KC_LBRC" , "KC_LCBR" , "_______" , "_______" , "KC_RCBR" , "KC_RBRC" , "KC_UNDS" , "KC_COMM" , "KC_DOT" , "KC_SLSH" , "KC_QUES" ,
44+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
45+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
46+
],
47+
[
48+
"_______" , "KC_F9" , "KC_F10" , "KC_F11" , "KC_F12" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
49+
"_______" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "_______" , "_______" , "KC_RSFT" , "KC_RCTL" , "KC_LALT" , "KC_RGUI" , "_______" ,
50+
"_______" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
51+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
52+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
53+
],
54+
[
55+
"_______" , "_______" , "_______" , "DF(0)" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
56+
"_______" , "_______" , "_______" , "DF(1)" , "_______" , "_______" , "RM_TOGG" , "RM_SATU" , "RM_HUEU" , "RM_VALU" , "RM_NEXT" , "_______" ,
57+
"_______" , "_______" , "_______" , "DF(2)" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "RM_SATD" , "RM_HUED" , "RM_VALD" , "RM_PREV" , "_______" ,
58+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
59+
"_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
60+
]
61+
],
62+
"encoders": [
63+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
64+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
65+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
66+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
67+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
68+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
69+
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}]
70+
]
71+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
VIA_ENABLE = yes
2+
VIAL_ENABLE = yes
3+
VIALRGB_ENABLE = yes
4+
5+
ENCODER_MAP_ENABLE = yes
6+
7+
# This adds module functionality to your keyboard (files found in users/halcyon_modules)
8+
USER_NAME := halcyon_modules
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"lighting": "vialrgb",
3+
"matrix": {
4+
"rows": 10,
5+
"cols": 7
6+
},
7+
"layouts": {
8+
"labels": [
9+
"Soldered encoder left",
10+
[
11+
"Halcyon module left",
12+
"None",
13+
"Encoder"
14+
],
15+
"Soldered encoder right",
16+
[
17+
"Halcyon module right",
18+
"None",
19+
"Encoder"
20+
]
21+
],
22+
"keymap": [
23+
[{"y":0.25,"x":3},"0,3",{"x":9},"5,3"],
24+
[{"y":-0.75,"x":2},"0,4",{"x":1},"0,2",{"x":7},"5,2",{"x":1},"5,4"],
25+
[{"y":-0.875,"x":5},"0,1",{"x":5},"5,1"],
26+
[{"y":-0.625},"0,6","0,5",{"x":13},"5,5","5,6"],
27+
[{"y":-0.75,"x":3},"1,3",{"x":9},"6,3"],
28+
[{"y":-0.75,"x":2},"1,4",{"x":1},"1,2",{"x":7},"6,2",{"x":1},"6,4"],
29+
[{"y":-0.875,"x":5},"1,1",{"x":5},"6,1"],
30+
[{"y":-0.625},"1,6","1,5",{"x":13},"6,5","6,6"],
31+
[{"y":-0.75,"x":3},"2,3",{"x":9},"7,3"],
32+
[{"y":-0.75,"x":2},"2,4",{"x":1},"2,2",{"x":7},"7,2",{"x":1},"7,4"],
33+
[{"y":-0.875,"x":5},"2,1",{"x":5},"7,1"],
34+
[{"y":-0.625},"2,6","2,5",{"x":13},"7,5","7,6"],
35+
[{"y":-0.5,"x":2.5},"3,4",{"x":10},"8,4"],
36+
[{"rx":4,"ry":8.175,"y":-4.675,"x":-0.5},"3,2"],
37+
[{"rx":10.5,"ry":4.1,"y":2.25,"x":-10.5,"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"4,2\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":1,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.75,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"9,2\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne"],
38+
[{"x":-10.5,"d":true},"4,1\n\n\n1,0",{"d":true},"4,0\n\n\n1,0",{"d":true},"4,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"9,1\n\n\n3,0",{"d":true},"9,0\n\n\n3,0",{"d":true},"9,3\n\n\n3,0"],
39+
[{"x":-9.5,"d":true},"4,4\n\n\n1,0",{"x":13,"d":true},"9,4\n\n\n3,0"],
40+
[{"y":0.5,"x":-10.5},"1,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"4,2\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":11},"3,0\n\n\n3,1\n\n\n\n\n\ne",{"d":true},"9,2\n\n\n3,1","3,1\n\n\n3,1\n\n\n\n\n\ne"],
41+
[{"x":-10.5,"d":true},"4,1\n\n\n1,1","4,0\n\n\n1,1",{"d":true},"4,3\n\n\n1,1",{"x":11,"d":true},"9,1\n\n\n3,1","9,0\n\n\n3,1",{"d":true},"9,3\n\n\n3,1"],
42+
[{"x":-9.5,"d":true},"4,4\n\n\n1,1",{"x":13,"d":true},"9,4\n\n\n3,1"],
43+
[{"rx":13,"ry":8.175,"y":-4.675,"x":-0.5},"8,2"],
44+
[{"r":15,"rx":4,"y":-4.675,"x":-0.5},"3,1"],
45+
[{"r":30,"y":-2,"x":-0.5},"3,3"],
46+
[{"x":-0.5},"3,5"],
47+
[{"r":45,"y":-2,"x":-0.5},"2,0"],
48+
[{"x":-0.5},"3,0"],
49+
[{"r":-45,"rx":13,"y":-5.675,"x":-0.5},"7,0"],
50+
[{"x":-0.5},"8,0"],
51+
[{"r":-30,"y":-2,"x":-0.5},"8,3"],
52+
[{"x":-0.5},"8,5"],
53+
[{"r":-15,"y":-1,"x":-0.5},"8,1"]
54+
]
55+
}
56+
}

0 commit comments

Comments
 (0)