Dev Patel
Oct 2026 → Present

Hands

An AI hardware engineer that uses a non-expert human as its hands — the model proposes a circuit, deterministic code decides whether it is safe, and a person wires it one jumper at a time.

The wiring guide on step 20 of 26: one jumper, exact holes, and the breadboard with this step drawn in yellow.
Type
Artifact
Where
Personal
When
Oct 2026 → Present
Duration
1 mo
Status
Simulation-verified
Source
Private · available on request
The problem

The problem

Anthropic's Project Fetch showed non-experts programming a robot dog faster with Claude — controlling hardware that already existed. Its write-up names the harder question directly: designing, building and improving new hardware.

The obvious experiment — a model designs a board, a fab makes it, instruments test it — costs money and days per iteration, and a bad board is scrap. I have a CS degree and no electronics background, so there was also no expert anywhere in that loop to assemble or judge the result. That makes me the target user, not the tester.

What I built

What I built

The fab became a breadboard kit of roughly $75 around a Raspberry Pi Pico W, and the robot became a person. A model turns a one-sentence spec into a netlist using only the parts on hand; twenty deterministic electrical rules built on datasheet numbers check it, and a failing design goes back to the model with the findings. It never reaches the person.

The person gets one physical action per step, with exact hole coordinates, in the terminal or on a phone-friendly page. Power is gated: a photo check that a vision model only describes and code diffs against the plan, safe-idle firmware on the bare board, and a current reading on the 3V3 rail before anything else runs. Firmware the model writes is parsed with Python's ast and refused if it drives a pin the rules never approved.

I had no hardware to test against, so I built the bench in software: a DC nodal solver, a breadboard evaluated from the wires as actually placed, the same MicroPython firmware running against shims on a virtual clock, and a simulated person who makes injected mistakes. Then I attacked my own gates and found more than twenty ways around them — most because a check lived in the caller instead of in the function that did the dangerous thing.

Screens

Screens

At phone width, which is how it is meant to sit beside the breadboard. The red panel stays up until every step is done and the build has been checked.
At phone width, which is how it is meant to sit beside the breadboard. The red panel stays up until every step is done and the build has been checked.
What I considered

What I considered

Let the model judge its own designs for safety

Rejected. The thing being checked is model output, and a confident wrong design can talk a model checker round. A safety check must give the same input the same verdict every time. The model still gets every finding back as feedback.

A fully closed loop: the model designs a board, a fab builds it

Rejected. The most direct test of the question and the most striking demo — at real money and several days per iteration, with failures that end in scrap and no expert to read them.

A breadboard, a person as the hands, and code that decides

Chosen. A jumper moves in seconds and a wrong part is not scrap, the person's mistakes become the thing the agent has to recover from, and every gate is a function with a test. The cost is a small, closed world: eight part kinds, USB power under 500 mA, and nothing else allowed.

Results

Results

178tests passing
7 / 7injected faults caught
20deterministic safety rules
  • The whole loop — design, rule check, guided build, photo check, power-on, firmware, instrumented test and debug — runs end to end on a simulated bench, with 178 tests passing at 89% branch coverage.
  • All 7 injectable wiring mistakes are caught and fixed in tests, including the two a camera cannot see, which the instruments catch after power-on.
  • A hardening pass found more than 20 bypasses of the safety gates; every one is fixed and has a regression test.
  • The real-hardware path — port discovery, flashing, an on-board current monitor, the logic analyzer — is built and tested against fakes, and has not yet run on a physical board.
Architecture

Architecture

One-line specscreened beforeany model callModelproposes a netlistand firmwareGates20 rules · ast lintfindings → modelPersonone jumper per stepUSB unpluggedPhoto checkbefore powerInstrumentsINA219 · logicanalyzer · serial
The model proposes, code decides, the person acts, instruments verify. Every path into the physical world crosses a gate.
In hindsight

In hindsight

Everything above is proven on a bench I wrote. It has not touched a real Pico, no real model has run the loop end to end — the demos use scripted replies — and the datasheet limits the rules depend on were written from memory and still need checking against the current PDFs. The lesson I would carry into the hardware bring-up is the one the hardening pass taught: put the invariant inside the function that does the dangerous thing from day one, not in the orchestrator that is supposed to call it first.

Stack

Stack

PythonMicroPythonRaspberry Pi Pico WMCPpytestmypyDockerGitHub Actions