What Benchmate checks before it hands you a circuit
· Ohmeris team
Benchmate is the AI assistant in Ohmeris. You type a request, such as "two-stage RC low-pass at 1 kHz" or "NAND and NOR from a 74HC00 and 74HC02 with A and B on a header", and it drafts a schematic. Before that schematic reaches your canvas, the app runs a fixed list of checks on it. This post lists those checks and what happens when one fails.
The short version: the AI writes the draft and ordinary code checks it. The model's opinion of its own work is not evidence.
Step 1: is it a circuit at all?
The answer has to parse as a circuit in the same format a hand-drawn schematic uses, with a type, designator and pins for every part. Every wire has to start and end on a pin that exists. A wire that points at a pin the part does not have (for example "VCC" on a resistor) is removed, and the removal is reported in the chat as a dropped wire. It is not hidden.
Fixed-pinout parts such as the NE555 and 78xx regulators get their datasheet pin numbers; a 555 with VCC on the wrong number is corrected to pin 8 and keeps its wires.
Step 2: electrical rules
Next comes the electrical rules check (ERC) you can run yourself from the ERC button: unconnected inputs, conflicting drivers and similar problems. Then a few structural checks:
- Supply shorts. A power rail wired straight to ground, or two different rails tied together.
- Bypassed parts. A two-terminal part with both ends on the same net, so it does nothing.
- Passive values. Resistors, capacitors and inductors need a positive value that parses as a number with a unit. "R1 = R1" or "10" on an inductor that is really a wire does not pass.
- Device-specific checks for a set of known parts. Examples include open-collector outputs that need a pull-up, LED and transistor drive, and polarized capacitor orientation where the nominal bias is clear.
Step 3: can it be drawn?
The draft is laid out and routed by the editor's own orthogonal router, and the rendered result is checked. Every pin needs a real terminal on the symbol. Every wire has to end on that terminal. Wires stay horizontal and vertical and keep clear of symbol bodies and labels. Two unrelated nets must not share the same stretch of wire, because that reads as a connection when it is not one.
A layout-only problem is never sent back to the model to fix. The app tries other placements that keep exactly the same connections.
Step 4: a few real calculations, for circuits it recognizes
For a small set of circuit shapes, the app does more than structural checks:
- Two-stage RC ladders. It computes the ideal response from the actual R and C values in the drawing. If you asked for a 1 kHz cutoff and the values give 1.59 kHz, that mismatch becomes a finding.
- Divider-biased NPN stages. It works out the bias point from the divider and emitter resistor values.
- Simple logic. It evaluates all four input rows for outputs labelled with a Boolean expression such as
AND(A,B). The gates must be basic gates or full 74HC00, 02, 04, 08, 32 or 86 packages, with A and B on an input header. The check follows the real package pin map, so a wire to pin 3 instead of pin 6 shows up as a wrong truth table.
These use ideal models. A circuit that does not match one of these shapes is not checked this way at all, and the summary says so.
Step 5: bounded repair
If a check finds a real problem, the specific findings go back to the model together with your original request, and it gets another try. There are at most two repairs, so three attempts in total. Every attempt has to pass the same checks from the start.
If a repair makes things worse, the better earlier attempt is kept. If an answer was cut off mid-circuit, the next attempt gets a larger output allowance and must return one complete replacement; pieces are never glued together. If nothing usable comes back, you get an error and your canvas is left alone. Benchmate never substitutes an unrelated canned circuit.
Some findings do not trigger a repair: grid notices, an intentionally unused output, or a connector pin that could reasonably stay open. They stay visible for you to judge; the model is not asked to rewire your circuit to silence them.
All of this counts as one AI design on your plan, however many repairs it took. The whole request also runs under a fixed time limit.
Step 6: the summary you read
The chat message shows which checks passed or need review, the attempts used, and open findings. When Benchmate edits a circuit you already have, it adds a change list:
- Changed: parts added or removed, value or package changes, and pins moved from one net to another.
- Kept: unchanged parts, the number of existing connections kept, and locked parts left untouched. If a locked part was changed anyway, you get a warning at the top.
- Not checked: for most circuits this includes "Circuit function was not simulated or verified."
Undo puts back the circuit you had before the edit.
That "Not checked" line is the subject of the next post.
What we did not test
- These checks are software checks on the drawing. None of them were confirmed against a physical board.
- The analytical checks cover only the shapes listed above, with ideal models. We have not measured how often a structurally clean draft actually does what was asked. Internal runs show it does not always.
- We have not run a user study on whether people read or understand the summary and change list.