Find what broke, and the lines that prove it.
Paste a UART capture, an RTOS crash dump, or dmesg. Firmlog names the failure, quotes the evidence, and tells you what to check next.
What it finds
- CPU faults and panics
- HardFault, BusFault, UsageFault, Guru Meditation, RISC-V exceptions, kernel Oops. Decodes CFSR, HFSR and BFAR bits and names the panic cause.
- Guru Meditation Error: Core 1 panic'ed (LoadProhibited)
- Assertions and aborts
- assert(), abort(), ESP_ERROR_CHECK, Zephyr and NuttX asserts, Rust panics.
- assert failed: xQueueGenericSend queue.c:936 (pxQueue)
- Watchdogs
- Task, interrupt and hardware watchdogs. Names the task that starved and what each CPU was running.
- E (11034) task_wdt: Task watchdog got triggered
- Resets and boot loops
- Brownout, reset reasons, and boot banners that keep repeating.
- rst:0xf (BROWNOUT_RST),boot:0x13 (SPI_FAST_FLASH_BOOT)
- Stack and heap
- Stack overflow hooks and canaries, failed allocations, heap corruption.
- CORRUPT HEAP: Bad tail at 0x3ffde6fd. Expected 0xbaad5678
- I2C, SPI, UART, DMA
- NACKs, stuck buses, framing and overrun errors. Compares devices on the same bus to tell one bad part from a bad bus.
- I2C1: xfer addr=0x68 reg=0x3B len=14 ERR=NACK(addr)
- Storage
- SD and eMMC timeouts, filesystem errors, journal aborts, read-only remounts.
- mmc0: Timeout waiting for hardware interrupt - cmd25
- Early warnings
- Limits crossed, late watchdog kicks, dropped messages, clock fallbacks, corrected ECC errors — problems that have not crashed anything yet.
- WDT: kick interval 1200ms (nominal 500ms), margin low
- Everything else logged as an error
- Error-level lines that match no rule are still listed, so nothing is silently dropped.
- <err> display_st7735r: Could not exit sleep
Why you can trust a result
Quoted
Every finding lists its line numbers and highlights the exact text that matched. If it is not in your log, it is not in the result.
Decoded
Fault registers, panic causes and reset reasons are decoded from the values in the dump. They are read, not guessed.
Guesses are labelled
Likely causes sit in their own list, marked as unproven. Two events close together are reported as timing, never as cause and effect.
The rules are regression-tested on log excerpts from more than 50 public bug reports, each with a healthy look-alike that must stay silent.
Reads logs from
- ESP-IDF
- Arduino-ESP32
- ESP8266
- Zephyr
- FreeRTOS
- STM32 HAL
- NuttX
- Mbed OS
- RIOT
- Embedded Rust
- Linux dmesg
- Klipper
- Marlin
What happens to your log
Nothing is stored
Your log is parsed in memory for one request and discarded. There is no account and no database.
No AI model
Detection is a fixed set of rules. The same log gives the same result every time.
Secrets are stripped from reports
Tokens, keys and passwords are redacted before a report is copied or downloaded.
Logs up to 2 MB. Plain text, .log or .txt.
