ESP-IDF
ESP-IDF is the best-placed of the common platforms: esp-idf-sbom reads an sbom.yml file from each component and writes the identifiers it finds. For components that ship one, such as mbedTLS, lwIP and FreeRTOS, you already get a usable identifier.
The gap is the components with no sbom.yml. They come out under a made-up fallback name with no identifier, so a database cannot match them. Espressif's closed radio libraries (Bluetooth, Wi-Fi, PHY and coexistence) carry nothing at all, because they are prebuilt binaries.
From a built project:
idf.py build
idf.py sbom-createthe SPDX or CycloneDX file esp-idf-sbom writes — either format worksdependencies.lock (optional, beside the SBOM, never alone) — adds the resolved versions of your managed components, which the SBOM alone leaves outFacts on this page checked on 2026-10-14.
Declarable prepares documentation for you to review. It is not legal advice and not certification. You sign your own declaration of conformity.