--- title: "Netlist Import" description: "Extract and import netlist data from KiCad schematics" --- The netlist tools let you extract connectivity information from KiCad schematics, analyze component connections, and import netlists from external formats into mckicad's batch JSON for schematic generation. ## Quick reference | Task | Example prompt | |------|---------------| | Extract netlist | `Extract the netlist from my schematic at /path/to/project.kicad_sch` | | Analyze project netlist | `Analyze the netlist in my KiCad project at /path/to/project.kicad_pro` | | Check component connections | `Show me the connections for R5 in my schematic` | | Import external netlist | `Import the netlist at /path/to/design.net into batch JSON` | | Export netlist | `Export a netlist from my schematic` | ## Extracting netlists To extract a netlist from a schematic: ``` Extract the netlist from my schematic at /path/to/project.kicad_sch ``` This parses the schematic, extracts all components and their properties, identifies connections between components, analyzes power and signal nets, and returns comprehensive netlist information. For project-based extraction: ``` Extract the netlist for my KiCad project at /path/to/project.kicad_pro ``` This finds the schematic associated with the project and extracts its netlist. ## Understanding netlist data ### Components | Field | Description | Example | |-------|-------------|---------| | Reference | Component reference designator | R1, C2, U3 | | Type (lib_id) | Component type from library | Device:R, Device:C | | Value | Component value | 10k, 100n, ATmega328P | | Footprint | PCB footprint | Resistor_SMD:R_0805 | | Pins | Pin numbers and names | 1 (VCC), 2 (GND) | ### Nets | Field | Description | Example | |-------|-------------|---------| | Name | Net name | VCC, GND, NET1 | | Pins | Connected pins | R1.1, C1.1, U1.5 | | Type | Power or signal | Power, Signal | ## Analyzing component connections To find all connections for a specific component: ``` Show me the connections for U1 in my schematic at /path/to/project.kicad_sch ``` Returns detailed component information, all pins and their connections, connected components on each pin, and net names. ## Importing external netlists The `import_netlist` tool converts external netlist formats into mckicad batch JSON: ``` Import the netlist at /path/to/design.net into batch JSON ``` Supported formats: - **KiCad S-expression** (`kicadsexpr`) -- the native KiCad netlist format - **OrcadPCB2** -- OrCAD PCB Editor netlist format - **Cadence Allegro** -- Cadence Allegro netlist format - **auto** -- auto-detect format from file contents The output is a batch JSON file compatible with [apply_batch](/reference/batch/), ready to generate a schematic from the imported netlist. ## Exporting netlists To export a netlist from a schematic using kicad-cli: ``` Export a netlist from my schematic at /path/to/project.kicad_sch ``` The `export_netlist` tool runs `kicad-cli sch export netlist` and supports multiple output formats. ## Integration with other tools ### BOM comparison Combine netlist extraction with BOM analysis: ``` Compare the netlist and BOM for my project at /path/to/project.kicad_pro ``` Helps identify components present in the schematic but missing from the BOM, or vice versa. ### Design validation Use netlist extraction for validation: ``` Check for floating inputs in my schematic at /path/to/project.kicad_sch ``` ``` Verify power connections for all ICs in my project ``` ### Power analysis Analyze power distribution: ``` Show me all power nets in my schematic ``` ``` List all components connected to the VCC net in my project ``` ## Tips for better netlist analysis ### Schematic organization 1. **Use descriptive net names** instead of auto-generated ones 2. **Add power flags** to explicitly mark power inputs 3. **Organize hierarchical sheets** by function 4. **Use global labels** consistently for important signals ### Working with complex designs 1. Focus on specific sections using hierarchical labels 2. Analyze one component type at a time 3. Examine critical nets individually 4. Use reference designators systematically ## Troubleshooting ### Netlist extraction fails 1. Check that the file exists and has the `.kicad_sch` extension 2. Verify it is a valid KiCad 6+ format schematic 3. Check file permissions 4. Look for syntax errors from recent manual edits 5. Try a simpler schematic to isolate the issue ### Missing connections 1. **Check for disconnected wires** -- wires that appear connected in KiCad might not actually be 2. **Verify junction points** -- make sure junction dots are present where needed 3. **Check hierarchical connections** -- ensure labels match across sheets 4. **Verify net labels** -- labels must be correctly placed to establish connections