Refine repository structure for KiCad 9 optimization

- Add dedicated /kicad/ directory with organized subdirectories for libraries, schematics, gerbers, plots, and backups
- Create comprehensive KiCad 9 library structure (symbols, footprints, 3D models)
- Add manufacturing-ready directories for production files (gerbers, drill, pick-and-place)
- Update all README files with KiCad-specific documentation and workflows
- Add KiCad-optimized .gitignore file for proper version control
- Create KICAD-PROJECT-TEMPLATE.md comprehensive usage guide
- Add hardware assembly documentation and BOM management
- Include detailed manufacturing file generation instructions
- Add docs structure with design-notes and user-manual directories
- Provide complete workflow from design to manufacturing with quality checklists
This commit is contained in:
2025-08-03 16:27:46 +07:00
parent dabbd358f8
commit 046f66f6eb
21 changed files with 1703 additions and 68 deletions

114
.gitignore vendored Normal file
View File

@@ -0,0 +1,114 @@
# KiCad 9 Project Template .gitignore
# KiCad Backup Files
*.kicad_pcb-bak
*.kicad_sch-bak
*.kicad_pro-bak
*-backups/
kicad/backups/
# KiCad Auto-save Files
*-save.kicad_pcb
*-save.kicad_sch
*-save.pro
\#auto_saved_files\#
# KiCad Temporary Files
*.tmp
*~
*.swp
*.swo
# KiCad Cache Files
*-cache.lib
*-rescue.lib
*-rescue.dcm
fp-info-cache
# KiCad Generated Files (optional - uncomment if you don't want to track these)
# *.gbr
# *.drl
# *.csv
# *.pdf
# *.ps
# *.svg
# OS Generated Files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
desktop.ini
# IDE and Editor Files
.vscode/
.idea/
*.sublime-*
*~
# Python (for KiCad scripts)
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
venv/
.env
# Node.js (for web-based tools)
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Build and Distribution
build/
dist/
*.egg-info/
# Documentation Build
docs/_build/
site/
# Logs
*.log
logs/
# Temporary directories
tmp/
temp/
# Archive files
*.zip
*.tar.gz
*.rar
*.7z
# Simulation files (large SPICE outputs)
*.raw
*.ac0
*.tr0
*.sw0
# Manufacturing files (uncomment if you want to exclude from repo)
# manufacturing/gerbers/*.gbr
# manufacturing/drill/*.drl
# manufacturing/pick-and-place/*.csv
# Large binary files
*.step
*.stp
*.iges
*.igs
*.stl
# Exclude large 3D models (uncomment if models are too large)
# kicad/libraries/3dmodels/*.step
# kicad/libraries/3dmodels/*.wrl
# Project-specific ignores (customize as needed)
# Add your project-specific files to ignore here

229
KICAD-PROJECT-TEMPLATE.md Normal file
View File

@@ -0,0 +1,229 @@
# 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
```bash
# Option A: Clone the repository
git clone https://git.buildfor.life/grabowski/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
1. Open KiCad 9
2. **File → New Project**
3. Navigate to your template directory
4. Create project in the root directory (same level as README.md)
5. Name your project (creates `.kicad_pro`, `.kicad_sch`, `.kicad_pcb` files)
### 3. Configure KiCad Libraries
1. **Preferences → Manage Symbol Libraries**
- Add path: `${KIPRJMOD}/kicad/libraries/symbols/`
2. **Preferences → Manage Footprint Libraries**
- Add path: `${KIPRJMOD}/kicad/libraries/footprints/`
3. **Preferences → Configure Paths**
- Add 3D models path: `${KIPRJMOD}/kicad/libraries/3dmodels/`
## 📁 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
1. **Requirements**: Document in `docs/design-notes/requirements.md`
2. **Architecture**: Create system overview in `docs/design-notes/architecture.md`
3. **Component Research**: Save datasheets to `docs/datasheets/`
### Phase 2: Schematic Design
1. **Main Schematic**: Design in root `.kicad_sch` file
2. **Hierarchical Sheets**: Store in `kicad/schematics/`
3. **Custom Symbols**: Create in `kicad/libraries/symbols/`
4. **Design Review**: Document in `docs/design-notes/design-reviews/`
### Phase 3: PCB Layout
1. **PCB Design**: Layout in root `.kicad_pcb` file
2. **Custom Footprints**: Create in `kicad/libraries/footprints/`
3. **3D Models**: Add to `kicad/libraries/3dmodels/`
4. **Review Plots**: Generate to `kicad/plots/`
### Phase 4: Documentation
1. **BOM Generation**: Export to `hardware/bom/`
2. **Assembly Drawings**: Create in `hardware/assembly/`
3. **User Manual**: Write in `docs/user-manual/`
4. **Design Notes**: Update technical documentation
### Phase 5: Manufacturing
1. **Final Gerbers**: Generate to `manufacturing/gerbers/`
2. **Drill Files**: Generate to `manufacturing/drill/`
3. **Pick & Place**: Generate to `manufacturing/pick-and-place/`
4. **Package**: Create manufacturer submission package
## 🛠️ KiCad 9 Specific Features
### Project Settings
- Configure design rules in `.kicad_pro` file
- 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
### Initial Setup
```bash
# After creating KiCad project
git add .
git commit -m "Initial KiCad project setup"
git remote add origin https://your-git-server.com/username/your-project.git
git push -u origin main
```
### Development Workflow
```bash
# Regular development cycle
git add .
git commit -m "Descriptive commit message"
git push
# For major milestones
git tag -a v1.0.0 -m "Release version 1.0.0"
git push --tags
```
### Branch Strategy
- `main`: Stable, tested designs
- `develop`: Active development
- `feature/xxx`: Specific features or improvements
- `release/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 `.gitignore` to 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!** 🎉

231
README.md
View File

