docs: Update README with dynamic symbol loading breakthrough

Updated README.md to highlight the major dynamic loading feature:

 Updated 'What's New' section
- Added Phase 2: Dynamic Symbol Loading breakthrough
- Documented access to all ~10,000 KiCad symbols
- Added technical architecture explanation
- Example usage with STM32 microcontroller

 Updated Schematic Design tools section
- Changed from 'template-based' to 'dynamic loading'
- Explained automatic library search and injection
- Noted fallback to 13 static templates

 Updated Project Status
- Added 'DYNAMIC SYMBOL LOADING' as key feature
- Highlighted access to full KiCad symbol libraries
- Noted automatic dynamic injection capability

This brings the README in line with the breakthrough achieved in
commits 1d9e92a and 148f3ef.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
KiCAD MCP Bot
2026-01-10 10:20:44 -05:00
parent 148f3ef401
commit 60d19e5235

View File

@@ -19,25 +19,50 @@ The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standa
## What's New in v2.1.0 ## What's New in v2.1.0
### Critical Schematic Workflow Fix (Issue #26 Resolved) ### 🚀 Critical Schematic Workflow Fix + Dynamic Symbol Loading (Issue #26)
The schematic workflow was completely broken in previous versions - **this is now fixed!** The schematic workflow was completely broken in previous versions - **this is now fixed AND dramatically enhanced!**
**What was broken:** **What was broken:**
- `create_project` only created PCB files, no schematics - `create_project` only created PCB files, no schematics
- `add_schematic_component` called non-existent API methods - `add_schematic_component` called non-existent API methods
- Schematics couldn't be created or edited at all - Schematics couldn't be created or edited at all
- Only 13 component types available (severe limitation)
**How we fixed it:** **How we fixed it:**
- Implemented template-based symbol cloning approach (kicad-skip limitation workaround) 1. **Phase 1:** Template-based symbol cloning approach
- `create_project` now creates both .kicad_pcb and .kicad_sch files - `create_project` now creates both .kicad_pcb and .kicad_sch files
- Added pre-configured template schematics with cloneable R, C, LED symbols - Added pre-configured template schematics with 13 common component types
- Rewrote component placement to use proper `clone()` API - Rewrote component placement to use proper `clone()` API
- Full end-to-end schematic workflow now functional
**Technical Details:** 2. **Phase 2:** Dynamic Symbol Loading (BREAKTHROUGH!) 🎉
The kicad-skip library cannot create symbols from scratch - it can only clone existing symbols from loaded schematics. We solved this by creating template schematic files (`python/templates/`) with pre-configured symbols that can be cloned and modified. - **Access to ALL ~10,000 KiCad symbols** from standard libraries!
- Automatic detection and dynamic loading from `.kicad_sym` library files
- Zero configuration required - just specify library and symbol name
- Seamless integration with existing MCP tools
- Full S-expression parsing and injection system
See [Schematic Workflow Fix Documentation](docs/SCHEMATIC_WORKFLOW_FIX.md) for technical details. **Technical Architecture:**
The kicad-skip library cannot create symbols from scratch - it can only clone existing symbols. We implemented a two-phase solution:
1. **Static Templates:** 13 pre-configured symbols (R, C, L, LED, etc.) for instant use
2. **Dynamic Loading:** On-demand injection of ANY symbol from KiCad libraries:
- Parse `.kicad_sym` library files using S-expression parser
- Inject symbol definition into schematic's `lib_symbols` section
- Create offscreen template instance
- Reload schematic so kicad-skip sees new template
- Clone template to create actual component
**Example - Now Works with ANY Symbol:**
```json
{
"type": "STM32F103C8Tx",
"library": "MCU_ST_STM32F1",
"reference": "U1",
"footprint": "Package_QFP:LQFP-48_7x7mm_P0.5mm"
}
```
See [Dynamic Loading Status](docs/DYNAMIC_LOADING_STATUS.md) for technical details and test results.
### IPC Backend (Experimental) ### IPC Backend (Experimental)
We are currently implementing and testing the KiCAD 9.0 IPC API for real-time UI synchronization: We are currently implementing and testing the KiCAD 9.0 IPC API for real-time UI synchronization:
@@ -180,15 +205,21 @@ The server provides 64 tools organized into functional categories. With the new
- `export_bom` - Produce bill of materials - `export_bom` - Produce bill of materials
### Schematic Design (6 tools) ### Schematic Design (6 tools)
**Now fully functional!** (Fixed in v2.1.0 - see Issue #26) **Now fully functional with DYNAMIC SYMBOL LOADING!** (Fixed in v2.1.0 - see Issue #26)
- `create_schematic` - Initialize new schematic from template - `create_schematic` - Initialize new schematic from template
- `load_schematic` - Open existing schematic - `load_schematic` - Open existing schematic
- `add_schematic_component` - Place symbols using template-based cloning - `add_schematic_component` - Place symbols with automatic dynamic loading from KiCad libraries
- `add_schematic_wire` - Connect component pins - `add_schematic_wire` - Connect component pins
- `list_schematic_libraries` - List symbol libraries - `list_schematic_libraries` - List symbol libraries
- `export_schematic_pdf` - Export schematic PDF - `export_schematic_pdf` - Export schematic PDF
**Note:** Uses template-based approach due to kicad-skip library limitations. Templates include R, C, LED symbols that are cloned and modified for each placement. **Major Enhancement:** Now supports **ALL ~10,000 KiCad symbols** through dynamic loading! Specify any `library` and `type` (e.g., `"library": "MCU_ST_STM32F1", "type": "STM32F103C8Tx"`) and the system automatically:
- Searches KiCad symbol libraries
- Injects symbol definition into your schematic
- Creates cloneable template instance
- Places component seamlessly
Fallback to 13 static templates (R, C, L, LED, etc.) when dynamic loading unavailable.
### UI Management (2 tools) ### UI Management (2 tools)
- `check_kicad_ui` - Check if KiCAD is running - `check_kicad_ui` - Check if KiCAD is running
@@ -613,7 +644,9 @@ npm run format
- Design rule checking - Design rule checking
- Export to Gerber, PDF, SVG, 3D - Export to Gerber, PDF, SVG, 3D
- **Schematic creation and editing (Issue #26 RESOLVED - fully functional!)** - **Schematic creation and editing (Issue #26 RESOLVED - fully functional!)**
- Template-based schematic workflow with symbol cloning - **DYNAMIC SYMBOL LOADING - Access to ALL ~10,000 KiCad symbols! 🚀**
- Template-based schematic workflow with automatic dynamic injection
- Symbol cloning from static templates (13 types) and dynamic libraries
- UI auto-launch - UI auto-launch
- Full MCP protocol compliance - Full MCP protocol compliance
- JLCPCB parts integration (local libraries + JLCSearch API) - JLCPCB parts integration (local libraries + JLCSearch API)