Files
b4l-project-template/README.md
grabowski 3f5b4c7e97 Add comprehensive file naming and versioning standards
- Add FILE-NAMING-AND-VERSIONING.md with complete Semantic Versioning 2.0.0 and Harvard Data Management file naming conventions
- Update README.md with file naming standards and semantic versioning workflow
- Update KICAD-PROJECT-TEMPLATE.md with comprehensive file naming examples and git workflow
- Update hardware/bom/README.md with standardized BOM file naming conventions
- Update manufacturing/gerbers/README.md with production-ready Gerber file naming
- Update mechanical/stl/README.md with 3D printing file naming including material suffixes
- Implement YYYY-MM-DD date format and hyphen-separated naming throughout
- Add versioning strategies for hardware, software, and documentation components
- Include git tagging strategy and release management guidelines
- Provide comprehensive examples for all file types and directories
2025-08-04 14:46:05 +07:00

224 lines
7.5 KiB
Markdown

# B4L KiCad 9 Project Template
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.
---
## 🚀 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
```
### 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
```
---
## 📁 KiCad 9 Optimized Folder Structure
```
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)
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
hardware/ # Hardware documentation and files
├── bom/ # Bill of Materials
├── datasheets/ # Component datasheets
├── simulations/ # SPICE simulations
└── assembly/ # Assembly drawings and instructions
manufacturing/ # Production files
├── gerbers/ # Final Gerber files for production
├── drill/ # Drill files
├── pick-and-place/ # Pick and place files
└── assembly/ # Assembly instructions
mechanical/ # Mechanical design files
├── enclosure/ # Case/enclosure designs
├── cad/ # 3D CAD files
├── drawings/ # 2D mechanical drawings
└── stl/ # 3D printable files
firmware/ # Embedded firmware (if applicable)
├── src/ # Source code
├── include/ # Header files
└── lib/ # Libraries
software/ # PC software and tools
├── gui/ # GUI applications
└── scripts/ # Automation scripts
docs/ # Project documentation
├── images/ # Documentation images
├── user-manual/ # User documentation
└── design-notes/ # Design documentation
tests/ # Testing files
├── hardware/ # Hardware test procedures
├── reports/ # Test reports
└── validation/ # Validation documents
tools/ # Development tools
ci/ # Continuous Integration
certs/ # Certifications and compliance
meta/ # Project 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 and Versioning
This project follows **Semantic Versioning 2.0.0** and **Harvard Data Management file naming conventions**. See [FILE-NAMING-AND-VERSIONING.md](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)
- **Examples**: `my-project_bom_v1.2.0_2024-08-04.csv`
### Initial Setup
```bash
# After creating your KiCad project
git add .
git commit -m "Add KiCad project files v1.0.0"
git tag -a v1.0.0 -m "Initial release - functional prototype"
git push
git push --tags
```
### Regular Development
```bash
# After making changes
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
```
### Release Preparation
```bash
# Generate manufacturing files with version numbers
# Update documentation with new version
# Tag release following semantic versioning
git tag -a v2.0.0 -m "Major PCB redesign with new connector layout"
git push --tags
```
### Version Strategy
- **MAJOR**: PCB layout changes, connector changes, mechanical incompatibilities
- **MINOR**: Component changes, new features, firmware updates
- **PATCH**: Documentation updates, BOM corrections, minor fixes
---
## 📝 License
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
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
---
## 📡 About Build4Life
**Build4Life** creates long-lasting, open hardware systems.
Website: [https://buildfor.life](https://buildfor.life)