Skip to main content
logcat.ai raises $2.55M to build the future of device systems engineeringRead

Embedded Linux · BSP · Silicon

The OS-engineering substrate built for embedded Linux.

The horizontal AI gap is widest in embedded Linux. No Android Studio, no Crashlytics, no app-layer observability. Custom BSPs, bespoke kernels, vendor-specific device trees. logcat.ai is the first AI substrate built for this layer.

Why embedded debugging hurts.

Every BSP is bespoke. Every device tree is different. Every bringup is a new fight.

Bringup is its own discipline

Driver probe ordering, device tree overlays, board revisions: the failure modes that block a bring-up engineer don't appear in app-layer tools at all.

BSP fragmentation

Vendor-specific kernels, downstream patches, recipe-level integrations: every BSP has its own drift from upstream. Generalist AI tools assume mainline; embedded reality doesn't.

Build and runtime tangled together

A boot failure can root-cause back to a Yocto recipe, a meta-layer dependency, or a kernel config. Investigators need the runtime signature and the build provenance side by side.

Multi-arch divergence

ARM, x86, MIPS, RISC-V: the same image, the same recipe, different behavior per machine. Without a substrate that reasons across architectures, every fix is a one-off.

10 hours of grep, or 10 minutes of investigation.

What bringup debugging looks like today vs. what it looks like with logcat.ai.

Before: manual reconstruction
§ 01

Grep dmesg, syslog, journalctl across multiple boots

§ 02

Eyeball device tree source and overlay output

§ 03

Diff working BSP image against broken one byte by byte

§ 04

Email the SoC vendor and wait three days

§ 05

Hold tribal knowledge in two engineers' heads

Σ

10 hours per investigation. Knowledge stays in those two engineers.

After: autonomous investigation
§ 01

Upload dmesg, journalctl, U-Boot output, and the device tree blob

§ 02

Ask: why does this board fail to come up cleanly?

§ 03

Get cited root cause across BSP layers in minutes

Σ

Minutes per investigation. Knowledge captured in the platform, not in two heads.

What the engine brings to embedded.

The same primitives that power Diagnose elsewhere, applied to BSP-specific signals.

Deep Research on a single boot

Multi-step investigation over one bringup attempt: kernel oops, journalctl boot logs, U-Boot output. Hypothesis, evidence, cross-check, root cause.

Delta across BSP variants

Compare boot traces across kernel versions, board revisions, or meta-layer integrations. Isolate which downstream patch, or which dropped one, changed behavior.

See Delta

Format-agnostic profiling

The engine generates domain context dynamically for any plain-text log: custom drivers, vendor diagnostic streams, in-house tooling. No per-format parser required.

Citation discipline

Every claim cites the log line, the dmesg session, the device tree node it came from. Failed hypotheses surface as failed, so reviewers know what was ruled out.

Delta tells you what changed across the BSP.

Two boot traces across kernel revisions, BSP rebases, or vendor patches, aligned, diffed, and root-caused.

Delta Correlation Engine

Multi-file cross-layer analysis

Uploading
Device Log (Firmware A)
10:15:01 kernel: usb 1-1: new device
10:15:02 systemd: Started app.service
10:15:03 kernel: BUG: sched while atomic
10:15:04 kernel: watchdog: timeout expired
Device Log (Firmware B)
10:15:01 kernel: usb 1-1: new device
10:15:02 systemd: Started app.service
10:15:03 app: request processed 42ms
10:15:04 kernel: all systems nominal
Kernel Log (OTA v3.2)
10:14:58 kernel: IRQ handler timeout
10:15:01 kernel: thermal zone0: 85°C
10:15:03 kernel: OOM killer invoked
10:15:04 kernel: process 1842 killed

Upload multiple log files for comparison

Where embedded teams use it.

Across bringup, integration, and validation work.

Yocto integration engineers

Recipe-level regressions after a meta-layer bump, kernel version change, or BSP rebase. Diagnose investigates the runtime signature; Delta compares before/after images.

BSP bringup teams

Driver probe failures, device tree resolution races, board-revision-specific quirks. Investigations cross U-Boot, kernel init, and driver attach in one pass.

IoT firmware engineers

OpenWrt and Buildroot firmware behaving differently across field units. Compare crash signatures across units to isolate hardware vs. firmware causes.

Silicon validation teams

First boots on new silicon revisions. The engine treats unknown signals as plain text and generates domain context dynamically. No SDK integration required.

Built for hardware bringup.

