Circuit-Synth

Getting Started:

  • Installation
    • Requirements
    • Installation Methods
      • Using uv (Recommended)
      • Using pip (Alternative)
      • From Source
      • Verification
    • KiCad Setup
  • Quick Start
    • Basic LED Circuit Example
    • Core Concepts
      • Components
      • Nets
      • Circuits
      • Pin Connections
    • Hierarchical Design
    • Next Steps
  • Examples
    • Simple LED Circuit
    • Complex ESP32 Project
    • Power Supply Circuit
    • USB Interface
    • ESP32 Microcontroller
    • Running the Examples
    • Advanced Features
      • Component Templates
      • Mixed Pin Access
      • Debugging and Visualization

Architecture & Design:

  • Circuit-Synth Architecture
    • Overview
    • Core Data Flow
      • Python → JSON → KiCad
      • KiCad → JSON → Python
    • JSON as Canonical Format
    • JSON Structure
      • Key Elements
    • Implementation Details
      • Core Classes
      • Workflow Integration
    • Performance Optimization
    • Benefits
    • Schema Documentation
    • Future Considerations
  • KiCad-sch-api Integration
    • Overview
    • Architecture
      • Hybrid Approach
      • Division of Responsibilities
        • Legacy System Handles:
        • kicad-sch-api Handles:
    • Configuration
      • Automatic Detection
      • Version Requirements
    • Implementation Details
      • Intelligent File Writer Selection
      • Positioned Component Data Extraction
      • Professional File Generation
    • Benefits
      • For Circuit-synth Users
      • For the Community
    • Standalone kicad-sch-api Usage
    • Migration Notes
      • From Pure Legacy
      • Performance Improvements
    • Troubleshooting
      • Debug Information
      • Version Conflicts
      • Fallback Behavior
    • Future Development
  • Circuit-Synth JSON Schema Documentation
    • Overview
    • Schema Structure
      • Top-Level Circuit Object
      • Components Object
      • Pin Definition
      • Nets Object
      • Subcircuits Array
      • Annotations Array (Optional)
    • Complete Example
    • Pin Reference Formats
      • 1. Legacy Format (pin_id)
      • 2. Modern Format (pin object)
    • Data Types
    • Validation Notes
    • Usage with Circuit-Synth
      • Export to JSON
      • Import from JSON
    • Version Compatibility
  • Circuit-Synth Project Structure
    • 📁 Root Level Organization
    • 🎯 Directory Purposes
      • Core Code
      • Development Tools
      • Testing & Examples
      • Infrastructure
      • Documentation & Knowledge
      • External Dependencies
      • AI Integration
    • 🔧 Key Files
    • 🚀 Quick Access
      • For Users
      • For Contributors
      • For CI/CD
    • 📊 Organization Benefits
      • ✅ Clean Root Directory
      • ✅ Logical Grouping
      • ✅ Scalable Structure
      • ✅ Tool Integration
    • 🏗️ Generated Project Structure

