Files
trail-mate/docs/specification/BOARD_PACKAGE_SPEC.md
T
vicliuandGitHub bf7068b02b 0.1.26-alpha release
* refactor: render chat rows from presentation state

* Fix Meshtastic channel sync and add MeshCore CN preset

* Add granular chat notification settings

* Add SD settings backup and restore

* Prepare 0.1.26-alpha release

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-19 16:04:42 +08:00

1.6 KiB

Board Package Specification

Board packages describe hardware facts and board-level bring-up constraints. They do not describe business behavior.

File Location

Board manifests live under:

docs/boards/*.board.yaml

The template lives at:

docs/boards/BOARD_MANIFEST_TEMPLATE.yaml

Board Package Owns

pin map
bus map
power rails
display facts
input facts
battery facts
radio hardware facts
GPS hardware facts
board init facts
board sleep/wake hardware hooks

Board Package Must Not Own

ChatService
ContactService
DirectMessageService
MeshtasticPhoneCore
MeshCorePhoneCore
ConfigService business interpretation
UI page state
BLE phone protocol
GPS business strategy
LoRa packet semantics
PKI policy
peer key policy

Board Manifest Semantics

Board manifest answers:

What hardware is physically present?
Which chip is used?
Which bus and pins connect it?
Which power gates exist?
Which display and input devices exist?
Which storage/power features exist?

It does not answer:

Which protocols are enabled?
Which UI shell is used?
Which app owns config?
How direct messages are sent?
How BLE phone APIs behave?
How LoRa packets are interpreted?

Target Manifest Difference

board_manifest.yaml describes what hardware exists.
target_manifest.yaml describes how a product uses that hardware.

Allowed Consumers

Board facts may be consumed by:

composition roots
platform factories
board bring-up code
hardware adapter construction
diagnostic tooling

Board facts must not be consumed directly by shared app services, protocol cores, presentation models, or renderers.