Skip to content

Reference ยท Packages and compatibility

Packages and compatibility

Artifact Purpose
Unit TOML Mutable source/build input for one device
.mimg Native service image
.msp Image plus contracts, settings, schemas, and published channel schemas
Release bundle Retained compiled packages and deployment description
Base ELF + sdkconfig Exact resident build required for compatible services

The loader checks calling convention, ABI revision, layout, descriptor, and resource budgets. A binary built for one controller/base is not a portable binary for another. Direct ESP32 profiles keep a paired ELF; server-backed builds retrieve the exact base by its reported hash. A similarly named base is insufficient.

ESP32 service staging reuses two banks. The optional base-OTA layout has two firmware partitions sharing that same application store. Base rollback does not restore an application snapshot. See Deploy and update and base OTA.

Runtime budgets are in Service API; format ceilings are in Declarations. Target slot limits come from the actual base's exports/admission, not a universal code-size number.

For binary format details, use the image header and package validator. Checksums detect byte mismatches; they are neither authentication nor native memory isolation.