
Self-healing robotics, end to end.
The diagnostic layer for robots and PLCs. Cut downtime from hours to minutes: see which node broke, and ship the fix that worked before.
01 /How it works
From fault to fix, with you in control.
Four stages. A human signs off on every change, until a fix has proven itself enough times to run on its own.
Diagnose
A fault anywhere in the fleet lands in one SOVD view, with a freeze-frame of every value at that moment. A deterministic matcher ranks causes against every incident your fleet has seen, about 40% faster to root cause.
Patch
Your call. The operator picks from fixes proven on your fleet. One click to approve, and the signed OTA update ships.
Recover
Updates are signature-verified and health-gated. If the robot does not come back healthy, the diagnostic gateway rolls it back on its own.
Continue
The verdict is remembered. The next repeat fault is answered from memory in 3 ms, and once a fix has proven itself enough times, you let it run without asking.
The real product
One box, three vendors, one fault cascade
Three vendors fail one after another - Allen-Bradley, Beckhoff, Siemens - and one box on the DIN rail sees the whole cascade. The AI traces the root cause and a technician verdict teaches it. The repeat fault is answered from memory in 3 ms. Every screen is the real product.
Conference
ROSCon 2026
Toronto · September 22-24
Our talk
Production diagnostics for ROS 2
Fault lifecycle, freeze-frame ring buffer, SOVD REST surface
Talk detailsApache 2.0
An open core you can inspect and trust
ISO 17978-3
Built on the international SOVD standard
On the device
On-prem and air-gapped - no cloud required
Any stack
ROS 2 today, PLCs and ECUs through Pro bridges
02 /Approach
Observability says it broke.
Diagnostics gets it fixed.
Observability was built for cloud software, not mass production. You cannot stream terabytes a day from every robot, and a dashboard fixes nothing. Diagnostics captures structured faults at the moment of failure, on top of whatever you already run.
See the math on a real robot1.5 TB
Continuous recording
per robot per day - the fault buried somewhere in those 24 hours
414 MB
Fault-scoped capture
per fault record - full context from the moment of failure
~360x
Less data per day
measured on a ROS 2 robot, ten faults a day
Now watch it happen
ROS 2 fault forensics with ros2_medkit
A real fault on a Yahboomcar M3 Pro: captured, traced and fixed on camera.
03 /Products
One diagnostic layer for robots and PLCs
Different vendors, one plant, one fault tree - from the open-source Medkit core to guided triage and a plant-floor appliance.
04 /Where this is going
Nature's resilience, engineered into machines.
The goal: fleets that detect, diagnose, and repair themselves. Once a fix has proven itself enough times, you let it run without asking.
A cut closes. A bone knits. A fleet that has seen a fault once should not need a person to fix it twice. selfpatch turns every incident into memory, and every memory into a faster recovery.

Continuous recovery
Diagnose · Patch · Recover · Continue
Who we are
Built by diagnostics engineers
selfpatch is a product company founded by engineers from automotive diagnostics and software-defined vehicles. We build one diagnostic layer for robots and PLCs from different vendors in the same plant.
About the companyIndustries
Wherever robots do the work.
The same fault tree, whatever the floor looks like.
All industriesFrequently asked questions
SOVD, ROS 2 diagnostics, OTA, and how selfpatch fits.
SOVD (Service-Oriented Vehicle Diagnostics, ISO 17978-3) is a modern REST/HTTP diagnostic standard. Instead of low-level legacy protocols, it exposes faults, live data, operations, and configuration as one uniform web API that any tool, dashboard, or AI agent can call.
ros2_medkit is the open-source (Apache 2.0) diagnostic gateway from selfpatch for ROS 2. It discovers your node graph and exposes every entity behind one SOVD REST API, with a web UI and an MCP adapter, and ships in the official ROS 2 distribution for Jazzy and Humble.
It runs as a gateway in front of your ROS 2 graph, pinpoints the failing node, captures a freeze-frame of the state around the fault, and ranks likely root causes against past incidents - no SSH sessions or log archaeology.
Yes. The open core bridges PLCs over OPC-UA into the same API, and Medkit Pro adds UDS/DoIP ECUs and custom protocol bridges, so robots, PLCs, and vehicles read through one diagnostic interface.
Both - that is the point. Brownfield plants run robots and PLCs from different vendors side by side, with separate teams and separate tools. selfpatch is one diagnostic layer across both: ROS 2 robots and PLCs read through the same SOVD API, land in one fault tree, and share one incident history.
Updates are cryptographically signed, gated on live device health from the diagnostic layer, staged across the fleet, and rolled back automatically if the health gate fails - so a bad update cannot take a shift of robots down.
The core, ros2_medkit, is open source under Apache 2.0 and free to use. Medkit Pro and the Diagnostics Box are commercial layers that add more protocols, secure OTA, fleet view, and guided triage on top of the same core.
Only if you choose the cloud deployment. On-prem or air-gapped, diagnostic data, faults, and the knowledge base stay on your infrastructure, with role-based access control and no external model calls.
Diagnose · Patch · Recover · Continue
See selfpatch on your fleet
Tell us your stack - we'll show which of your recurring faults it could already resolve.