mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-10-14 10:37:16 +00:00
DESIGN.md is the reconciled high-level design after the 2026-09 restructure: system context, roles, build-time composition, layers and dependency rules (with the known exceptions), threading and event loop, end-to-end flows, cross-cutting concerns and the upstream alignment policy. docs/adr/ holds the nine decision records (ESP32 boot layout, S3 native USB, overlay precedence, BLE privacy, Zephyr main pin, SX126x duty cycle and RX-busy gating, adaptive contention window, storage backend, WiFi companion boards). ARCHITECTURE.md stays the detailed component reference and links both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
904 B
904 B
ADR 0003 — Devicetree overlays: board.overlay first, conf-paired overlays after it
Status: accepted (recorded 2026-09-25)
Context
board.overlay goes into EXTRA_DTC_OVERLAY_FILE first, so overlays paired with later confs
(repeater/pm_esp32/esp32s3_usb/no_display) override it — matching the conf chain's own "user extras last"
rule. This was the opposite order until 2026-08-28, which silently broke esp32s3_usb.overlay's console reroute
on the boards that choose a console in board.overlay, and pm_esp32.overlay's SX1262 NSS sleep-hold on
heltec_wireless_tracker. partitions.overlay stays last.
Decision
Overlay order mirrors the conf order: board first, conf-paired overlays next, partitions.overlay last.
Consequences
A conf-paired overlay can always override a board default; a board that must win has to change its board.conf pairing, not the order.