feat(firmware): b11 board config, htoyto skeleton, CI baseline [WIP] - #47
Merged
Merged
Conversation
secersh
force-pushed
the
firmware/b11-alpha
branch
from
April 25, 2026 08:47
cb9de9c to
391e215
Compare
- Add etzee_b11 board definition (nRF52840, split keyboard) - Add DTS, pinctrl, defconfig, Kconfig, keymap, and side overlays - Add htoyto protocol source, bindings, headers, and reactor - Update firmware.yaml workflow paths from ws-1 to b11 - Rename board identifier from etzee_101 to etzee_b11 Refs #39 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Clone ZMK at v0.3-branch (Zephyr 3.5) to match our board format - Use separate build dirs (build/left, build/right) for each side - Upload etzee_b11-left and etzee_b11-right as separate artifacts - Update kbs/west.yml revision to v0.3-branch - Add board.yml (Zephyr board declaration) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…r 3.5) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace node-id etzee-101-left/right with etzee-b11-left/right in overlays - Rename CI artifacts to etzee_b11_left / etzee_b11_right (underscores) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nc working htoyto.c
….h)" This reverts commit 65d6bfd.
…d add reactor to build - Remove zmk_event_t header from struct htoyto_event (ZMK_EVENT_DECLARE wraps it externally) - Fix reactor callback to use const zmk_event_t *eh + as_htoyto_event(eh) - Rename HTOYTO_EVENT_NODE_ADDED_FAILED -> HTOYTO_EVENT_NODE_ADD_FAILED - Add src/reactor/CMakeLists.txt and wire reactor into board.cmake build
…go connection" This reverts commit 83d5a3a.
…F UARTE RX conflict
nRF UARTE legacy shim drops incoming bytes when TX DMA is active. Switch to the async API (independent TX/RX DMA channels) with a 5 ms idle timeout so short frames flush promptly without waiting for the full DMA buffer to fill.
UART_ASYNC_API has a known nRF52 RX bug in Zephyr v0.3-branch (noted in ZMK's own wired-split Kconfig). Reverting to interrupt-driven restores USB CDC ACM logging. The handshake failure is a hardware issue (pogo-pin contact / missing common ground) to be resolved with the power bus, not a DMA contention problem.
…etection Origin sends BYE on dR falling so terminal can immediately go IDLE. When keepalive is enabled (default 500ms), origin also sends periodic KAL frames; terminal arms a 3x watchdog on connect and resets it each KAL, firing node_removed if the peer goes silent. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Physical pogo connection carries both dR and UART on the same connector. By the time dR falling is detected, the UART line is already broken so BYE can never reach the terminal. Terminal disconnect is handled solely by the KAL watchdog. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
secersh
force-pushed
the
firmware/b11-alpha
branch
from
May 24, 2026 06:57
2100894 to
ae07f07
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves firmware files from
.backupinto tracked repo structure underfirmware/b11/, and wires up the CI workflow to compile them.Changes
firmware/b11/app/boards/arm/etzee_b11/— ZMK board definition for the b11 split keyboard (nRF52840): DTS, pinctrl, defconfig, Kconfig, keymap, left/right side overlaysfirmware/b11/app/src/htoyto/— htoyto protocol skeleton (UART init, events, reactor)firmware/b11/app/dts/bindings/htoyto/— Zephyr DTS binding for the htoyto device nodefirmware/b11/app/include/htoyto/— Public headersfirmware/b11/kbs/west.yml— West manifest (reference, not used directly by CI).github/workflows/firmware.yaml— Updated paths fromws-1→b11, board name frometzee_101→etzee_b11Notes
&kp Q) — tracked in Keymap configs #44Refs #39