API Reference:

  • API Reference
    • Core Module
      • Circuit
        • Circuit.Component
        • Circuit.__init__()
        • Circuit.add_annotation()
        • Circuit.add_component()
        • Circuit.add_image()
        • Circuit.add_net()
        • Circuit.add_subcircuit()
        • Circuit.add_subcircuit_old()
        • Circuit.components
        • Circuit.finalize_references()
        • Circuit.generate_bom()
        • Circuit.generate_flattened_json_netlist()
        • Circuit.generate_full_netlist()
        • Circuit.generate_gerbers()
        • Circuit.generate_json_netlist()
        • Circuit.generate_kicad_netlist()
        • Circuit.generate_kicad_project()
        • Circuit.generate_pdf_schematic()
        • Circuit.generate_text_netlist()
        • Circuit.nets
        • Circuit.register_reference()
        • Circuit.simulate()
        • Circuit.simulator()
        • Circuit.subcircuits
        • Circuit.to_dict()
        • Circuit.to_flattened_list()
        • Circuit.validate_reference()
      • Component
        • Component.ALLOWED_REASSIGN
        • Component.__call__()
        • Component.__init__()
        • Component.datasheet
        • Component.description
        • Component.footprint
        • Component.from_dict()
        • Component.print_pin_names()
        • Component.ref
        • Component.to_dict()
        • Component.value
        • Component.symbol
      • Net
        • Net.__iadd__()
        • Net.__init__()
        • Net.from_dict()
        • Net.pins
        • Net.to_dict()
      • Pin
        • Pin.__iadd__()
        • Pin.__init__()
        • Pin.__json__()
        • Pin.connect_to_net()
        • Pin.connected
        • Pin.length
        • Pin.orientation
        • Pin.to_dict()
        • Pin.x
        • Pin.y
      • circuit()
      • ComponentError
      • ValidationError
      • CircuitSynthError
      • DependencyContainer
        • DependencyContainer.__init__()
        • DependencyContainer.clear()
        • DependencyContainer.get_registrations()
        • DependencyContainer.is_registered()
        • DependencyContainer.register()
        • DependencyContainer.register_factory()
        • DependencyContainer.register_instance()
        • DependencyContainer.register_singleton()
        • DependencyContainer.register_transient()
        • DependencyContainer.resolve()
      • ServiceLocator
        • ServiceLocator.get_container()
        • ServiceLocator.is_registered()
        • ServiceLocator.resolve()
        • ServiceLocator.set_container()
      • IDependencyContainer
        • IDependencyContainer.is_registered()
        • IDependencyContainer.register()
        • IDependencyContainer.register_factory()
        • IDependencyContainer.register_instance()
        • IDependencyContainer.register_singleton()
        • IDependencyContainer.register_transient()
        • IDependencyContainer.resolve()
      • replace_components()
      • replace_multiple()
      • find_replaceable_components()
      • ReplacementResult
        • ReplacementResult.count
        • ReplacementResult.affected_components
        • ReplacementResult.warnings
        • ReplacementResult.errors
        • ReplacementResult.__init__()
        • ReplacementResult.__str__()
        • ReplacementResult.count
        • ReplacementResult.affected_components
        • ReplacementResult.warnings
        • ReplacementResult.errors
      • Circuit
        • Circuit
      • Component
        • Component
      • Net
        • Net
      • Pin
        • PinType
        • Pin
    • KiCad Integration
      • BOMExporter
        • BOMExporter.export_csv()
      • BOMPropertyManager
        • BOMPropertyManager.__init__()
        • BOMPropertyManager.audit_directory()
        • BOMPropertyManager.audit_schematic()
        • BOMPropertyManager.generate_report()
        • BOMPropertyManager.parse_match_criteria()
        • BOMPropertyManager.parse_properties()
        • BOMPropertyManager.transform_properties()
        • BOMPropertyManager.update_properties()
      • SymbolLibCache
        • SymbolLibCache.__init__()
        • SymbolLibCache.find_symbol_library()
        • SymbolLibCache.get_all_libraries()
        • SymbolLibCache.get_all_symbols()
        • SymbolLibCache.get_symbol_data()
        • SymbolLibCache.get_symbol_data_by_name()
      • Unified Integration
    • PCB Generation
      • PCBBoard
        • PCBBoard.__init__()
      • PCBParser
        • PCBParser.__init__()
      • PCBNotAvailableError
      • KiCadCLI
        • KiCadCLI.__init__()
        • KiCadCLI.export_drill()
        • KiCadCLI.export_gerbers()
        • KiCadCLI.export_pos()
        • KiCadCLI.export_svg()
        • KiCadCLI.get_version()
        • KiCadCLI.run_command()
        • KiCadCLI.run_drc()
      • get_kicad_cli()
      • DRCResult
        • DRCResult.__init__()
        • DRCResult.output_file
        • DRCResult.total_issues
        • DRCResult.success
        • DRCResult.violations
        • DRCResult.warnings
        • DRCResult.unconnected_items
      • KiCadCLIError
      • Placement Algorithms
    • Schematic Generation
    • Component Placement
      • PinLocation
        • PinLocation.__init__()
        • PinLocation.x
        • PinLocation.y
        • PinLocation.side
      • ComponentDimensions
        • ComponentDimensions.__init__()
        • ComponentDimensions.pin_grid
        • ComponentDimensions.width
        • ComponentDimensions.height
      • ComponentGeometryHandler
        • ComponentGeometryHandler.__init__()
        • ComponentGeometryHandler.get_bounding_box()
        • ComponentGeometryHandler.get_pin_location()
      • ResistorGeometryHandler
      • PowerSymbolGeometryHandler
      • create_geometry_handler()
      • PlacementNode
        • PlacementNode.__init__()
        • PlacementNode.__post_init__()
        • PlacementNode.connected_components
        • PlacementNode.geometry_handler
        • PlacementNode.placed
        • PlacementNode.rotation
        • PlacementNode.x
        • PlacementNode.y
        • PlacementNode.component
      • ComponentPlacer
        • ComponentPlacer.__init__()
        • ComponentPlacer.analyze_connectivity()
        • ComponentPlacer.place_components()
      • WireSegment
        • WireSegment.__init__()
        • WireSegment.start
        • WireSegment.end
        • WireSegment.net_name
        • WireSegment.connected_pins
      • WireRouter
        • WireRouter.__init__()
        • WireRouter.route_net()
      • ForceVector
        • ForceVector.__init__()
        • ForceVector.magnitude()
        • ForceVector.scale()
        • ForceVector.x
        • ForceVector.y
      • ForceDirectedLayout
        • ForceDirectedLayout.__init__()
        • ForceDirectedLayout.layout()
    • Interfaces
    • Exceptions
      • CircuitSynthError
      • LibraryNotFound
      • SymbolNotFoundError
      • ParseError
      • ValidationError
      • ComponentError
      • ConnectionError