@@ -1,98 +1,201 @@
# B4L Open Hardware Project Template
# B4L KiCad 9 Project Template
Welcome to the **Build4Life (B4L)** Open Hardware Project Template!
This repository defines a standard structure for building open-source hardware projects with high transparency, maintainability, and manufacturability.
Use this as a base for your own project or as a collaborative standard for contributions.
Welcome to the **Build4Life (B4L)** KiCad 9 Project Template!
This repository provides a standardized structure for KiCad 9 hardware projects with proper organization for schematics, PCBs, libraries, documentation, and manufacturing files.
---
## 📁 Folder Structure
## 🚀 Quick Start Guide
### 1. Clone or Download This Template
```bash
# Option A: Clone the repository
git clone https://git.buildfor.life/grabowski/b4l-project-template.git your-project-name
cd your-project-name
# Option B: Download as ZIP and extract
```
hardware/ # Schematics, PCB, component models, libraries
mechanical/ # Enclosures and mechanical CAD
firmware/ # Embedded firmware
software/ # PC-side software and tools
docs/ # Documentation and datasheets
tests/ # Test plans, logs, reports
ci/ # Continuous Integration configuration
tools/ # Debug and development utilities
certs/ # Certification/compliance files
manufacturing/ # Production and assembly resources
meta/ # Project changelog and metadata
### 2. Create Your KiCad 9 Project
1. Open KiCad 9
2. Click **File → New Project**
3. Navigate to the cloned template folder
4. Create your project in the root directory (same level as this README)
5. Name your project (this will create `.kicad_pro`, `.kicad_sch`, and `.kicad_pcb` files)
### 3. Organize Your Files
- Place your main schematic (`.kicad_sch`) and PCB (`.kicad_pcb`) files in the root
- Use the provided folder structure for additional files
- Update the project-specific README files in each folder
### 4. Set Up Version Control
```bash
# Initialize git (if not already done)
git init
# Add your files
git add .
git commit -m "Initial KiCad project setup"
# Add your remote repository
git remote add origin https://your-git-server.com/username/your-project.git
git push -u origin main
```
---
## 📂 Folder Descriptions
## 📁 KiCad 9 Optimized Folder Structure
### `/hardware/`
- `schematics/`: Electrical schematics in any EDA tool
- `pcb/`: PCB layout files
- `bom/`: Bill of Materials (CSV, XLSX)
- `manufacturing/`: Gerbers, pick-and-place, drill data
- `simulations/`: SPICE or other circuit simulations
- `component-models/`: 3D models for electronic components
- `libraries/`: Custom symbols, footprints, models
```
your-project.kicad_pro # KiCad 9 project file (root level)
your-project.kicad_sch # Main schematic file (root level)
your-project.kicad_pcb # Main PCB file (root level)
### `/mechanical/`
- `enclosure/`: 3D-printable housing or case designs
- `cad/`: Editable CAD models
- `stl/`: Printable STL files
- `drawings/`: 2D mechanical drawings for CNC or documentation
kicad/ # KiCad-specific files
├── libraries/ # Custom KiCad libraries
│ ├── symbols/ # Custom schematic symbols (.kicad_sym)
│ ├── footprints/ # Custom footprints (.pretty folders)
│ └── 3dmodels/ # Custom 3D models (.step, .wrl)
├── schematics/ # Additional/hierarchical schematics
├── gerbers/ # Generated Gerber files
├── plots/ # PDF plots and prints
└── backups/ # KiCad automatic backups
### `/firmware/`
- `src/`, `include/`, `lib/`: Source code and libraries for microcontrollers
- Compatible with PlatformIO, Arduino, STM32Cube, Zephyr, etc.
hardware/ # Hardware documentation and files
├── bom/ # Bill of Materials
├── datasheets/ # Component datasheets
├── simulations/ # SPICE simulations
└── assembly/ # Assembly drawings and instructions
### `/software/`
- `gui/`: GUI apps for control or configuration
- `scripts/`: Helper tools or automation
manufacturing/ # Production files
├── gerbers/ # Final Gerber files for production
├── drill/ # Drill files
├── pick-and-place/ # Pick and place files
└── assembly/ # Assembly instructions
### `/docs/`
- `overview.md`, `quickstart.md`: Introductory and usage docs
- `images/`: Diagrams, photos, illustrations
- `datasheets/`: Reference datasheets for key components
mechanical/ # Mechanical design files
├── enclosure/ # Case/enclosure designs
├── cad/ # 3D CAD files
├── drawings/ # 2D mechanical drawings
└── stl/ # 3D printable files
### `/tests/`
- `hardware/`: Hardware test procedures
- `firmware/`: Firmware unit or integration tests
- `reports/`: Test logs and validation outputs
firmware/ # Embedded firmware (if applicable)
├── src/ # Source code
├── include/ # Header files
└── lib/ # Libraries
### `/ci/`
- GitHub Actions, GitLab CI, or other automation scripts
software/ # PC software and tools
├── gui/ # GUI applications
└── scripts/ # Automation scripts
### `/tools/`
- Developer tools, debug scripts, flashing utilities
docs/ # Project documentation
├── images/ # Documentation images
├── user-manual/ # User documentation
└── design-notes/ # Design documentation
### `/certs/`
- Regulatory or environmental compliance documents (e.g., CE, FCC, RoHS)
tests/ # Testing files
├── hardware/ # Hardware test procedures
├── reports/ # Test reports
└── validation/ # Validation documents
### `/manufacturing/`
- `assembly/`: Instructions and jigs for assembly
- `fab/`: Production-ready files for fabrication
tools/ # Development tools
ci/ # Continuous Integration
certs/ # Certifications and compliance
meta/ # Project metadata
```
### `/meta/`
- `changelog.md`: Development history
- `authors.md`: Contributors list
- `b4l_manifest.json`: Optional machine-readable metadata
---
## 🔧 KiCad 9 Specific Features
### Project Settings
- Configure your KiCad 9 project settings in the `.kicad_pro` file
- Set up design rules and constraints
- Configure library paths to use the `kicad/libraries/` structure
### Library Management
- Store custom symbols in `kicad/libraries/symbols/`
- Store custom footprints in `kicad/libraries/footprints/`
- Store 3D models in `kicad/libraries/3dmodels/`
- Use relative paths in your project settings
### Version Control Best Practices
- The `.gitignore` file is configured for KiCad projects
- Automatic backups are stored in `kicad/backups/` (excluded from git)
- Generated files (Gerbers, plots) can be committed or ignored based on your workflow
---
## 📋 Workflow Recommendations
### 1. Design Phase
1. Create your schematic in the root `.kicad_sch` file
2. Use hierarchical sheets in `kicad/schematics/` for complex designs
3. Store component datasheets in `hardware/datasheets/`
4. Document design decisions in `docs/design-notes/`
### 2. Layout Phase
1. Design your PCB in the root `.kicad_pcb` file
2. Generate plots and save to `kicad/plots/`
3. Create assembly drawings in `hardware/assembly/`
### 3. Manufacturing Phase
1. Generate final Gerbers to `manufacturing/gerbers/`
2. Create pick-and-place files in `manufacturing/pick-and-place/`
3. Generate BOM in `hardware/bom/`
4. Create assembly instructions in `manufacturing/assembly/`
### 4. Documentation Phase
1. Update all README files in subdirectories
2. Create user manual in `docs/user-manual/`
3. Add project images to `docs/images/`
---
## 🔄 Git Workflow
### Initial Setup
```bash
# After creating your KiCad project
git add .
git commit -m "Add KiCad project files"
git push
```
### Regular Development
```bash
# After making changes
git add .
git commit -m "Describe your changes"
git push
```
### Release Preparation
```bash
# Generate manufacturing files
# Update documentation
# Tag release
git tag -a v1.0.0 -m "Release version 1.0.0"
git push --tags
```
---
## 📝 License
This template is open source. Use a license that fits your project.
Recommended for hardware: [CERN-OHL-S-2.0](https://gitlab.com/ohwr/project/cernohl/)
This template is open source. Choose an appropriate license for your project:
- For hardware: [CERN-OHL-S-2.0](https://ohwr.org/cern_ohl_s_v2.txt)
- For software: [MIT](https://opensource.org/licenses/MIT) or [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html)
---
## 🤝 Contributing
To start a new project:
1. Click “Use this template” (on GitHub) or clone this repo
2. Rename and fill out your project files
3. Share and collaborate with ease
1. Fork this repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---

View File

@@ -1,3 +1,33 @@
# /docs
Documentation files for users and developers.
Project documentation for your KiCad project.
## Purpose
This directory contains all project documentation including user manuals, design notes, images, and reference materials.
## Directory Structure
- `images/` - Documentation images, photos, and diagrams
- `datasheets/` - Component datasheets and specifications
- `user-manual/` - End-user documentation and guides
- `design-notes/` - Design decisions and technical documentation
## Documentation Types
- **User Manual**: How to use the finished product
- **Design Notes**: Technical decisions and rationale
- **Assembly Guide**: How to build the project
- **Testing Procedures**: Verification and validation
- **Troubleshooting**: Common issues and solutions
## Best Practices
- Use clear, descriptive filenames
- Include version information in documents
- Keep images organized and properly referenced
- Document design decisions and trade-offs
- Update documentation with design changes
- Use consistent formatting and style
## File Formats
- **Markdown (`.md`)**: Preferred for text documentation
- **PDF (`.pdf`)**: For formal documents and printable guides
- **Images**: PNG for diagrams, JPG for photos
- **Datasheets**: PDF format from manufacturers

View File

@@ -0,0 +1,89 @@
# /docs/design-notes
Design decisions and technical documentation for your KiCad project.
## Purpose
This directory contains technical documentation that explains the design decisions, trade-offs, and engineering rationale behind your KiCad project.
## Document Types
- **Design Requirements**: Project specifications and constraints
- **Architecture Overview**: High-level system design
- **Circuit Analysis**: Detailed circuit explanations
- **Component Selection**: Why specific components were chosen
- **Design Trade-offs**: Alternative approaches considered
- **Simulation Results**: SPICE analysis and verification
- **Design Reviews**: Peer review notes and feedback
## Recommended Files
```
design-notes/
├── requirements.md # Project requirements and specifications
├── architecture.md # System architecture overview
├── power-design.md # Power supply design notes
├── signal-integrity.md # High-speed design considerations
├── component-selection.md # Component choice rationale
├── thermal-analysis.md # Thermal design considerations
├── emc-considerations.md # EMC/EMI design notes
├── design-reviews/ # Review meeting notes
│ ├── review-001-schematic.md
│ ├── review-002-layout.md
│ └── review-003-final.md
└── simulations/ # Simulation results and analysis
├── power-analysis.md
├── signal-timing.md
└── thermal-simulation.md
```
## Design Requirements Template
Document your project requirements:
- **Functional Requirements**: What the system must do
- **Performance Requirements**: Speed, accuracy, efficiency
- **Environmental Requirements**: Temperature, humidity, vibration
- **Regulatory Requirements**: Safety, EMC, certifications
- **Cost Constraints**: Target BOM cost and volumes
- **Size Constraints**: Physical dimensions and weight
- **Interface Requirements**: Connectors, protocols, voltages
## Architecture Documentation
Describe your system architecture:
- **Block Diagram**: High-level system overview
- **Signal Flow**: How data/signals move through system
- **Power Distribution**: Power supply architecture
- **Interface Definitions**: External connections
- **Key Components**: Major ICs and their roles
- **Design Partitioning**: How functionality is divided
## Component Selection Notes
Document why components were chosen:
- **Requirements**: What the component needs to do
- **Alternatives Considered**: Other options evaluated
- **Selection Criteria**: Performance, cost, availability
- **Trade-offs**: Compromises made
- **Supplier Information**: Primary and alternate sources
- **Lifecycle Considerations**: Obsolescence risk
## Design Review Process
Document design reviews:
- **Review Objectives**: What was being reviewed
- **Participants**: Who attended the review
- **Findings**: Issues and concerns identified
- **Action Items**: Required changes and improvements
- **Sign-off**: Approval status and next steps
## Simulation and Analysis
Document analysis work:
- **Simulation Setup**: Tools and models used
- **Test Conditions**: Operating conditions simulated
- **Results**: Key findings and measurements
- **Interpretation**: What the results mean
- **Design Impact**: How results influenced design
- **Verification**: How simulation was validated
## Best Practices
- Write for future maintainers (including yourself)
- Include diagrams and schematics where helpful
- Reference specific component datasheets
- Document assumptions and limitations
- Update notes when design changes
- Use consistent formatting and terminology
- Include revision history for major changes

134
docs/user-manual/README.md Normal file
View File

@@ -0,0 +1,134 @@
# /docs/user-manual
End-user documentation and guides for your KiCad project.
## Purpose
This directory contains documentation for the end users of your finished product, including operation manuals, setup guides, and troubleshooting information.
## Document Types
- **User Manual**: Complete operating instructions
- **Quick Start Guide**: Getting started quickly
- **Installation Guide**: Setup and installation procedures
- **Troubleshooting Guide**: Common problems and solutions
- **Safety Information**: Important safety warnings
- **Specifications**: Technical specifications for users
- **FAQ**: Frequently asked questions
## Recommended Files
```
user-manual/
├── user-manual.md # Complete user manual
├── quick-start.md # Quick start guide
├── installation.md # Installation instructions
├── operation.md # Operating procedures
├── troubleshooting.md # Problem solving guide
├── specifications.md # Technical specifications
├── safety.md # Safety information
├── faq.md # Frequently asked questions
├── warranty.md # Warranty information
└── images/ # User manual images
├── setup-diagram.png
├── connection-diagram.png
├── led-indicators.jpg
└── troubleshooting-flowchart.png
```
## User Manual Structure
### Suggested Sections
1. **Introduction**
- Product overview
- Key features
- What's included in the box
2. **Safety Information**
- Important warnings
- Precautions
- Regulatory compliance
3. **Installation/Setup**
- Unpacking instructions
- Connection procedures
- Initial configuration
4. **Operation**
- Basic operation
- Advanced features
- User interface guide
5. **Troubleshooting**
- Common problems
- Error codes/indicators
- Solutions and fixes
6. **Specifications**
- Technical specifications
- Environmental conditions
- Compliance information
7. **Maintenance**
- Routine maintenance
- Cleaning procedures
- Storage recommendations
8. **Support**
- Contact information
- Warranty details
- Additional resources
## Quick Start Guide
Create a concise guide for immediate use:
- **Unboxing**: What's in the package
- **Connections**: Essential connections only
- **Power On**: First power-up procedure
- **Basic Test**: Simple functionality test
- **Next Steps**: Reference to full manual
## Installation Guide
Detailed setup instructions:
- **Prerequisites**: Required tools and materials
- **Environment**: Installation environment requirements
- **Step-by-Step**: Detailed installation procedure
- **Verification**: How to verify correct installation
- **Configuration**: Initial setup and configuration
## Troubleshooting Guide
Help users solve problems:
- **Symptom-Based**: Organize by what user observes
- **LED Indicators**: What different lights mean
- **Error Codes**: Explanation of error messages
- **Common Issues**: Most frequent problems
- **Advanced Diagnostics**: For technical users
- **When to Contact Support**: Escalation criteria
## Safety Information
Critical safety content:
- **Warnings**: Serious hazards that could cause injury
- **Cautions**: Situations that could damage equipment
- **Notes**: Important information for proper operation
- **Regulatory**: Compliance statements and certifications
- **Disposal**: Proper disposal and recycling information
## Writing Guidelines
- **User-Focused**: Write from user's perspective
- **Clear Language**: Avoid technical jargon
- **Step-by-Step**: Break complex procedures into steps
- **Visual Aids**: Include diagrams and photos
- **Consistent Terminology**: Use same terms throughout
- **Test Instructions**: Verify all procedures work
- **Version Control**: Keep documentation current with product
## Images and Diagrams
Include helpful visuals:
- **Connection diagrams**: How to connect cables
- **LED status indicators**: What lights mean
- **User interface**: Screenshots or photos of displays
- **Physical installation**: Mounting and positioning
- **Troubleshooting flowcharts**: Decision trees for problems
## Localization Considerations
If supporting multiple languages:
- **Text Translation**: Professional translation services
- **Cultural Adaptation**: Local customs and preferences
- **Units**: Metric vs imperial measurements
- **Regulatory**: Local compliance requirements
- **Support**: Local support contact information

View File

@@ -1,3 +1,19 @@
# /hardware
Electrical design files including schematics, PCB layout, BOM, and simulations.
Hardware documentation and support files for your KiCad project.
## Purpose
This directory contains hardware-related documentation and files that support your KiCad design:
- Bill of Materials (BOM)
- Component datasheets
- Circuit simulations
- Assembly documentation
## Directory Structure
- `bom/` - Bill of Materials in various formats
- `datasheets/` - Component datasheets and specifications
- `simulations/` - SPICE simulations and analysis
- `assembly/` - Assembly drawings and instructions
## Note
Your main KiCad design files (`.kicad_pro`, `.kicad_sch`, `.kicad_pcb`) should be in the project root directory, with KiCad-specific files organized in the `/kicad/` directory.

View File

@@ -0,0 +1,81 @@
# /hardware/assembly
Assembly drawings and instructions for your KiCad project.
## Purpose
This directory contains assembly-related documentation and drawings that help with the physical construction of your PCB:
- Assembly drawings
- Component placement guides
- Assembly instructions
- Pick and place references
## File Types
- **`.pdf`**: Assembly drawings and instructions
- **`.png/.jpg`**: Assembly photos and diagrams
- **`.txt/.md`**: Text-based assembly instructions
- **`.csv`**: Component placement data
## Assembly Drawings from KiCad
1. Open your PCB (`.kicad_pcb`)
2. Go to **File → Plot**
3. Select layers for assembly:
- F.Fab (Front Fabrication)
- B.Fab (Back Fabrication)
- F.SilkS (Front Silkscreen)
- B.SilkS (Back Silkscreen)
4. Enable "Plot footprint values" and "Plot reference designators"
5. Set output directory and plot
## Recommended Assembly Files
```
assembly/
├── ProjectName-Assembly-Top.pdf # Top side assembly drawing
├── ProjectName-Assembly-Bottom.pdf # Bottom side assembly drawing
├── ProjectName-Assembly-Guide.pdf # Complete assembly instructions
├── ProjectName-Placement.csv # Component placement coordinates
├── assembly-photos/
│ ├── step1-power-components.jpg
│ ├── step2-mcu-section.jpg
│ └── step3-connectors.jpg
└── instructions/
├── assembly-checklist.md
├── soldering-notes.md
└── testing-procedure.md
```
## Assembly Drawing Guidelines
- Include component reference designators
- Show component values where helpful
- Indicate polarity for polarized components
- Mark pin 1 locations for ICs
- Include assembly notes and warnings
- Use different colors for different component types
## Assembly Instructions Content
- **Component list**: What components go where
- **Assembly order**: Sequence for efficient assembly
- **Special procedures**: Unique assembly steps
- **Soldering notes**: Temperature, time, flux requirements
- **Testing points**: Where to probe during assembly
- **Troubleshooting**: Common issues and solutions
## Pick and Place Data
Generate component placement data for automated assembly:
1. In KiCad PCB editor, go to **File → Fabrication Outputs → Component Placement**
2. Configure format (CSV recommended)
3. Include position, rotation, and side information
4. Save to this directory
## Quality Control
- **Assembly checklist**: Step-by-step verification
- **Visual inspection**: What to look for
- **Electrical testing**: Basic functionality tests
- **Rework procedures**: How to fix common mistakes
## Best Practices
- Create assembly drawings at 1:1 scale when possible
- Use clear, high-contrast colors
- Include revision information
- Document any special tools required
- Provide multiple views for complex assemblies
- Include photos of completed assembly

View File

@@ -1,3 +1,69 @@
# /hardware/bom
Bill of Materials in CSV or spreadsheet format.
Bill of Materials for your KiCad project.
## Purpose
This directory contains Bill of Materials (BOM) files generated from your KiCad schematic and additional BOM-related documentation.
## File Types
- **`.csv`**: Comma-separated values format (most common)
- **`.xlsx`**: Excel spreadsheet format
- **`.xml`**: XML format for automated processing
- **`.html`**: HTML format for web viewing
- **`.pdf`**: PDF format for documentation
## Generating BOM from KiCad
1. Open your schematic (`.kicad_sch`)
2. Go to **Tools → Generate Bill of Materials**
3. Select or configure a BOM plugin
4. Set output directory to `hardware/bom/`
5. Click **Generate**
## Recommended BOM Formats
### Basic BOM (`ProjectName-BOM.csv`)
- Reference designators
- Values
- Footprints
- Quantities
- Manufacturer part numbers
- Supplier part numbers
### Extended BOM (`ProjectName-BOM-Extended.xlsx`)
- All basic information plus:
- Descriptions
- Manufacturer names
- Supplier links
- Pricing information
- Stock availability
- Alternative parts
## BOM Structure Example
```
Reference | Value | Footprint | Qty | MPN | Supplier | SPN
----------|------------|------------------|-----|---------------|----------|-------------
R1,R2,R3 | 10k | R_0603_1608Metric| 3 | RC0603FR-0710KL| Digi-Key | 311-10.0KHRCT-ND
C1,C2 | 100nF | C_0603_1608Metric| 2 | GRM188R71C104KA01D| Mouser | 81-GRM188R71C104KA1D
U1 | STM32F401 | LQFP-64_10x10mm | 1 | STM32F401RET6 | Digi-Key | 497-11767-ND
```
## BOM Management Best Practices
- Include manufacturer part numbers (MPN)
- Add supplier part numbers for purchasing
- Include alternative/substitute parts
- Document any special requirements
- Update BOM with design changes
- Version control BOM files
- Include pricing and availability data
## KiCad BOM Plugins
- **bom_csv_grouped_by_value**: Groups components by value
- **bom_csv_sorted_by_ref**: Sorts by reference designator
- **kibom**: Advanced BOM generator with many options
- **InteractiveHtmlBom**: Creates interactive HTML BOMs
## File Naming Convention
- `ProjectName-BOM.csv` - Basic BOM
- `ProjectName-BOM-v1.0.csv` - Versioned BOM
- `ProjectName-BOM-Extended.xlsx` - Detailed BOM with pricing
- `ProjectName-BOM-Assembly.csv` - Assembly-specific BOM

18
kicad/README.md Normal file
View File

@@ -0,0 +1,18 @@
# /kicad
KiCad-specific files and directories for your KiCad 9 project.
## Directory Structure
- `libraries/` - Custom KiCad libraries (symbols, footprints, 3D models)
- `schematics/` - Additional/hierarchical schematic files
- `gerbers/` - Generated Gerber files for review
- `plots/` - PDF plots and prints of schematics/PCBs
- `backups/` - KiCad automatic backups (excluded from git)
## Usage Notes
- Your main project files (`.kicad_pro`, `.kicad_sch`, `.kicad_pcb`) should be in the root directory
- Use relative paths when referencing custom libraries
- The `backups/` folder is automatically managed by KiCad and excluded from version control
- Generated files in `gerbers/` and `plots/` are for review - final production files go in `/manufacturing/`

64
kicad/gerbers/README.md Normal file
View File

@@ -0,0 +1,64 @@
# /kicad/gerbers
Generated Gerber files for design review and verification.
## Purpose
This directory contains Gerber files generated during the design process for:
- Design review and verification
- Quick prototyping
- Sharing with colleagues for feedback
- Design iteration tracking
**Note**: Final production Gerbers should be placed in `/manufacturing/gerbers/`
## File Types
- **`.gbr`**: Gerber files for copper layers
- **`.gbrjob`**: Gerber job file (KiCad 6+)
- **`.drl`**: Excellon drill files
- **`.pdf`**: PDF plots for review
## Generating Gerbers in KiCad
1. Open your PCB file (`.kicad_pcb`)
2. Go to **File → Fabrication Outputs → Gerbers**
3. Select output directory: `kicad/gerbers/`
4. Configure layers and options
5. Click **Plot**
6. Generate drill files: **File → Fabrication Outputs → Drill Files**
## Typical Layer Files
```
gerbers/
├── ProjectName-F_Cu.gbr # Front copper
├── ProjectName-B_Cu.gbr # Back copper
├── ProjectName-F_SilkS.gbr # Front silkscreen
├── ProjectName-B_SilkS.gbr # Back silkscreen
├── ProjectName-F_Mask.gbr # Front solder mask
├── ProjectName-B_Mask.gbr # Back solder mask
├── ProjectName-F_Paste.gbr # Front solder paste
├── ProjectName-B_Paste.gbr # Back solder paste
├── ProjectName-Edge_Cuts.gbr # Board outline
├── ProjectName.drl # Drill file
├── ProjectName-NPTH.drl # Non-plated holes
└── ProjectName-job.gbrjob # Job file
```
## Review Checklist
- [ ] All layers present and correct
- [ ] Board outline properly defined
- [ ] Drill files include all holes
- [ ] Silkscreen readable and not overlapping pads
- [ ] Solder mask openings correct
- [ ] Component references visible
- [ ] No missing copper or shorts
## Gerber Viewers
- **KiCad Gerber Viewer**: Built into KiCad
- **gerbv**: Open source Gerber viewer
- **Online viewers**: PCBWay, JLCPCB gerber viewers
- **Manufacturer tools**: Most PCB fabs provide online viewers
## Version Control
- Include gerbers in git for design history
- Tag important milestones
- Use descriptive commit messages
- Consider file size when committing frequently

View File

@@ -0,0 +1,61 @@
# /kicad/libraries/3dmodels
Custom 3D models for your KiCad project footprints.
## File Formats
- **STEP files (`.step`)**: Preferred for mechanical accuracy and CAD integration
- **VRML files (`.wrl`)**: Legacy format, still supported by KiCad 3D viewer
- **WRL files (`.wrl`)**: Alternative VRML extension
## Naming Convention
- Use descriptive names matching your footprints
- Examples:
- `USB-C_Receptacle.step`
- `STM32F4_LQFP64.step`
- `Header_2x10_2.54mm.wrl`
## Model Guidelines
- **Scale**: Ensure models are in millimeters (KiCad's native unit)
- **Origin**: Position the model origin to match the footprint's origin
- **Orientation**: Align the model with the footprint's orientation
- **Detail Level**: Balance detail with file size for performance
## File Organization
```
3dmodels/
├── connectors/
│ ├── USB-C_Receptacle.step
│ ├── Header_2x10_2.54mm.step
│ └── Terminal_Block_3pin.step
├── mcu/
│ ├── STM32F4_LQFP64.step
│ └── ESP32_Module.step
├── sensors/
│ ├── BME280_LGA8.step
│ └── MPU6050_QFN24.step
└── passive/
├── Resistor_0603.step
├── Capacitor_0805.step
└── LED_0603.step
```
## Associating Models with Footprints
1. Open footprint in KiCad Footprint Editor
2. Go to **Footprint Properties**
3. Click **3D Settings** tab
4. Add 3D model path (use relative paths)
5. Adjust offset, rotation, and scale if needed
## Model Sources
- **Manufacturer websites**: Often provide STEP models
- **Component distributors**: Digi-Key, Mouser, etc.
- **3D model libraries**: GrabCAD, 3D ContentCentral
- **KiCad official libraries**: For standard components
- **Custom modeling**: Create your own in CAD software
## Best Practices
- Use relative paths: `${KIPRJMOD}/kicad/libraries/3dmodels/`
- Keep file sizes reasonable (< 1MB per model when possible)
- Test models in KiCad 3D viewer before finalizing
- Document model sources and modifications
- Version control important custom models

41
kicad/libraries/README.md Normal file
View File

@@ -0,0 +1,41 @@
# /kicad/libraries
Custom KiCad libraries for your project.
## Directory Structure
- `symbols/` - Custom schematic symbols (`.kicad_sym` files)
- `footprints/` - Custom footprints (`.pretty` directories)
- `3dmodels/` - Custom 3D models (`.step`, `.wrl` files)
## Usage Guidelines
### Symbols (`symbols/`)
- Store custom schematic symbols as `.kicad_sym` files
- Use descriptive names (e.g., `MyProject_MCU.kicad_sym`)
- Include symbol properties and documentation
### Footprints (`footprints/`)
- Each footprint library is a `.pretty` directory
- Store related footprints together (e.g., `MyProject_Connectors.pretty/`)
- Include courtyard and fabrication layers
### 3D Models (`3dmodels/`)
- Store STEP files (`.step`) for mechanical accuracy
- Store VRML files (`.wrl`) for KiCad 3D viewer compatibility
- Use consistent naming with footprints
## Library Configuration
1. In KiCad, go to **Preferences → Manage Symbol Libraries**
2. Add your custom symbol libraries from `symbols/`
3. Go to **Preferences → Manage Footprint Libraries**
4. Add your custom footprint libraries from `footprints/`
5. Configure 3D model paths to point to `3dmodels/`
## Best Practices
- Use relative paths in your project settings
- Document custom components in `/hardware/datasheets/`
- Version control all custom libraries
- Follow KiCad naming conventions

View File

@@ -0,0 +1,54 @@
# /kicad/libraries/footprints
Custom footprints for your KiCad project.
## File Format
- Footprints are stored in `.pretty` directories
- Each `.pretty` directory is a footprint library
- Individual footprints are `.kicad_mod` files within the `.pretty` directory
## Naming Convention
- Library directories: `ProjectName_ComponentType.pretty`
- Footprint files: `ComponentName.kicad_mod`
- Examples:
- `MyProject_Connectors.pretty/`
- `USB-C_Receptacle.kicad_mod`
- `Header_2x10_2.54mm.kicad_mod`
- `MyProject_MCU.pretty/`
- `STM32F4_LQFP64.kicad_mod`
## Footprint Creation Guidelines
- Include proper pad sizes and drill holes
- Add courtyard layer (F.CrtYd/B.CrtYd) with 0.25mm clearance minimum
- Include fabrication layer (F.Fab/B.Fab) with component outline
- Add silkscreen layer (F.SilkS/B.SilkS) for component identification
- Set reference designator and value positions
- Include 3D model associations when available
## Layer Guidelines
- **F.Cu/B.Cu**: Copper pads and traces
- **F.SilkS/B.SilkS**: Silkscreen printing
- **F.Fab/B.Fab**: Fabrication layer (component outline)
- **F.CrtYd/B.CrtYd**: Courtyard (component keepout area)
- **F.Mask/B.Mask**: Solder mask openings
## Adding to Project
1. Open KiCad Project Manager
2. Go to **Preferences → Manage Footprint Libraries**
3. Click **Add** and browse to this directory
4. Select your `.pretty` directory
5. Set library nickname and path (use relative paths)
## Example Library Structure
```
footprints/
├── MyProject_Connectors.pretty/
│ ├── USB-C_Receptacle.kicad_mod
│ ├── Header_2x10_2.54mm.kicad_mod
│ └── Terminal_Block_3pin.kicad_mod
├── MyProject_MCU.pretty/
│ ├── STM32F4_LQFP64.kicad_mod
│ └── ESP32_Module.kicad_mod
└── MyProject_Sensors.pretty/
├── BME280_LGA8.kicad_mod
└── MPU6050_QFN24.kicad_mod

View File

@@ -0,0 +1,36 @@
# /kicad/libraries/symbols
Custom schematic symbols for your KiCad project.
## File Format
- Store symbols as `.kicad_sym` files
- Each file can contain multiple related symbols
## Naming Convention
- Use descriptive names: `ProjectName_ComponentType.kicad_sym`
- Examples:
- `MyProject_MCU.kicad_sym`
- `MyProject_Connectors.kicad_sym`
- `MyProject_PowerManagement.kicad_sym`
## Symbol Creation Guidelines
- Include all necessary pins with proper electrical types
- Add symbol properties (Reference, Value, Footprint, Datasheet)
- Use standard KiCad symbol conventions
- Include documentation strings
- Set appropriate pin numbers and names
## Adding to Project
1. Open KiCad Project Manager
2. Go to **Preferences → Manage Symbol Libraries**
3. Click **Add** and browse to this directory
4. Select your `.kicad_sym` file
5. Set library nickname and path (use relative paths)
## Example Library Structure
```
symbols/
├── MyProject_MCU.kicad_sym # Microcontrollers
├── MyProject_Connectors.kicad_sym # Custom connectors
├── MyProject_Sensors.kicad_sym # Sensor symbols
└── MyProject_Power.kicad_sym # Power management ICs

89
kicad/plots/README.md Normal file
View File

@@ -0,0 +1,89 @@
# /kicad/plots
PDF plots and prints of schematics and PCB layouts.
## Purpose
This directory contains PDF plots generated from KiCad for:
- Design documentation
- Design reviews and approvals
- Printing for manual assembly
- Sharing with non-KiCad users
- Archive documentation
## File Types
- **`.pdf`**: PDF plots of schematics and PCB layers
- **`.svg`**: Vector graphics (optional alternative format)
- **`.ps`**: PostScript files (legacy format)
## Generating Plots in KiCad
### Schematic Plots
1. Open your schematic (`.kicad_sch`)
2. Go to **File → Plot**
3. Select output directory: `kicad/plots/`
4. Choose format (PDF recommended)
5. Configure options and click **Plot**
### PCB Plots
1. Open your PCB (`.kicad_pcb`)
2. Go to **File → Plot**
3. Select output directory: `kicad/plots/`
4. Choose layers to plot
5. Select format (PDF recommended)
6. Click **Plot**
## Recommended Plot Files
```
plots/
├── schematic/
│ ├── ProjectName-Schematic.pdf # Complete schematic
│ ├── ProjectName-PowerSupply.pdf # Power supply sheet
│ └── ProjectName-MCU.pdf # MCU sheet
├── pcb/
│ ├── ProjectName-Assembly-Top.pdf # Top assembly drawing
│ ├── ProjectName-Assembly-Bottom.pdf # Bottom assembly drawing
│ ├── ProjectName-Copper-F.pdf # Front copper layer
│ ├── ProjectName-Copper-B.pdf # Back copper layer
│ ├── ProjectName-Silkscreen-F.pdf # Front silkscreen
│ └── ProjectName-Silkscreen-B.pdf # Back silkscreen
└── combined/
├── ProjectName-Complete.pdf # All sheets in one file
└── ProjectName-Assembly.pdf # Assembly drawings only
```
## Plot Settings Recommendations
### Schematic Plots
- **Format**: PDF
- **Page Size**: A4 or Letter
- **Plot Mode**: Color or Black and White
- **Plot Frame**: Include for documentation
- **Plot All Pages**: For multi-sheet designs
### PCB Plots
- **Format**: PDF
- **Layers**: Select relevant layers
- **Plot Mode**: Color recommended
- **Drill Marks**: Include for assembly
- **Plot Frame**: Include reference information
- **Scale**: 1:1 for assembly drawings
## Usage Guidelines
- Generate plots at major design milestones
- Include version information in plot titles
- Use consistent naming conventions
- Create combined PDFs for easy sharing
- Include assembly drawings for manufacturing
## Print Settings for Assembly
- **Scale**: 1:1 (actual size)
- **Paper**: A4 or larger
- **Quality**: High resolution
- **Color**: Recommended for clarity
- **Margins**: Minimal for maximum size
## Version Control
- Commit plots with design changes
- Tag releases with complete plot sets
- Use descriptive commit messages
- Consider file sizes for frequent commits

View File

@@ -0,0 +1,45 @@
# /kicad/schematics
Additional and hierarchical schematic files for your KiCad project.
## Purpose
This directory contains supplementary schematic files that are not the main project schematic:
- Hierarchical sheets (`.kicad_sch` files)
- Alternative design versions
- Modular circuit blocks
- Test circuits
## File Types
- **`.kicad_sch`**: KiCad 9 schematic files
- **`.kicad_sch-bak`**: Automatic backup files (excluded from git)
## Hierarchical Design
When using hierarchical sheets in KiCad:
1. Create hierarchical sheet symbols in your main schematic
2. Store the actual sheet files in this directory
3. Use relative paths when linking sheets
## Naming Convention
- Use descriptive names for hierarchical sheets
- Examples:
- `power_supply.kicad_sch`
- `mcu_core.kicad_sch`
- `sensor_interface.kicad_sch`
- `communication.kicad_sch`
## Example Structure
```
schematics/
├── power_supply.kicad_sch # Power management circuit
├── mcu_core.kicad_sch # Microcontroller and core components
├── sensor_interface.kicad_sch # Sensor connections and conditioning
├── communication.kicad_sch # Communication interfaces (UART, SPI, I2C)
└── test_circuits.kicad_sch # Test points and debug circuits
```
## Best Practices
- Keep hierarchical sheets focused on specific functions
- Use consistent naming conventions
- Document sheet purposes in the main schematic
- Use relative paths for portability
- Include proper sheet titles and revision information

View File

@@ -1,3 +1,63 @@
# /manufacturing
Production and assembly files.
Production-ready files for PCB fabrication and assembly.
## Purpose
This directory contains final, production-ready files for manufacturing your KiCad project:
- Final Gerber files for PCB fabrication
- Drill files for hole drilling
- Pick and place files for automated assembly
- Assembly instructions for production
## Directory Structure
- `gerbers/` - Final Gerber files for PCB fabrication
- `drill/` - Drill files and hole specifications
- `pick-and-place/` - Pick and place files for automated assembly
- `assembly/` - Production assembly instructions and documentation
## Manufacturing Workflow
1. **Design Complete**: Finalize your KiCad design
2. **Generate Files**: Create production files from KiCad
3. **Review**: Verify all files using Gerber viewers
4. **Package**: Prepare files for manufacturer submission
5. **Submit**: Send to PCB fabricator and/or assembler
## File Generation from KiCad
### Gerber Files
1. Open PCB (`.kicad_pcb`)
2. **File → Fabrication Outputs → Gerbers**
3. Select all required layers
4. Set output to `manufacturing/gerbers/`
5. Generate files
### Drill Files
1. In Gerber plot dialog, click **Generate Drill Files**
2. Set output to `manufacturing/drill/`
3. Configure drill file format
4. Generate files
### Pick and Place
1. **File → Fabrication Outputs → Component Placement**
2. Set output to `manufacturing/pick-and-place/`
3. Configure format (CSV recommended)
4. Generate files
## Quality Assurance
- Review all files with Gerber viewer
- Verify drill file completeness
- Check pick and place coordinates
- Validate BOM against placement files
- Test with manufacturer's online tools
## Manufacturer Submission
- Package all files in organized ZIP
- Include clear documentation
- Specify PCB specifications (thickness, color, finish)
- Provide assembly requirements
- Include contact information for questions
## Version Control
- Tag releases with manufacturing file sets
- Include version numbers in file names
- Document any changes from previous versions
- Maintain traceability to design files

View File

@@ -0,0 +1,99 @@
# /manufacturing/drill
Drill files and hole specifications for PCB fabrication.
## Purpose
This directory contains drill files that specify the location, size, and type of all holes in your PCB. These files are essential for PCB manufacturing and must be included with your Gerber files.
## File Types
- **`.drl`**: Excellon drill files (standard format)
- **`.xln`**: Alternative Excellon format
- **`.txt`**: Drill report with hole sizes and counts
- **`.pdf`**: Drill drawing for visual reference
## Standard Drill Files
```
drill/
├── ProjectName.drl # Main drill file (PTH + NPTH)
├── ProjectName-PTH.drl # Plated through holes only
├── ProjectName-NPTH.drl # Non-plated through holes only
├── ProjectName-drill_report.txt # Drill sizes and quantities
└── ProjectName-drill_map.pdf # Visual drill map
```
## Generating Drill Files from KiCad
1. Open PCB (`.kicad_pcb`)
2. **File → Fabrication Outputs → Gerbers**
3. Click **Generate Drill Files**
4. Configure settings:
- **Output directory**: `manufacturing/drill/`
- **Drill file format**: Excellon
- **Drill units**: Millimeters (preferred)
- **Zeros format**: Suppress leading zeros
- **Drill origin**: Absolute coordinates
5. Generate files
## Drill File Settings
### Recommended Settings
- **Format**: Excellon
- **Units**: Millimeters
- **Coordinate format**: 3.3 (mm) or 2.4 (inches)
- **Zero suppression**: Leading zeros suppressed
- **Drill origin**: Absolute (0,0 at board origin)
### File Options
- **PTH and NPTH in single file**: Most common
- **Separate PTH/NPTH files**: Some manufacturers prefer
- **Generate drill report**: Always recommended
- **Generate drill map**: Helpful for verification
## Drill Sizes and Types
### Common Drill Sizes
- **0.2mm - 0.3mm**: Vias and small component holes
- **0.6mm - 0.8mm**: Standard component leads
- **1.0mm - 1.2mm**: Larger component holes
- **2.0mm+**: Mounting holes and connectors
### Hole Types
- **PTH (Plated Through Holes)**: Electrical connections
- **NPTH (Non-Plated Through Holes)**: Mounting holes, mechanical
- **Via holes**: Layer-to-layer connections
- **Component holes**: Through-hole component mounting
## Quality Control
- [ ] All holes present in drill file
- [ ] Drill sizes match component requirements
- [ ] PTH/NPTH classification correct
- [ ] Drill report shows reasonable hole counts
- [ ] No duplicate or overlapping holes
- [ ] Drill sizes within manufacturer capabilities
## Manufacturer Specifications
Check with your PCB manufacturer for:
- **Minimum drill size**: Typically 0.15mm - 0.2mm
- **Maximum drill size**: Usually 6mm+
- **Drill tolerance**: Typically ±0.05mm
- **Aspect ratio limits**: Depth vs. diameter ratio
- **Via specifications**: Minimum via size and annular ring
## Common Issues
- **Missing holes**: Check component footprints
- **Wrong drill sizes**: Verify component specifications
- **Incorrect hole types**: PTH vs NPTH classification
- **Overlapping holes**: Check component placement
- **Out of tolerance**: Verify manufacturer capabilities
## Drill Report Contents
The drill report typically includes:
- Total hole count by size
- PTH vs NPTH breakdown
- Drill tool assignments
- Coordinate listings
- File generation settings
## Integration with Gerbers
Drill files must be coordinated with Gerber files:
- Same coordinate system and origin
- Matching hole locations with pads
- Consistent units (mm or inches)
- Same board outline reference

View File

@@ -0,0 +1,87 @@
# /manufacturing/gerbers
Final production Gerber files for PCB fabrication.
## Purpose
This directory contains the final, production-ready Gerber files that will be sent to your PCB manufacturer. These files define all the copper layers, solder mask, silkscreen, and board outline.
## File Types
- **`.gbr`**: Gerber files for each PCB layer
- **`.gbrjob`**: Gerber job file (KiCad 6+) with layer stack information
- **`.zip`**: Packaged files ready for manufacturer submission
## Standard Gerber Files
```
gerbers/
├── ProjectName-F_Cu.gbr # Front copper layer
├── ProjectName-B_Cu.gbr # Back copper layer
├── ProjectName-In1_Cu.gbr # Inner layer 1 (4+ layer boards)
├── ProjectName-In2_Cu.gbr # Inner layer 2 (4+ layer boards)
├── ProjectName-F_SilkS.gbr # Front silkscreen
├── ProjectName-B_SilkS.gbr # Back silkscreen
├── ProjectName-F_Mask.gbr # Front solder mask
├── ProjectName-B_Mask.gbr # Back solder mask
├── ProjectName-F_Paste.gbr # Front solder paste (SMT)
├── ProjectName-B_Paste.gbr # Back solder paste (SMT)
├── ProjectName-Edge_Cuts.gbr # Board outline/edge cuts
├── ProjectName-job.gbrjob # Gerber job file
└── ProjectName-Gerbers-v1.0.zip # Packaged for submission
```
## Generating Production Gerbers
1. Open your final PCB design (`.kicad_pcb`)
2. **File → Fabrication Outputs → Gerbers**
3. Configure settings:
- **Output directory**: `manufacturing/gerbers/`
- **Plot format**: Gerber
- **Include layers**: All copper, mask, silk, paste, edge cuts
- **Options**: Check "Use Protel filename extensions" if required
4. Click **Plot**
5. Click **Generate Drill Files** (saves to `/manufacturing/drill/`)
## Quality Control Checklist
- [ ] All required layers present
- [ ] Board outline properly defined
- [ ] No missing copper connections
- [ ] Silkscreen doesn't overlap pads
- [ ] Solder mask openings correct
- [ ] Component references visible and readable
- [ ] Drill holes align with pads
- [ ] File sizes reasonable (not empty or corrupted)
## Manufacturer Requirements
Different manufacturers may require specific settings:
- **File format**: RS-274X (standard)
- **Units**: Millimeters (preferred) or inches
- **Zero suppression**: Leading zeros suppressed
- **Coordinate format**: 3.6 (mm) or 2.5 (inches)
- **Aperture format**: Embedded apertures (standard)
## Pre-submission Verification
1. **Gerber Viewer**: Use KiCad Gerber Viewer or online tools
2. **Layer Stack**: Verify correct layer order
3. **Drill Alignment**: Check drill holes align with pads
4. **Dimensions**: Verify board size and hole sizes
5. **Manufacturer Check**: Use manufacturer's online Gerber viewer
## Common Issues to Avoid
- Missing edge cuts layer
- Incorrect drill file format
- Silkscreen over pads
- Missing solder mask openings
- Incorrect layer naming
- Empty or corrupted files
## Packaging for Submission
Create a ZIP file containing:
- All Gerber files (`.gbr`)
- Gerber job file (`.gbrjob`)
- Drill files (from `/manufacturing/drill/`)
- README with specifications
- BOM (from `/hardware/bom/`)
## File Naming Convention
Use consistent naming that matches your project:
- `ProjectName-LayerName.gbr`
- `ProjectName-v1.0-Gerbers.zip`
- Include version numbers for tracking

View File

@@ -0,0 +1,119 @@
# /manufacturing/pick-and-place
Pick and place files for automated PCB assembly.
## Purpose
This directory contains pick and place files that specify the exact position, rotation, and side of each component for automated assembly machines. These files are essential for SMT (Surface Mount Technology) assembly.
## File Types
- **`.csv`**: Component placement data (most common)
- **`.txt`**: Alternative text format
- **`.pos`**: Position file format
- **`.cpl`**: Component placement list
## Standard Pick and Place Files
```
pick-and-place/
├── ProjectName-all-pos.csv # All components (top + bottom)
├── ProjectName-top-pos.csv # Top side components only
├── ProjectName-bottom-pos.csv # Bottom side components only
├── ProjectName-centroid.csv # Component centroids
└── assembly-notes.txt # Special assembly instructions
```
## Generating Pick and Place Files from KiCad
1. Open PCB (`.kicad_pcb`)
2. **File → Fabrication Outputs → Component Placement (.pos)**
3. Configure settings:
- **Output directory**: `manufacturing/pick-and-place/`
- **File format**: CSV
- **Units**: Millimeters
- **Files**: Separate files for top and bottom
- **Include**: Only SMD components (exclude through-hole)
4. Generate files
## File Format and Contents
### Standard CSV Format
```csv
Ref,Val,Package,PosX,PosY,Rot,Side
C1,100nF,C_0603_1608Metric,25.4,15.24,0,top
R1,10k,R_0603_1608Metric,30.48,15.24,90,top
U1,STM32F401,LQFP-64_10x10mm_P0.5mm,50.8,25.4,0,top
```
### Column Descriptions
- **Ref**: Component reference designator (C1, R1, U1, etc.)
- **Val**: Component value (100nF, 10k, STM32F401, etc.)
- **Package**: Footprint/package name
- **PosX/PosY**: X,Y coordinates in mm (board origin)
- **Rot**: Rotation angle in degrees (0-360)
- **Side**: Component side (top/bottom)
## Coordinate System
- **Origin**: Typically bottom-left corner of PCB
- **Units**: Millimeters (preferred) or inches
- **X-axis**: Left to right (positive direction)
- **Y-axis**: Bottom to top (positive direction)
- **Rotation**: 0° = component oriented as designed
## Component Rotation Standards
### Standard Orientations
- **0°**: Component as placed in footprint
- **90°**: Rotated 90° counterclockwise
- **180°**: Rotated 180°
- **270°**: Rotated 270° counterclockwise (or -90°)
### Common Component Orientations
- **Resistors/Capacitors**: Usually 0° or 90°
- **ICs**: Pin 1 indicator position matters
- **Connectors**: Orientation critical for mating
- **Polarized components**: Polarity marking alignment
## Assembly Machine Requirements
Different assembly machines may require:
- **Coordinate format**: Decimal places and units
- **Rotation format**: 0-360° vs ±180°
- **Origin location**: Corner vs center of board
- **File format**: CSV, text, or proprietary formats
- **Component data**: Additional fields like height, type
## Quality Control Checklist
- [ ] All SMD components included
- [ ] Through-hole components excluded (unless specified)
- [ ] Coordinates within board boundaries
- [ ] Rotation values reasonable (0-360°)
- [ ] Component values match BOM
- [ ] Package names match footprints
- [ ] Top/bottom side assignment correct
- [ ] No duplicate reference designators
## Assembly Notes
Document special requirements:
- **Component orientation**: Critical alignments
- **Assembly sequence**: Order of placement
- **Special handling**: ESD sensitive components
- **Rework access**: Components that may need replacement
- **Test points**: Accessible after assembly
- **Fiducials**: Reference points for machine alignment
## Fiducial Markers
Include fiducial information for machine alignment:
- **Global fiducials**: Board-level alignment (minimum 3)
- **Local fiducials**: Fine-pitch component alignment
- **Fiducial coordinates**: Precise X,Y positions
- **Fiducial size**: Typically 1mm diameter
## Integration with Other Files
Pick and place files work with:
- **BOM**: Component specifications and quantities
- **Gerbers**: PCB layer information
- **Assembly drawings**: Visual component placement
- **Paste stencil**: Solder paste application
## Manufacturer Communication
Provide to your assembly house:
- Pick and place files
- Component orientation requirements
- Special assembly instructions
- Acceptable component substitutions
- Quality requirements and testing