Files
ZephCore/docs/adr/0003-devicetree-overlay-precedence.md
liquidraverandClaude Opus 5.5 9fc1eaf18a docs: publish the system design and architecture decision records
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>
2026-09-25 22:01:28 +02:00

21 lines
904 B
Markdown

# 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.