Skip to content

feat(firmware): b11 board config, htoyto skeleton, CI baseline [WIP] - #47

Merged
secersh merged 48 commits into
mainfrom
firmware/b11-alpha
Jun 8, 2026
Merged

secersh merged 48 commits into
mainfrom
firmware/b11-alpha

Conversation

@secersh

@secersh secersh commented Apr 17, 2026

Copy link
Copy Markdown
Owner

Summary

Moves firmware files from .backup into tracked repo structure under firmware/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 overlays
  • firmware/b11/app/src/htoyto/ — htoyto protocol skeleton (UART init, events, reactor)
  • firmware/b11/app/dts/bindings/htoyto/ — Zephyr DTS binding for the htoyto device node
  • firmware/b11/app/include/htoyto/ — Public headers
  • firmware/b11/kbs/west.yml — West manifest (reference, not used directly by CI)
  • .github/workflows/firmware.yaml — Updated paths from ws-1b11, board name from etzee_101etzee_b11

Notes

  • CI builds left-side firmware only for now
  • Keymap is a placeholder (single &kp Q) — tracked in Keymap configs #44
  • htoyto implementation is a skeleton — tracked in Implement htoyto in ZMK #40
  • No code changes from backup, structure/naming only

Refs #39

@secersh
secersh force-pushed the firmware/b11-alpha branch from cb9de9c to 391e215 Compare April 25, 2026 08:47
secersh and others added 29 commits May 23, 2026 23:26
- 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>
…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
secersh and others added 19 commits May 23, 2026 23:26
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
secersh force-pushed the firmware/b11-alpha branch from 2100894 to ae07f07 Compare May 24, 2026 06:57
@secersh
secersh merged commit b9097f1 into main Jun 8, 2026
1 check passed
@secersh
secersh deleted the firmware/b11-alpha branch June 8, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant