Hacker News
Show HN: Spice simulation → oscilloscope → verification with Claude Code
49 points by _fizz_buzz_
ago
|
11 comments
I built MCP servers for my oscilloscope and SPICE simulator so Claude Code can close the loop between simulation and real hardware.
iterateoften
|next
[-]
Beware. I had Claude code with opus building boards and using spice simulations. It completely hallucinated the capabilities of the board and made some pretty crazy claims like I had just stumbled onto the secret hardware billion dollar project that every home needed.
None of the boards worked and I had to just do the project in codex. Opus seemed too busy congratulating itself to realize it produced gibberish.
_fizz_buzz_
|root
|parent
[-]
I haven't tried it with codex yet. But my approach is currently a little bit different. I draw the circuit myself, which I am usually faster at than describing the circuit in plain english. And then I give claude the spice netlist as my prompt. The biggest help for me is that I (and Claude) can very quickly verify that my spice model and my hardware are doing the same thing. And for embedded programming, Claude automatically gets feedback from the scope and can correct itself. I do want to try out other models. But it is true, Claude does like to congratulate itself ;)
andrewklofas
|next
|previous
[-]
Hit this exact wall six months back building Claude Code stuff for KiCad review[1]. First pass let Claude read .kicad_sch directly via grep/read. It happily invented pin numbers that didn't exist. Rewrote it with Python analyzers that spit out JSON, now Claude just reads the JSON, problem mostly went away.
Curious how spicelib-mcp handles models that aren't in the bundled library. Do you pass the .lib path as a tool arg, or does the server own a registry?
_fizz_buzz_
|root
|parent
[-]
Spicelib really just makes calls to the selected spice engine (in my case ngspice). In this setup spicelib‘s main job is to parse the raw spice data and have a unified interface regardless which spice engine is selected. But to answer the question: the path to the spice model must currently be set explicitly.
Scene_Cast2
|next
|previous
[-]
I've found that having LLMs work with mermaid diagrams makes describing and modifying circuits less annoying.
Archit3ch
|next
|previous
[-]
Nice! Doing something similar with a Jumperless so that the model can reconfigure the circuit on the fly.
vomayank
|previous
[-]
Very cool idea closing the loop between simulation and real hardware.
Have you found the MCP-driven workflow reliable enough for repeated testing cycles, or does it still need manual verification at key steps?
_fizz_buzz_
|root
|parent
[-]
Claude can absolutely correct itself and change the source code on the MCU and adapt. However, it also does make mistakes, such as claiming it matched the simulation when it obviously didn't. Or it might make dubious decisions e.g. bit bang a pin instead of using the dedicated uart subsystem. So, I don't let it build completely by itself.