Convert EasyEDA Pro PCB design data into structured YAML for AI-assisted design review and intent analysis.
- Install:
pip install pandas pyyaml tiktoken - Export from EasyEDA Pro:
- BOM (XLSX)
- Pick & Place (XLSX)
- Netlist (.enet)
- Run:
easyeda_parser.py BOM.xlsx PickPlace.xlsx Netlist.enet - Upload
pcb_analysis.yamlto your AI
Traditional PCB tools focus on DRC (Design Rule Check) and DFM (Design for Manufacturing), such as those in EasyEDA Pro DRM or JLCPCB's DFM service. This tool serves a different purpose: circuit intent analysis.
This tool helps answer questions like:
- What is this circuit designed to do?
- Are the components appropriate for the intended function?
- What design assumptions are present?
- What information is missing or unclear?
Instead of uploading bulky schematics or Gerber files to AI, this tool combines three key exports from EasyEDA Pro:
- BOM (What components used)
- Pick and Place (Where components are)
- Netlist (How components connect)
These are merged into a single YAML file optimized for AI processing.
PCB designers and engineers using EasyEDA Pro who want to:
- Experiment with AI-assisted design review
- Verify component suitability for specific functions
- Document or communicate circuit design intent
- Create lightweight, analysis-ready PCB representations
- Supports EasyEDA Pro only
- PCB-level analysis only (no schematic support)
- No electrical simulation or compliance checking
- Intended as a preprocessor for AI analysis
EasyEDA Pro → Export 3 files → easyeda_parser.py → pcb_analysis.yaml → AI analysis
Important: Use EasyEDA Pro (not Standard edition), and export in these exact formats:
-
BOM
- Format: XLSX (not CSV)
- Select all fields under: Statistics, Base Attributes, Key Attributes
-
Pick and Place
- Format: XLSX (not CSV)
-
Netlist
- Format: EasyEDA Professional (.enet)
You should get three files: BOM_XXX.xlsx, PickPlace_XXX.xlsx, Netlist_XXX.enet
Install python libraries:
pip install pandas pyyaml tiktokenOn ubuntu/debian:
sudo apt-get install python3-pandas python3-yaml python3-tiktokeneasyeda_parser.py BOM_XXX.xlsx PickPlace_XXX.xlsx Netlist_XXX.enetOutput: pcb_analysis.yaml
If the AI truncates large files, limit the number of tokens in pcb_analysis.yaml. If the AI context window is 50000 tokens:
easyeda_parser.py --token-limit 50000 BOM_XXX.xlsx PickPlace_XXX.xlsx Netlist_XXX.enetElectrical connectivity is preserved; less critical details may be reduced.
After uploading pcb_analysis.yaml, ask queries. Below are sample queries:
Combines purpose analysis with hidden constraint identification
Based on the components, layout, and connectivity, what was this circuit designed to do?
What environmental, usage, or performance assumptions are evident in the design choices?
System-level analysis for overall understanding
Break this circuit down into functional blocks (power, processing, interfaces, etc.).
Trace the signal and power flow between blocks, noting key transformation points.
From identification to evaluation
Identify the most critical components by function.
For each, explain its role and evaluate if it's appropriately specified for that role
(considering specs, cost, alternatives, and design context).
Power integrity
Map the power delivery network from input to all ICs.
Analyze regulator choices, filter effectiveness, and decoupling capacitor placement/sizing.
Flag any potential issues for different load conditions.
Robustness and reliability analysis
Identify ESD protection, EMI filtering, isolation, and signal conditioning.
Evaluate adequacy for the likely operating environment and interfaces.
Standards-based compliance check
[Example for isolation] Using coordinates from the YAML, measure creepage/clearance distances.
Assess against IEC 60664-1 for 250V working voltage, pollution degree 2.
State all assumptions and measurement methods.
Check examples/ folder:
- CAN bus interface module
- AT32F405 microcontroller board
- Si5351 clock generator
These show real output format and typical file size.
- Tested with both Chinese and English versions of EasyEDA Pro
- DeepSeek (128K context) works well for large projects
This tool was created through AI-assisted development:
- Specification written in
easyeda_parser_spec.yaml - Code generated by DeepSeek
- Output validated on multiple AI
- Tested with real EasyEDA Pro exports
To modify, upload the following files to an AI:
easyeda_parser_spec.yamleasyeda_parser.py- a sample EasyEDA BOM, Pick and Place, and Netlist. Truncate the Netlist to 500 lines to limit size.
Describe required changes. A typical development cycle:
- Upload
easyeda_parser.py,easyeda_parser_spec.yamland sample project. - "Do not generate code yet. First discuss."
- State required behavior.
- "Do any questions remain?"
- "Is additional data needed?"
- "What assumptions are made?"
- "Proceed. Generate code."
- Download and test python script.
- "Give me the parser specification yaml."
- Download and save new
easyeda_parser_spec.yamlfile for next session.
This is an experimental tool.
- Not for safety-critical decisions
- Always verify with traditional EDA tools
- Engineering review is essential
- No liability for design or manufacturing outcomes
Public Domain. No warranty.
- GitHub Issues welcome
- Include example files when reporting issues
- Suggestions for YAML structure improvements appreciated