Development:

  • Contributing to Circuit-Synth
    • Development Setup
    • Development Workflow
    • Code Style
    • Quick Start Options
      • 1. Add a Circuit Example (15 mins)
      • 3. Component Search Improvements
    • Development Environment Setup
    • Development Workflow
    • Testing
    • Types of Contributions
      • Bug Reports
      • Feature Requests
      • Code Contributions
    • Code Style
    • Architecture
    • Pull Request Guidelines
    • Getting Help
    • Code of Conduct
    • Recognition
  • AI Agents System
    • Overview
    • Agent Categories
      • Circuit Design Agents
      • Manufacturing & Sourcing
      • MCU Selection
      • Simulation & Validation
      • Development Tools
    • Using Agents
      • Basic Usage
    • Agent Capabilities
    • Examples
      • Component Sourcing Example
      • Circuit Generation Example
    • Agent Architecture
    • Best Practices
      • When to Use Agents
      • Agent Workflow Tips
    • Limitations
    • Contributing
    • See Also
  • Circuit-Synth Testing Guide
    • Testing Architecture Overview
      • 🐍 Python Tests (Primary)
      • 🔗 Integration Tests
      • ⚙️ Core Tests
    • Quick Start
      • Run All Tests (Recommended)
      • Traditional Testing Commands
    • Testing Scripts
      • scripts/run_all_tests.sh
      • Method 2: Test with Python Integration
    • GitHub Actions CI/CD
      • Automatic PR Testing
      • Workflow Triggers
      • Test Matrix
    • Pre-commit Hooks
    • Test Results & Reporting
      • JSON Output Format
      • PR Comments
    • Troubleshooting
      • Common Issues
      • Debug Commands
    • Recommended Development Workflow
    • Integration with CLAUDE.md
    • Why This Architecture Works
    • Benefits
  • Development Tools Reference Guide
    • 🏗️ New Organization Structure
    • 📖 Quick Reference Commands
    • 🔍 Finding Tools
    • ✅ Migration Complete
    • 📚 Related Documentation

Advanced Topics:

  • Circuit-Synth SPICE Simulation Setup Guide
    • Overview
    • Prerequisites
      • 1. Install ngspice (SPICE Simulator Engine)
      • 2. Install Circuit-Synth (PySpice included by default)
    • Verification
      • Test ngspice Installation
      • Test PySpice Installation
      • Test Circuit-Synth Simulation
    • Platform-Specific Configuration
      • macOS Configuration
      • Linux Configuration
      • Windows Configuration
    • Troubleshooting
      • Common Issues
      • Getting Help
    • Performance Notes
    • Security Considerations
    • Next Steps
  • Test Plan Generation
    • Overview
    • Quick Start
      • Using with Claude Code
      • Using CLI Commands
    • Test Plan Categories
      • 1. Functional Testing
      • 2. Performance Testing
      • 3. Safety and Compliance
      • 4. Manufacturing Testing
    • Example Usage
      • Basic Test Plan Generation
      • Advanced Manufacturing Tests
    • Output Formats
      • Markdown (Default)
      • JSON
      • CSV
      • Checklist
    • Test Equipment Recommendations
    • Integration with Circuit-Synth Workflow
    • Best Practices
    • Troubleshooting
      • No Test Points Identified
      • Missing Equipment Specs
      • Incomplete Procedures
    • API Reference
      • Agent Tools
      • CLI Commands
    • Contributing
  • FMEA Analysis Guide
    • Overview
      • What is FMEA?
      • Key Features
    • Quick Start
      • Basic Usage
      • Python API
    • Understanding FMEA Reports
      • Risk Priority Number (RPN)
        • Severity (S)
        • Occurrence (O)
        • Detection (D)
      • Risk Levels
    • Component-Specific Failure Modes
      • Connectors
      • Voltage Regulators
      • Microcontrollers (MCU)
      • Capacitors
      • Resistors
      • Crystals/Oscillators
    • Interpreting PDF Reports
      • 1. Title Page
      • 2. Executive Summary
      • 3. System Overview
      • 4. FMEA Analysis Table
      • 5. Detailed Failure Analysis
      • 6. Risk Assessment Matrix
      • 7. Recommendations
    • Advanced Features
      • Enhanced FMEA with Knowledge Base
      • Custom Circuit Context
      • CLI Advanced Options
    • Mitigation Strategies
      • General Design Principles
      • Component-Specific Strategies
    • Example Workflow
      • Complete FMEA Process
    • Best Practices
      • When to Run FMEA
      • Interpreting Results
      • Continuous Improvement
    • Troubleshooting
      • Common Issues
    • References
      • Standards
      • Reliability Models
      • Further Reading
    • Support
Circuit-Synth
  • Search


© Copyright 2025, Circuit Synth Contributors.

Built with Sphinx using a theme provided by Read the Docs.