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:
231
README.md
231
README.md
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user