- Update README.md clone URL to https://git.b4l.co.th/B4L/b4l-project-template.git - Update KICAD-PROJECT-TEMPLATE.md clone URL to new repository location - Ensure all documentation references the correct repository URL
9.1 KiB
9.1 KiB
KiCad 9 Project Template Guide
This document provides a comprehensive guide for using this KiCad 9 project template effectively.
🚀 Getting Started
1. Clone or Download Template
# Option A: Clone the repository
git clone https://git.b4l.co.th/B4L/b4l-project-template.git your-project-name
cd your-project-name
# Option B: Download as ZIP and extract to your desired location
2. Create Your KiCad Project
- Open KiCad 9
- File → New Project
- Navigate to your template directory
- Create project in the root directory (same level as README.md)
- Name your project (creates
.kicad_pro,.kicad_sch,.kicad_pcbfiles)
3. Configure KiCad Libraries
- Preferences → Manage Symbol Libraries
- Add path:
${KIPRJMOD}/kicad/libraries/symbols/
- Add path:
- Preferences → Manage Footprint Libraries
- Add path:
${KIPRJMOD}/kicad/libraries/footprints/
- Add path:
- Preferences → Configure Paths
- Add 3D models path:
${KIPRJMOD}/kicad/libraries/3dmodels/
- Add 3D models path:
📁 Directory Structure Overview
your-project/
├── your-project.kicad_pro # Main project file
├── your-project.kicad_sch # Main schematic
├── your-project.kicad_pcb # Main PCB layout
├── README.md # Project documentation
├── .gitignore # Git ignore rules
├── LICENSE # Project license
│
├── kicad/ # KiCad-specific files
│ ├── libraries/ # Custom libraries
│ │ ├── symbols/ # Custom symbols (.kicad_sym)
│ │ ├── footprints/ # Custom footprints (.pretty)
│ │ └── 3dmodels/ # 3D models (.step, .wrl)
│ ├── schematics/ # Hierarchical sheets
│ ├── gerbers/ # Generated Gerbers (review)
│ ├── plots/ # PDF plots
│ └── backups/ # Auto backups (git ignored)
│
├── hardware/ # Hardware documentation
│ ├── bom/ # Bill of Materials
│ ├── datasheets/ # Component datasheets
│ ├── simulations/ # SPICE simulations
│ └── assembly/ # Assembly instructions
│
├── manufacturing/ # Production files
│ ├── gerbers/ # Final production Gerbers
│ ├── drill/ # Drill files
│ ├── pick-and-place/ # SMT placement files
│ └── assembly/ # Production assembly docs
│
├── docs/ # Project documentation
│ ├── images/ # Documentation images
│ ├── datasheets/ # Reference datasheets
│ ├── user-manual/ # End-user documentation
│ └── design-notes/ # Technical design docs
│
├── mechanical/ # Mechanical design
├── firmware/ # Embedded code (if applicable)
├── software/ # PC software and tools
├── tests/ # Testing procedures
├── tools/ # Development tools
├── ci/ # Continuous integration
├── certs/ # Certifications
└── meta/ # Project metadata
🔄 Recommended Workflow
Phase 1: Design Setup
- Requirements: Document in
docs/design-notes/requirements.md - Architecture: Create system overview in
docs/design-notes/architecture.md - Component Research: Save datasheets to
docs/datasheets/
Phase 2: Schematic Design
- Main Schematic: Design in root
.kicad_schfile - Hierarchical Sheets: Store in
kicad/schematics/ - Custom Symbols: Create in
kicad/libraries/symbols/ - Design Review: Document in
docs/design-notes/design-reviews/
Phase 3: PCB Layout
- PCB Design: Layout in root
.kicad_pcbfile - Custom Footprints: Create in
kicad/libraries/footprints/ - 3D Models: Add to
kicad/libraries/3dmodels/ - Review Plots: Generate to
kicad/plots/
Phase 4: Documentation
- BOM Generation: Export to
hardware/bom/ - Assembly Drawings: Create in
hardware/assembly/ - User Manual: Write in
docs/user-manual/ - Design Notes: Update technical documentation
Phase 5: Manufacturing
- Final Gerbers: Generate to
manufacturing/gerbers/ - Drill Files: Generate to
manufacturing/drill/ - Pick & Place: Generate to
manufacturing/pick-and-place/ - Package: Create manufacturer submission package
🛠️ KiCad 9 Specific Features
Project Settings
- Configure design rules in
.kicad_profile - Set up custom library paths using
${KIPRJMOD}variable - Configure 3D viewer settings for custom models
Library Management
- Use relative paths for portability
- Organize libraries by function (MCU, connectors, etc.)
- Version control custom libraries with project
File Generation
- Gerbers:
File → Fabrication Outputs → Gerbers - Drill Files: Generated with Gerbers
- Pick & Place:
File → Fabrication Outputs → Component Placement - BOM:
Tools → Generate Bill of Materials
📋 Quality Checklist
Design Review
- Schematic review completed and documented
- PCB layout review completed
- Design rules check (DRC) passed
- Electrical rules check (ERC) passed
- 3D visualization reviewed
Manufacturing Files
- Gerber files generated and reviewed
- Drill files generated and verified
- Pick and place files created (for SMT)
- BOM exported and verified
- Assembly drawings created
Documentation
- README updated with project specifics
- Design notes documented
- User manual created (if applicable)
- Assembly instructions written
- Test procedures documented
🔧 Git Workflow and File Naming
This template follows Semantic Versioning 2.0.0 and Harvard Data Management file naming conventions. See FILE-NAMING-AND-VERSIONING.md for complete details.
File Naming Standards
- No spaces: Use hyphens (-) instead of spaces
- Date format: YYYY-MM-DD for chronological sorting
- Versioning: Follow semantic versioning (MAJOR.MINOR.PATCH)
- Structure:
[project-name]_[component-type]_[description]_[version]_[date].extension
Examples
my-project_bom_v1.2.0_2024-08-04.csv
my-project_gerbers_v1.0.0_2024-08-04.zip
my-project_user-manual_v1.0.0_2024-08-04.pdf
my-project_housing-main_v2.0.0.sldprt
my-project_symbols_mcu_v1.0.0.kicad_sym
Initial Setup
# After creating KiCad project
git add .
git commit -m "Initial KiCad project setup v1.0.0"
git tag -a v1.0.0 -m "Initial release - functional prototype"
git remote add origin https://your-git-server.com/username/your-project.git
git push -u origin main
git push --tags
Development Workflow
# Regular development cycle
git add .
git commit -m "Update component values - v1.0.1"
git tag -a v1.0.1 -m "Bug fix - corrected resistor values"
git push
git push --tags
# For major milestones
git tag -a v2.0.0 -m "Major PCB redesign with new connector layout"
git push --tags
Semantic Versioning Strategy
- MAJOR: PCB layout changes, connector changes, mechanical incompatibilities
- MINOR: Component changes, new features, firmware updates
- PATCH: Documentation updates, BOM corrections, minor fixes
Branch Strategy
main: Stable, tested designsdevelop: Active developmentfeature/xxx: Specific features or improvementsrelease/vx.x.x: Release preparation
🎯 Best Practices
File Organization
- Keep main project files in root directory
- Use consistent naming conventions
- Organize files by function and lifecycle
- Document file purposes in README files
Version Control
- Commit frequently with descriptive messages
- Tag releases and major milestones
- Use
.gitignoreto exclude temporary files - Include generated files for important releases
Documentation
- Update documentation with design changes
- Use clear, descriptive language
- Include diagrams and images where helpful
- Version control all documentation
Library Management
- Create custom libraries for project-specific components
- Use descriptive names for symbols and footprints
- Include 3D models for visualization
- Document custom component specifications
🆘 Troubleshooting
Common Issues
- Library not found: Check library paths in preferences
- Missing 3D models: Verify 3D model paths in footprints
- Gerber generation fails: Check layer setup and output directory
- Git conflicts: Use proper .gitignore for KiCad files
Getting Help
- KiCad documentation: https://docs.kicad.org/
- KiCad forums: https://forum.kicad.info/
- Build4Life community: https://buildfor.life
📞 Support
For template-specific issues:
- Repository: https://git.buildfor.life/grabowski/b4l-project-template
- Issues: Use the repository issue tracker
- Documentation: This file and individual README files
Happy designing with KiCad 9! 🎉