The failure modes that block a board bring-up engineer, named explicitly.

Driver probe-ordering failures

EPROBE_DEFER cascades, regulator-before-consumer races, i2c-mux phandle resolution: the engine reasons about declared vs. implicit ordering across the device graph.

Device tree validation

DTC compile errors, overlay conflicts, phandle resolution failures, and the runtime signatures of malformed nodes.

Board-revision quirks

When the same BSP boots cleanly on rev B and hangs on rev C, the engine compares dmesg from both and isolates the divergent driver attach sequence.

Cross-architecture divergence

The same recipe behaving differently on ARMv7 vs ARM64 vs RISC-V. Format-agnostic profiling means the same investigation surface applies.

U-Boot and bootloader debugging

Reset-vector failures, DDR initialization issues, signed-image verification mismatches, surfaced from U-Boot console output before the kernel even runs.

Multi-board test analysis

Boot traces from a fleet of test boards: same recipe, different units. Delta isolates which boards diverge and what subsystem they diverge in.

BSPs the engine sees signals from.

Works on dmesg, journalctl, and U-Boot output from these silicon-vendor BSPs. Coverage is signal-level, not specialist-level. The engine reasons about what the logs say, not about vendor-proprietary deltas.

NXP Linux BSPs (i.MX family)
Renesas RZ/G and RZ/V
TI Sitara
Qualcomm IoT
Rockchip
Allwinner
Plus any BSP that emits standard kernel and systemd signals

Signals supported.

Drop any of these and Diagnose investigates them end to end.

dmesg

Kernel ring buffer across ARM, x86, MIPS, RISC-V. Oops, panics, driver attach traces, EPROBE_DEFER cascades.

journalctl

Systemd journal binary streams or text exports. Boot phases, unit failures, service-dependency resolution issues.

U-Boot · bootloader logs

Boot console captures from U-Boot, GRUB, or vendor bootloaders. Reset vectors, DDR init, image verification, kernel handoff.

Yocto / OpenEmbedded artifacts

do_compile logs, bitbake task output, image manifests. Surfaces the runtime signatures of build issues on already-booted images.

Where Diagnose stops, today.

Build-time intelligence lands with Remediate, now in research preview. Today, Diagnose covers everything from the kernel up, on any image you've already booted.

What Diagnose investigates today
  • Runtime signals from any image built with Yocto, Buildroot, OpenWrt, or custom toolchains
  • Boot-time failures: U-Boot, kernel init, systemd
  • Build artifacts that contain runtime signatures (oops captures, dmesg snapshots)
What's on the roadmap, not today
  • The bitbake build process itself (build-time failures during compilation)
  • Recipe-level dependency resolution before image generation
  • Layer compatibility analysis as a static check

These land in Remediate (now in research preview). Today, Diagnose owns everything from the kernel up.

Common questions

Embedded-specific questions.

What embedded engineers ask before they upload their first log.

Yes for plain-text streams. The system generates domain context dynamically for any text log: vendor diagnostic streams, in-house tooling, custom drivers. For structured binaries (Android bugreports, CAN bus traces) there's a native parser. New binary formats are added on request.

Signal coverage works on dmesg, journalctl, and U-Boot output from NXP i.MX, Renesas RZ/G, TI Sitara, Qualcomm IoT, Rockchip, and Allwinner BSPs, plus any BSP that emits standard kernel and systemd signals. Coverage is signal-level; the engine reasons about what the logs say, not about vendor-proprietary deltas.

Not today. Diagnose covers runtime: boot failures on a built image, kernel oops from a misconfigured driver, dmesg from a broken device tree. The bitbake build process itself and static recipe-level analysis land with Remediate, now in research preview.

Both. Binary journal streams are parsed natively. Text exports (journalctl --no-pager output, copy-paste from a terminal) are read by the format-agnostic profiling layer. Boot phases, unit failures, and service-dependency issues all surface the same way.

The investigation engine reasons about what the logs say, not about the target architecture. ARMv7, ARM64, MIPS, and RISC-V dmesg all go through the same path. Delta surfaces where the same recipe diverges per architecture.

Customer logs never leave the customer environment. LLM inference runs on a customer-controlled frontier-model endpoint inside the customer VPC. See the security architecture page for the boundary diagram.

Bringup integration

Bring us a real boot trace.

Upload a dmesg, a journalctl session, a U-Boot capture, or a Yocto-produced image's runtime artifacts. We'll show you Diagnose on it: your actual board, your actual BSP.