Show HN: SPICE simulation → oscilloscope → verification with Claude Code
TL;DR Highlight
This is an experimental case demonstrating that connecting a SPICE simulator and a real oscilloscope to Claude Code via an MCP server allows for creating a feedback loop where AI directly analyzes and verifies simulation results and actual waveform data.
Who Should Read
Firmware/hardware engineers who want to utilize LLMs in hardware design or embedded development, or developers curious about cases of connecting MCP servers to actual physical equipment.
Core Mechanics
- Simply 'describing circuit designs in natural language and having Claude create the circuit' works for simple circuits but quickly reaches its limits in complex designs. This is because the AI often fails to understand what is desired accurately.
- However, it was much more effective to adopt a method of connecting Claude Code to immediate feedback means (oscilloscope, SPICE simulator) as tools. Claude shines in an environment where feedback comes immediately.
- The biggest benefit in this workflow was data analysis. Claude automatically handles tedious tasks that were previously done visually, such as time axis normalization and data sorting.
- Two MCP servers were created: `lecroy-mcp` for controlling a LeCroy oscilloscope and `spicelib-mcp` wrapping a SPICE simulator library. This allows Claude to call the actual measurement equipment and simulator as tools.
- Important principle when connecting an oscilloscope: Since Claude cannot see the physical connection status, never let it guess what is connected where. You must manage to prevent old measurement data from remaining in the context.
- Do not paste raw measurement data directly into Claude's context, but save it to a file and have Claude indirectly read and process the file. This is a practical tip to prevent context contamination.
- When working with microcontrollers, explicitly provide the pinout/pinmux map and prepare a Makefile exposing functions like build/flash/ping/erase in advance to prevent Claude from improvising commands.
- This demo is configured with intentionally simple circuits like an RC filter, but the author explains that this approach scales well to much more complex circuits and real embedded projects.
Evidence
- "There were experiences trying to design boards with Claude Opus and SPICE simulations, but the board functionality was completely hallucinated, and it made absurd claims like 'discovering a secret $1 billion project'. Ultimately, none of the boards worked, and it was busy praising itself without realizing it had created gibberish.\n\nSimilarly, there was an opinion that attempting to automate circuit design/simulation/optimization was quite good at reading and explaining files, but could not properly modify designs beyond the simplest circuits. This is because it does not understand the physical concepts behind the circuit, and ultimately the agent was properly utilized only after defining the range of config files (step size, optimization algorithm, min/max, etc.) to be passed to the simulator in a script.\n\nA case of trying to automate KiCad schematic review was also shared, and the same wall was hit. Initially, having Claude directly grep/read the `.kicad_sch` file resulted in creating non-existent pin numbers, but the problem was mostly solved by generating JSON with a Python analyzer and having Claude read only the JSON. There were also technical questions about how `spicelib-mcp` handles models not in the basic library (whether it passes the `.lib` path as a tool arg or whether the server manages the registry directly). \n\nA practical tip was shared in the comments that using Mermaid diagrams makes it much less cumbersome to explain and modify circuits to LLMs.\n\nThere was also an opinion that local LLMs should be used instead of commercial services like Claude. The argument was that local LLMs are the future, even if they are slower, pointing out the frequent policy changes (rug-pull), price increases, and user-unfriendly direction of commercial services."
How to Apply
- If you have a lot of manual work comparing SPICE simulation results with actual oscilloscope measurements, you can connect `lecroy-mcp` and `spicelib-mcp` to Claude Code to automate waveform data analysis and alignment. This can significantly reduce the burden of repetitive preprocessing tasks like time axis normalization.
- To automate embedded firmware development with Claude Code, prepare a Makefile containing build/flash/ping/erase actions in advance and explicitly provide the pinout map to prevent Claude from creating commands on the fly and causing malfunctions.
- Pasting raw data from measurement equipment directly into Claude's context wastes tokens and contaminates the context. Instead, save the data to a file and configure Claude to access it indirectly via the file path to create a more stable analysis workflow.
- When connecting physical equipment to MCP, do not let Claude guess the physical connection status, but explicitly tell it what is connected to which channel at the start of the session. Also, periodically reset the session state to prevent previous measurement data from remaining in the context to obtain reliable results.
Terminology
SPICEAn acronym for Simulation Program with Integrated Circuit Emphasis, a standard tool for simulating the operation of electronic circuits on a computer. It allows you to virtually test circuits before soldering actual components.
MCPAn acronym for Model Context Protocol. A protocol that allows AI models to call external tools or services in a standardized way. Simply put, it's a standard for plugging 'tool plugins' into AI.
oscilloscopeAn oscilloscope. A measuring instrument that visualizes electrical signal waveforms over time. You can see in real time what voltage signals the circuit is actually outputting.
hallucinationA phenomenon in which AI confidently creates information that does not actually exist. In circuit design, it manifests as creating non-existent pin numbers or functions.
pinoutA map organizing what function each pin of a microcontroller or chip performs. Example: Pin 3 is UART TX, Pin 4 is SPI CLK, etc.
FPAAField Programmable Analog Array. An analog version of FPGA (a chip programmable with digital logic), a chip that can reconfigure analog circuits with software.
Related Resources
- Original blog post
- lecroy-mcp: MCP server for LeCroy oscilloscopes (GitHub)
- spicelib-mcp: SPICE simulator wrapper MCP server (GitHub)
- rc-filter-demo-files: Demo setup files (GitHub)
- kicad-happy: KiCad schematic review automation (mentioned in comments)
- SPICE Wikipedia
- FPAA related EE Times podcast (mentioned in comments)