OTA-Pulse
Beta

OTA for microcontrollers

The same fleet, firmware and campaign workflow you use for Linux devices, brought to Cortex-M, Xtensa and RISC-V targets by a heap-free C SDK — managed from the same organization and the same account.

OTA-Pulse MCU is in beta. The device SDK, firmware signing and campaign rollouts are working and validated on real hardware, but the product is younger than our Linux stack and we onboard MCU customers with an engineer alongside them. Remote SSH and coredump capture are Linux-only and are not coming to MCU.

Validated on real hardware

These are the parts we have run full update cycles on ourselves. The SDK's porting layer covers other ESP-IDF and Zephyr targets — talk to us about yours.

ESP32

ESP32-S3 · ESP32-C6 · ESP32-WROOM

Port: ESP-IDF

Nordic

nRF54L15

Port: Zephyr

STM32

STM32 F439ZI · STM32 H753ZI

Port: Zephyr

01

Integrate the device SDK

A C SDK with no dynamic allocation and no thread of its own — your application owns the main loop and calls into it. It ships production ports for ESP-IDF and Zephyr, and a documented porting layer if you need another target. Apache-2.0 licensed; ask us for access.

02

Upload signed firmware

Upload an unencrypted MCUboot image and the server verifies its embedded Ed25519 or RSA-2048 signature before accepting it. Encrypted images stay sealed, so the server checks a signature is present and leaves verification to MCUboot on the device. ESP32 images use an OTA-Pulse envelope whose detached signature is optional by default — turn on the strict setting to have unsigned ESP32 uploads refused.

03

Roll out as a campaign

Group your devices, start a campaign, and watch install results land per device. A running campaign can be paused and resumed, or aborted — and once aborted, rolled back. Multi-phase campaigns advance on their own once a phase succeeds, though that automatic advance is still in beta.

04

Install safely on device

The SDK streams the image into the inactive bank, hashing as it writes, and resumes an interrupted download rather than restarting it. MCUboot swaps banks and stays the authoritative signature check at boot; if the new image never confirms healthy, the device reverts on its own.

Update devices that were never online

Not every microcontroller has a network. The SDK can take an update over BLE, or over a serial link on UART or USB, delivered by a technician running the Pulse Tool field utility next to the device. The image is signed, hashed and version-checked exactly as it would be over the network — the delivery path changes, the safety guarantees do not.

Our embedded Linux agent can also install from a local file you put on the device yourself. What is different here is the delivery: MCU brings its own transport, so nobody has to get the image onto the device first. A CAN and CAN-FD data plane exists for vehicle and industrial buses too, though it is experimental and off by default today.

One account, both fleets

MCU devices live under the same organization as your Linux devices, with the same team members and the same roles. You sign in to the OTA-Pulse console as usual and switch to the MCU fleet from the sidebar — there is no second login and no second invoice to reconcile.

Pricing

MCU fleets are billed at $0.45 per active device per month. Start with a free trial — moving to a paid plan is still set up with us directly while self-service MCU checkout is being built.