Skip to content

Reference · Legacy composition

Legacy composition

New projects use authored units. The older application/board/deployment format remains supported for existing projects and multi-device composition. This page is outside the beginner path.

File Owns
Service manifest Implementation and requirements
Application TOML Selected services, settings, bindings, budgets
Board TOML Hardware and wiring
Deployment TOML Physical identities, board/application selection, connections/captures
Generated unit Resolved build input for one physical device

01 · Validate an existing example

From the SDK root:

./micros compose tests/fixtures/composition/deployments/dht.toml
./micros compose tests/fixtures/composition/deployments/dht.toml --output build/dht-review

The DHT fixture has a synthetic device ID. These commands validate declarations offline; they do not deploy or establish that a sensor works. Read the fixture and its referenced application/board files for the complete accepted syntax. The source driver has ESP32-specific assumptions.

Use a new output directory. Generated unit paths refer to source in this checkout; they are not frozen compiled releases. After changing inputs, recompose. For real deployment substitute your hardware identity and wiring, then explicitly select --project build/dht-review/units/HARDWARE_ID.toml from the SDK CLI.

For a runnable example in the current declaration format, use the simulated climate application and its complete host unit.

02 · Compatibility reference

Legacy hardware/timer declarations, explicit port bindings and keyed channels remain readable. Avoid combining old/new definitions of the same resource. Refer to the loader and composition implementation for legacy fields rather than maintaining a second schema table here.

Current service types, budgets, and bindings have one home in Declarations. For cross-board route setup, see Coordination.