From 679e73bc695b6e741a621bbe0f4029d4cac8e0b3 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Fri, 10 Apr 2026 16:55:44 -0700 Subject: [PATCH 01/19] feat: switch dongle board to CX40 (raytac_mdbt50q_cx_40) Swap board from raytac_mdbt50q_rx to raytac_mdbt50q_cx_40 and point zmk-component-raytac-dongle to perrwa fork with CX40 support. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 4 ++-- config/west.yml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.yaml b/build.yaml index 414c9c2..c5d0240 100644 --- a/build.yaml +++ b/build.yaml @@ -3,9 +3,9 @@ include: - board: nice_nano_v2 shield: settings_reset - - board: raytac_mdbt50q_rx + - board: raytac_mdbt50q_cx_40 shield: corne_dongle - - board: raytac_mdbt50q_rx + - board: raytac_mdbt50q_cx_40 shield: settings_reset # Dongle setup: both halves are peripherals (dongle is central) diff --git a/config/west.yml b/config/west.yml index efb5611..45b74e7 100644 --- a/config/west.yml +++ b/config/west.yml @@ -2,15 +2,15 @@ manifest: remotes: - name: zmkfirmware url-base: https://github.com/zmkfirmware - - name: rschenk - url-base: https://github.com/rschenk + - name: perrwa + url-base: https://github.com/perrwa projects: - name: zmk remote: zmkfirmware revision: v0.3 import: app/west.yml - name: zmk-component-raytac-dongle - remote: rschenk - revision: v0.3 + remote: perrwa + revision: perrwa/add-cx40 self: path: config From 831a198505f442e56242c40ad3cf099ccc2cb0c7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 17:37:00 +0000 Subject: [PATCH 02/19] Initial plan From 05b00e073a46cd2bd5e289ad056c53f707eccb10 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 17:41:21 +0000 Subject: [PATCH 03/19] feat: switch to CX40 dongle board and ZMK main (v0.4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - build.yaml: raytac_mdbt50q_rx → raytac_mdbt50q_cx_40 - config/west.yml: zmk v0.3 → main, raytac dongle rschenk/v0.3 → perrwa/main - workflows: reusable workflow @v0.3 → @main Agent-Logs-Url: https://github.com/perrwa/zmk-config/sessions/74bb02a0-3a79-4f40-9a3a-15d2aa6edbfc Co-authored-by: perrwa <7255333+perrwa@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- config/west.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f0748df..67733d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,6 +15,6 @@ jobs: build: permissions: contents: read - uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@v0.3 + uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main with: fallback_binary: hex diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 47c18c5..3e6c3d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: build: permissions: contents: read - uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@v0.3 + uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main with: fallback_binary: hex diff --git a/config/west.yml b/config/west.yml index 45b74e7..7c3ea68 100644 --- a/config/west.yml +++ b/config/west.yml @@ -7,10 +7,10 @@ manifest: projects: - name: zmk remote: zmkfirmware - revision: v0.3 + revision: main import: app/west.yml - name: zmk-component-raytac-dongle remote: perrwa - revision: perrwa/add-cx40 + revision: main self: path: config From bb861e0333b4a627e6f1aa71c119e5e689a002a8 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:13:05 -0700 Subject: [PATCH 04/19] fix: update board names for ZMK v0.4 HWMv2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nice_nano_v2 → nice_nano//zmk (revision-based naming + ZMK variant) - raytac_mdbt50q_cx_40 → mdbt50q_cx_40 (vendor prefix is now directory, not board name) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.yaml b/build.yaml index c5d0240..efad28d 100644 --- a/build.yaml +++ b/build.yaml @@ -1,19 +1,19 @@ --- include: - - board: nice_nano_v2 + - board: nice_nano//zmk shield: settings_reset - - board: raytac_mdbt50q_cx_40 + - board: mdbt50q_cx_40 shield: corne_dongle - - board: raytac_mdbt50q_cx_40 + - board: mdbt50q_cx_40 shield: settings_reset # Dongle setup: both halves are peripherals (dongle is central) - - board: nice_nano_v2 + - board: nice_nano//zmk shield: corne_left cmake-args: -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n artifact-name: corne_dongle_left-zmk - - board: nice_nano_v2 + - board: nice_nano//zmk shield: corne_right cmake-args: -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n artifact-name: corne_dongle_right-zmk From d8a6752499aa2b73b429ac6314adaa3698ccda33 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:48:30 -0700 Subject: [PATCH 05/19] fix: add board-specific RAM tuning for mdbt50q_cx_40 Zephyr 4.1's BLE controller + USB stack exceeds 256 KB RAM on this board without tuning. Disable logging, shrink BLE buffers, and reduce stack/heap sizes to fit within nRF52840 SRAM. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- config/boards/mdbt50q_cx_40.conf | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 config/boards/mdbt50q_cx_40.conf diff --git a/config/boards/mdbt50q_cx_40.conf b/config/boards/mdbt50q_cx_40.conf new file mode 100644 index 0000000..91f99df --- /dev/null +++ b/config/boards/mdbt50q_cx_40.conf @@ -0,0 +1,22 @@ +# Board-specific overrides for Raytac MDBT50Q-CX-40 dongle. +# Reduce RAM usage for Zephyr 4.1 compatibility — the default BLE +# controller + USB stack exceeds 256 KB on this board without tuning. + +# Disable logging to save ~20-30 KB RAM +CONFIG_LOG=n +CONFIG_ZMK_LOG_LEVEL_OFF=y + +# Shrink BLE controller buffers (defaults are generous) +CONFIG_BT_BUF_ACL_RX_SIZE=69 +CONFIG_BT_BUF_ACL_TX_SIZE=69 +CONFIG_BT_BUF_ACL_RX_COUNT=3 +CONFIG_BT_BUF_ACL_TX_COUNT=3 + +# Reduce main/idle thread stack sizes +CONFIG_MAIN_STACK_SIZE=2048 +CONFIG_IDLE_STACK_SIZE=256 +CONFIG_ISR_STACK_SIZE=1536 +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 + +# Smaller heap +CONFIG_HEAP_MEM_POOL_SIZE=4096 From 68707bef2e5dc6bb896ce2ed415826f7c52bc6cb Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:59:01 -0700 Subject: [PATCH 06/19] Revert "fix: add board-specific RAM tuning for mdbt50q_cx_40" This reverts commit 5030f7a58bf54b9bcc0093af7a07f4c56be479ae. --- config/boards/mdbt50q_cx_40.conf | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 config/boards/mdbt50q_cx_40.conf diff --git a/config/boards/mdbt50q_cx_40.conf b/config/boards/mdbt50q_cx_40.conf deleted file mode 100644 index 91f99df..0000000 --- a/config/boards/mdbt50q_cx_40.conf +++ /dev/null @@ -1,22 +0,0 @@ -# Board-specific overrides for Raytac MDBT50Q-CX-40 dongle. -# Reduce RAM usage for Zephyr 4.1 compatibility — the default BLE -# controller + USB stack exceeds 256 KB on this board without tuning. - -# Disable logging to save ~20-30 KB RAM -CONFIG_LOG=n -CONFIG_ZMK_LOG_LEVEL_OFF=y - -# Shrink BLE controller buffers (defaults are generous) -CONFIG_BT_BUF_ACL_RX_SIZE=69 -CONFIG_BT_BUF_ACL_TX_SIZE=69 -CONFIG_BT_BUF_ACL_RX_COUNT=3 -CONFIG_BT_BUF_ACL_TX_COUNT=3 - -# Reduce main/idle thread stack sizes -CONFIG_MAIN_STACK_SIZE=2048 -CONFIG_IDLE_STACK_SIZE=256 -CONFIG_ISR_STACK_SIZE=1536 -CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 - -# Smaller heap -CONFIG_HEAP_MEM_POOL_SIZE=4096 From 4bec975e6dff51f6ccd76ad95085702568a1b4cf Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 12:21:05 -0700 Subject: [PATCH 07/19] test: add RX dongle builds to diagnose RAM overflow scope Add mdbt50q_rx + corne_dongle and mdbt50q_rx + settings_reset to build matrix to determine if Zephyr 4.1 RAM overflow affects all standalone nRF52840 boards or only CX-40. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.yaml b/build.yaml index efad28d..ab46d92 100644 --- a/build.yaml +++ b/build.yaml @@ -8,6 +8,12 @@ include: - board: mdbt50q_cx_40 shield: settings_reset + # Diagnostic: test if RX also overflows RAM on Zephyr 4.1 + - board: mdbt50q_rx + shield: corne_dongle + - board: mdbt50q_rx + shield: settings_reset + # Dongle setup: both halves are peripherals (dongle is central) - board: nice_nano//zmk shield: corne_left From ae826d541c123642e69601e3a1e539327479bf0e Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 12:26:05 -0700 Subject: [PATCH 08/19] revert: remove diagnostic RX dongle build entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RX test complete — both boards need the extend variant fix. RX fails with Missing ZMK Compat (not RAM overflow). Results documented in perrwa/zmk-component-raytac-dongle#5. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/build.yaml b/build.yaml index ab46d92..efad28d 100644 --- a/build.yaml +++ b/build.yaml @@ -8,12 +8,6 @@ include: - board: mdbt50q_cx_40 shield: settings_reset - # Diagnostic: test if RX also overflows RAM on Zephyr 4.1 - - board: mdbt50q_rx - shield: corne_dongle - - board: mdbt50q_rx - shield: settings_reset - # Dongle setup: both halves are peripherals (dongle is central) - board: nice_nano//zmk shield: corne_left From 8f60e7edfa830014b6df89d9d25238c46fc90642 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 12:37:31 -0700 Subject: [PATCH 09/19] fix: use CX-40 ZMK variant board from fix branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update build.yaml board name: mdbt50q_cx_40 → raytac_mdbt50q_cx_40_dongle//zmk Point west.yml to perrwa/fix-ram-overflow branch for testing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 4 ++-- config/west.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.yaml b/build.yaml index efad28d..cddd4d9 100644 --- a/build.yaml +++ b/build.yaml @@ -3,9 +3,9 @@ include: - board: nice_nano//zmk shield: settings_reset - - board: mdbt50q_cx_40 + - board: raytac_mdbt50q_cx_40_dongle//zmk shield: corne_dongle - - board: mdbt50q_cx_40 + - board: raytac_mdbt50q_cx_40_dongle//zmk shield: settings_reset # Dongle setup: both halves are peripherals (dongle is central) diff --git a/config/west.yml b/config/west.yml index 7c3ea68..61f831d 100644 --- a/config/west.yml +++ b/config/west.yml @@ -11,6 +11,6 @@ manifest: import: app/west.yml - name: zmk-component-raytac-dongle remote: perrwa - revision: main + revision: perrwa/fix-ram-overflow self: path: config From 9b3bfd9a0c074e52925a28fa85d93827e4113c65 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 13:03:38 -0700 Subject: [PATCH 10/19] fix: revert board name to mdbt50q_cx_40 (extend approach failed) Upstream Zephyr board raytac_mdbt50q_cx_40_dongle doesn't exist in ZMK's Zephyr fork (v4.1.0+zmk-fixes). Reverting to standalone board with ZMK_BOARD_COMPAT + RAM tuning in the dongle component. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.yaml b/build.yaml index cddd4d9..efad28d 100644 --- a/build.yaml +++ b/build.yaml @@ -3,9 +3,9 @@ include: - board: nice_nano//zmk shield: settings_reset - - board: raytac_mdbt50q_cx_40_dongle//zmk + - board: mdbt50q_cx_40 shield: corne_dongle - - board: raytac_mdbt50q_cx_40_dongle//zmk + - board: mdbt50q_cx_40 shield: settings_reset # Dongle setup: both halves are peripherals (dongle is central) From fe68719625a276d40b25f1494cc76883560f9a94 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 13:25:50 -0700 Subject: [PATCH 11/19] ci: retrigger build with CX-40 RAM reduction fixes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From 160a0dd76a59c8173ba3fecb06b0c6e9153c23db Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 13:35:58 -0700 Subject: [PATCH 12/19] ci: retrigger with TX power restored Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From df773b0e497bca7cd0192097b43d53b272019df8 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 14:46:39 -0700 Subject: [PATCH 13/19] ci: retrigger build after hw protect re-enabled Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From ef17b3ab47dc35d01251e511b761e7560ff4429b Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 15:17:13 -0700 Subject: [PATCH 14/19] docs: update README and copilot-instructions for CX-40 and v0.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dongle: MDBT50Q-RX → MDBT50Q-CX-40, rschenk → perrwa fork - Board names: raytac_mdbt50q_rx → mdbt50q_cx_40, nice_nano_v2 → nice_nano//zmk - Release trigger: tag push v* → push to main - West manifest: ZMK v0.3 → ZMK main (v0.4) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 4 ++-- README.md | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 0884c20..c27bc5f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,10 +1,10 @@ # Copilot Instructions -Split Corne-Cherry v3.0.1 ZMK keyboard config. Nice!Nano v2 halves + Raytac MDBT50Q-RX dongle (BLE central). West manifest pins ZMK v0.3 + `rschenk/zmk-component-raytac-dongle`. +Split Corne-Cherry v3.0.1 ZMK keyboard config. Nice!Nano v2 halves + Raytac MDBT50Q-CX-40 dongle (BLE central). West manifest tracks ZMK main (v0.4) + `perrwa/zmk-component-raytac-dongle`. ## Build -No local build/test. Two GitHub Actions workflows: `build.yml` (CI on PRs + manual dispatch) and `release.yml` (tag push `v*` + manual dispatch — builds firmware then creates a draft prerelease). Both call ZMK's reusable workflow. `build.yaml` defines the build matrix. Dongle halves override central role: `cmake-args: -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n`. +No local build/test. Two GitHub Actions workflows: `build.yml` (CI on PRs + manual dispatch) and `release.yml` (push to `main` + manual dispatch — builds firmware then creates a draft prerelease). Both call ZMK's reusable workflow. `build.yaml` defines the build matrix. Dongle halves override central role: `cmake-args: -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n`. `make dfu` packages firmware for dongle flashing; `make flash` flashes interactively via serial. Requires `nrfutil nrf5sdk-tools`. diff --git a/README.md b/README.md index 4845f2d..f2dda2e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ - **Corne-Cherry v3.0.1** — split 3×6+3 keyboard ([foostan/crkbd](https://github.com/foostan/crkbd)) - **Nice!Nano v2** — controllers for each half (BLE peripherals) -- **Raytac MDBT50Q-RX** — USB dongle running as BLE central ([rschenk/zmk-component-raytac-dongle](https://github.com/rschenk/zmk-component-raytac-dongle)) +- **Raytac MDBT50Q-CX-40** — USB dongle running as BLE central ([perrwa/zmk-component-raytac-dongle](https://github.com/perrwa/zmk-component-raytac-dongle)) ## Keymap @@ -28,13 +28,13 @@ All builds run in GitHub Actions — no local toolchain needed. | Workflow | Trigger | What it does | |----------|---------|--------------| | `build.yml` | PRs, manual dispatch | CI build for all targets | -| `release.yml` | Tag push `v*`, manual dispatch | Builds firmware → draft prerelease | +| `release.yml` | Push to `main`, manual dispatch | Builds firmware → draft prerelease | | `draw-keymaps-unified.yml` | Keymap/config changes | Regenerates keymap SVGs and YAML | The build matrix (`build.yaml`) produces firmware for: -- **Dongle** — `corne_dongle` shield on `raytac_mdbt50q_rx` -- **Left/Right halves** — `corne_left`/`corne_right` on `nice_nano_v2` with `-DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n` +- **Dongle** — `corne_dongle` shield on `mdbt50q_cx_40` +- **Left/Right halves** — `corne_left`/`corne_right` on `nice_nano//zmk` with `-DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n` - **Settings reset** — for both boards ### Dongle flashing @@ -54,7 +54,7 @@ make clean # Remove generated .zip packages ├── config/ │ ├── corne.conf # Keyboard settings (sleep, battery, BLE) │ ├── corne.keymap # Keymap (Devicetree syntax) -│ └── west.yml # West manifest — ZMK v0.3 + Raytac dongle module +│ └── west.yml # West manifest — ZMK main (v0.4) + Raytac dongle module ├── keymap-drawer/ # Auto-generated keymap visualizations │ ├── corne.svg / corne.yaml # Per-layer output │ ├── corne-unified.svg / .yaml # All layers merged into one view @@ -69,7 +69,7 @@ make clean # Remove generated .zip packages - [ZMK Documentation](https://zmk.dev/docs/) - [Corne Keyboard (foostan/crkbd)](https://github.com/foostan/crkbd) -- [Raytac Dongle ZMK Component (rschenk)](https://github.com/rschenk/zmk-component-raytac-dongle) +- [Raytac Dongle ZMK Component (perrwa fork)](https://github.com/perrwa/zmk-component-raytac-dongle) - [keymap-drawer (caksoylar)](https://github.com/caksoylar/keymap-drawer) ## License From dd82bd72f69bbe798a6f826e0921671359b88006 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Sun, 12 Apr 2026 15:24:25 -0700 Subject: [PATCH 15/19] fix: point dongle module at main (RAM fix merged) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- config/west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/west.yml b/config/west.yml index 61f831d..13fe2a6 100644 --- a/config/west.yml +++ b/config/west.yml @@ -11,6 +11,6 @@ manifest: import: app/west.yml - name: zmk-component-raytac-dongle remote: perrwa - revision: perrwa/fix-ram-overflow + revision: 239191ade065bd62404d0f32cc36ca58e3d275d7 self: path: config From aa25ff4b77e476c71bcdfa826ad364f88dcec4f8 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Tue, 19 May 2026 20:48:29 -0700 Subject: [PATCH 16/19] feat: switch halves to boardsource blecorne board unified board (nRF52840). Keep CX40 dongle as BLE central with corne_dongle shield unchanged. Changes: - Add boardsource/wireless-corne_zmk_config as west module - Update raytac dongle pin to latest main - Add blecorne.keymap wrapper (#include corne.keymap) - Add blecorne.conf symlink to corne.conf - Update build.yaml: blecorne_left/right with central=n override Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 11 ++--------- config/blecorne.conf | 1 + config/blecorne.keymap | 1 + config/west.yml | 7 ++++++- 4 files changed, 10 insertions(+), 10 deletions(-) create mode 120000 config/blecorne.conf create mode 100644 config/blecorne.keymap diff --git a/build.yaml b/build.yaml index efad28d..09124e7 100644 --- a/build.yaml +++ b/build.yaml @@ -1,19 +1,12 @@ --- include: - - board: nice_nano//zmk - shield: settings_reset - - board: mdbt50q_cx_40 shield: corne_dongle - board: mdbt50q_cx_40 shield: settings_reset # Dongle setup: both halves are peripherals (dongle is central) - - board: nice_nano//zmk - shield: corne_left + - board: blecorne_left cmake-args: -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n - artifact-name: corne_dongle_left-zmk - - board: nice_nano//zmk - shield: corne_right + - board: blecorne_right cmake-args: -DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=n - artifact-name: corne_dongle_right-zmk diff --git a/config/blecorne.conf b/config/blecorne.conf new file mode 120000 index 0000000..04dff1f --- /dev/null +++ b/config/blecorne.conf @@ -0,0 +1 @@ +corne.conf \ No newline at end of file diff --git a/config/blecorne.keymap b/config/blecorne.keymap new file mode 100644 index 0000000..9bf26c9 --- /dev/null +++ b/config/blecorne.keymap @@ -0,0 +1 @@ +#include "corne.keymap" diff --git a/config/west.yml b/config/west.yml index 13fe2a6..5b0b09f 100644 --- a/config/west.yml +++ b/config/west.yml @@ -4,6 +4,8 @@ manifest: url-base: https://github.com/zmkfirmware - name: perrwa url-base: https://github.com/perrwa + - name: boardsource + url-base: https://github.com/boardsource projects: - name: zmk remote: zmkfirmware @@ -11,6 +13,9 @@ manifest: import: app/west.yml - name: zmk-component-raytac-dongle remote: perrwa - revision: 239191ade065bd62404d0f32cc36ca58e3d275d7 + revision: 852f71077c62b1c54a39f24948e9739f34acacb0 + - name: wireless-corne_zmk_config + remote: boardsource + revision: 2158104902e164c317e35f53dfa0ca1e36e1a751 self: path: config From ad3c39dad68f898f9a8239ed351450d9a3b4cda8 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Tue, 19 May 2026 20:52:33 -0700 Subject: [PATCH 17/19] fix: remove undefined CONFIG_WS2812_STRIP (ZMK 0.4) Symbol was removed in ZMK 0.4. RGB underglow=n is sufficient to disable LED driver. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- config/corne.conf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/config/corne.conf b/config/corne.conf index 8967076..e0a34cc 100644 --- a/config/corne.conf +++ b/config/corne.conf @@ -3,12 +3,10 @@ CONFIG_ZMK_SLEEP=y # 1800000 ms = 30 minutes (default is 15 min) CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000 -# Disable RGB underglow, backlight, and WS2812 driver to eliminate -# ~12 mA quiescent draw from soldered SMT LEDs (even when "off"). -# VCC to the LED rail is gated via ext_power EP_OFF on the nice!nano v2. +# Disable RGB underglow and backlight to eliminate +# quiescent draw from soldered SMT LEDs (even when "off"). CONFIG_ZMK_RGB_UNDERGLOW=n CONFIG_ZMK_BACKLIGHT=n -CONFIG_WS2812_STRIP=n CONFIG_ZMK_BATTERY_REPORTING=y From 61e9ad2984ae34288f0353ccc25ca882db7c0e93 Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Tue, 19 May 2026 21:15:20 -0700 Subject: [PATCH 18/19] feat: add settings_reset targets for blecorne halves Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- build.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.yaml b/build.yaml index 09124e7..687bd95 100644 --- a/build.yaml +++ b/build.yaml @@ -1,5 +1,10 @@ --- include: + - board: blecorne_left + shield: settings_reset + - board: blecorne_right + shield: settings_reset + - board: mdbt50q_cx_40 shield: corne_dongle - board: mdbt50q_cx_40 From b50576ac190fba8902baa15b5527557e772617fa Mon Sep 17 00:00:00 2001 From: Perry Wang <7255333+perrwa@users.noreply.github.com> Date: Wed, 20 May 2026 09:09:52 -0700 Subject: [PATCH 19/19] fix: match physical layout include order with blecorne board (#31) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dongle overlay included 5column.dtsi before 6column.dtsi, while the blecorne board definition includes them in the opposite order. ZMK's physical layout system enumerates layouts by DTS definition order, so when the central sends its selected layout INDEX to peripherals, the peripheral resolves a different layout. Dongle (was): layouts[0]=5col, layouts[1]=6col → selects 6col → sends idx 1 Blecorne: layouts[0]=6col, layouts[1]=5col → receives idx 1 → selects 5col! This caused the peripheral to use the 5-column transform (stride 10) instead of the 6-column transform (stride 12), scrambling every key position sent to the central. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- boards/shields/corne_dongle/corne_dongle.overlay | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boards/shields/corne_dongle/corne_dongle.overlay b/boards/shields/corne_dongle/corne_dongle.overlay index fddd618..00552db 100644 --- a/boards/shields/corne_dongle/corne_dongle.overlay +++ b/boards/shields/corne_dongle/corne_dongle.overlay @@ -1,7 +1,7 @@ #include -#include #include +#include &foostan_corne_6col_layout { transform = <&default_transform>;