Configuration is a new platform-wide capability that separates how devices, cloud, and applications behave from the firmware that runs on them. Update endpoints, feature flags, polling intervals, and modes across your entire fleet, or a single device, in seconds, with no firmware build or flash required.
It's structured as three complementary layers with deterministic inheritance from org down to device:
Environment Variables, lightweight key/value pairs for fast runtime adjustments, available in MCU firmware, Linux apps, Logic, and Integrations. Enabled by Device OS 6.4.0.
Secrets, secure, org-scoped values for Cloud, Integrations, and Logic. Cloud-only in this phase.
Schemas & Values, typed, JSON-Schema-validated parameters for governing firmware behavior at scale, with versioning and rollback.
Every change is validated, recorded with a full audit trail, and propagated instantly to online devices, or on reconnect for offline ones. Works with Gen 3 and newer hardware, no changes required.
@erik.fasnacht - This sounds powerful. I am working on a new common firmware baseline that can be configured by product and device using the Particle Ledger. Can you explain how these two features differ?
Environment variables are similar in some ways to cloud-to-device ledger. The hierarchy of allowing product to override the organization, and the device to override the product could be built in ledger using multiple ledgers, but is built into environment.
Another difference is that ledger supports live updating of values while cloud connected. Environment updates are sent as OTA updates, so they are never applied while your firmware is running. Environment values can also be set via an application bundle (as is used for Asset OTA), so the values can be set via firmware flashed by USB, before the device ever connects to the cloud.
Schemas and values are basically how the Tracker configuration works, but supported for non-Tracker devices.
@rickkas7 - thank you this is very helpful. I am using Ledger to define product-level device behavior and device-level configurations. But I can see why Environments applying values before the device connects to the cloud. In my workflow the device connects to the cloud in the context of a Particle product and then goes through a number of steps: