FS-1 CRASH INTELLIGENCE UNITESP32 · CORTEX-MREV 2.2 — JUNE 2026DATASHEET
Crash intelligence for microcontrollers

Your device crashed at 03:07:42.
You'll know why by breakfast.

Firmware Sentry captures the fault registers before reset, survives the reboot, resolves the program counter to function · file · line, and writes a plain-English root cause. No JTAG. No reproducing it on the bench.

ESP32 + STM32 Cortex-M~4 KB flash, 0 mallocsApache-2.0 SDK
prod-sensor-042 · ESP32-WROOM-32 · 115200 baud● RUNNING
Device — serial monitor
Cloud — firmwaresentry.io
— listening for crash reports —
Ingestcrash #8F2A · received 03:07:49 · dedup ok
DWARF resolution0x400D2A4Csensor_read() · sensor.c:87
AI diagnosis — Claude
Result✓ Fault → root cause in 41 s. Email sent.
simulated on a real capture trace
FIGURE 1. Typical crash, captured end-to-end. Interactive — press the button.
Verified targetsESP32-WROOM-32STM32L476 · Cortex-M4FreeRTOSESP-IDF v5.xSTM32CubeIDEZephyr (experimental)
§ 1

Theory of operation

The SDK does the hard part on-device, in microseconds, with zero heap. The cloud does the thinking. You wake up to an answer, not a stack trace.

Catch

The fault hook fires before reset. PC, SP, EXCCAUSE on ESP32 — CFSR, HFSR, MMFAR, BFAR on Cortex-M — plus the running task name.

capture ≈ 14 µs

Survive

The dump is parked in RTC NOINIT (ESP32) or Backup SRAM (STM32). It outlives the reboot and ships on next boot — HTTPS, or UART for air-gapped boards.

601 B persisted

Resolve

Your ELF, uploaded once, turns a raw program counter into function · file · line via the DWARF debug tables. No symbols on the device.

0x400D2A4C → sensor.c:87

Diagnose

Claude reads the registers, breadcrumbs, and resolved frame together — then writes the root cause and a fix prompt you paste into Cursor or Copilot.

root cause ≈ 41 s
FIGURE 2. Block diagram — fault to fix, while you sleep.
§ 2

Functional description

Everything from the crash register to the pull request. Built by a firmware engineer who got tired of crash reports that say "Guru Meditation Error" and nothing else.

AI root cause, not just a stack trace

Other tools hand you registers and frames — you still do the diagnosis at 9 AM with cold coffee. Firmware Sentry hands you the sentence, plus a ready-made prompt for your IDE's AI.

// AI diagnosis · crash #8F2A
Root cause: i2c_handle is NULL — sensor_read() runs before
i2c_init() completes after brown-out, at sensor.c:87.
Fix: guard the handle and move i2c_init() ahead of task start.

Survives reset

RTC NOINIT on ESP32, Backup SRAM on STM32. The dump is written before the watchdog bites, and uploads on the next boot.

DWARF symbols

Upload the ELF once per build. Every PC address resolves to function, file, and line automatically — verified against esp_app_get_elf_sha256().

Breadcrumbs

A 10-event ring buffer survives the crash. See exactly what the device did in the seconds before the fault — state changes, retries, sensor reads.

No WiFi? No problem.

Air-gapped board? Pipe crash data over UART through gateway.py to the cloud. Works on any non-networked MCU.

Email the instant it breaks

Fault signature, task name, and a direct link to the AI diagnosis — in your inbox before the device finishes rebooting.

Pure C99, audit it yourself

~4 KB flash, zero heap allocations, no RTOS lock-in. Apache-2.0 on GitHub — read every line before it ships in your product.

§ 3

SDK characteristics

You'd check the table before choosing a voltage regulator. Check it before choosing a crash reporter.

TABLE 1. Measured on real hardware — ESP32-WROOM-32 @ -O2, ESP-IDF v5.5; NUCLEO-L476RG, STM32CubeIDE.
ParameterConditionsMinTypMaxUnit
Flash footprintcore + HTTPS transport4.16.0KB
Persistent crash dumpRTC NOINIT / Backup SRAM601601B
Heap allocationsentire SDK lifetime000allocs
Fault capture timeregisters + task + breadcrumbs1450µs
Breadcrumb bufferring, survives reset1010events
Time to AI diagnosisdevice reboot → dashboard4190s
Integration timeinit + provision + one breadcrumb30min
* Typ values measured on the boards above; your numbers vary with toolchain and config. The SDK is open source — measure it yourself.
§ 4

Memfault is great. It's also $3,495/mo and a sales call.

An honest comparison. We built Firmware Sentry for the team that wants answers today, not a procurement cycle.

Memfault

  • Growth plan starts at $3,495/mo, quote required
  • AI covers fleet-wide release trends, not individual crashes
  • 30-day debugging retention on Growth tier
  • Full OTA + fleet management platform — more than most small teams need
  • Free tier limited to Nordic nRF chips via nRF Cloud

Firmware Sentry

  • Free tier, paid from $59/mo, fully self-serve
  • AI writes a root cause + IDE fix prompt for every individual crash
  • 1-year retention on Growth tier
  • Focused on crash diagnosis — nothing to configure that you don't need
  • Free tier works on any supported chip, no card

Full feature comparison →

§ 5

Ordering information

Pay for crashes analyzed, not seats. Start free on your bench, upgrade when you ship, cancel anytime.

FS-FREE-00

Free

$0 /mo

Prove it on your own hardware first. No card.

  • 50 diagnoses/mo
  • 10 devices
  • 7-day retention
  • DWARF resolution
Start free
POPULARFS-STR-59

Starter

$59 /mo

Small teams shipping to real customers.

  • 500 diagnoses/mo
  • 10 devices
  • 90-day retention
  • Email alerts
  • REST API
Get started
FS-GRW-249

Growth

$249 /mo

Scaling fleets and contract firmware shops.

  • 2,000 diagnoses/mo
  • 100 devices
  • 1-year retention
  • Bulk device API
  • Priority support
Get started
FS-SCL-599

Scale

$599 /mo

Industrial & medical device fleets.

  • 10,000 diagnoses/mo
  • 1,000 devices
  • Unlimited retention
  • SSO / audit logs
  • Dedicated support
Get started

The next crash is coming.
Be ready to read it.

Integrate in under 30 minutes on hardware you already have: fs_init() on boot, fs_log_event() where it matters, done.