MRMCD2024 Designing PCBs with Python: faebryk

Learn how faebryk, an open-source Python library, revolutionizes PCB design by enabling code-based layouts with automated validation, version control, and modular abstractions.

Key takeaways
  • Faebryk is an open-source Python library for PCB design that allows creating board layouts through code rather than traditional GUI tools

  • Key benefits include:

    • Version control integration with Git
    • Automated component selection and validation
    • Electric rules checking
    • Ability to create reusable modules and abstractions
    • Integration with existing Python ecosystem and libraries
    • Collaborative development capabilities
  • The library supports:

    • Footprint definitions
    • Netlist generation
    • Interface definitions (power, USB, Ethernet, etc.)
    • Parameter systems for components
    • Unit handling and tolerance specifications
  • Workflow involves:

    • Starting with abstract design
    • Gradually refining and adding details
    • Generating output files for manufacturing
    • Optional export to KiCAD for manual finishing
  • Advanced features:

    • Component database integration
    • Automated checks for voltage mismatches
    • Support for hierarchical designs
    • Math calculations and assertions
    • Visual schematic generation
  • The project is:

    • Merging with EtoPile for broader capabilities
    • Focused on being beginner-friendly
    • Actively developing automated routing features
    • Building a component server for curated parts
    • Growing an open-source ecosystem
  • Current limitations:

    • Documentation is still developing
    • Auto-routing is not fully implemented
    • Some manual steps may still be required
    • Integration with existing PCB tools needs improvement