KiCad: Generate and finalize PCB file
This commit is contained in:
parent
f438b19352
commit
b137f90ee0
|
|
@ -22,3 +22,15 @@ dist
|
|||
|
||||
# Ergogen
|
||||
/ergogen/output
|
||||
|
||||
# Kicad temporary files
|
||||
/kicad/*-backups/
|
||||
*.bak
|
||||
*.kicad_pcb-bak
|
||||
*.kicad_sch-bak
|
||||
*.kicad_prl
|
||||
*-save.pro
|
||||
*-save.kicad_pcb
|
||||
~*.lck
|
||||
_autosave-*
|
||||
fp-info-cache
|
||||
|
|
|
|||
81
README.md
81
README.md
|
|
@ -4,17 +4,92 @@ Custom ergonomic mechanical keyboard with low-profile (Choc) switches.
|
|||
|
||||
## Repository structure
|
||||
|
||||
- `/layouts`: Keyboard layouts created with the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com)
|
||||
- `/layouts`: Keyboard layouts created with the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com)
|
||||
- `/ergogen`: [Ergogen](https://docs.ergogen.xyz/) files to generate outlines, cases and PCBs
|
||||
- `/kicad`: KiCad PCBs and generated files
|
||||
- `/3d_prints`: 3D models for the enclosure
|
||||
- `/qmk_keyboards`: [QMK](https://qmk.fm/) keyboard files to compile and flash the QMK firmware
|
||||
|
||||
## How-to
|
||||
|
||||
### Generating the PCB
|
||||
|
||||
The KiCad PCB files are generated using Ergogen. Then they need to be manually routed and finalized in KiCad before
|
||||
they can be exported as Gerber files and send to a PCB manufacturer.
|
||||
|
||||
#### Generating KiCad files with Ergogen
|
||||
|
||||
To generate the KiCad PCB file with Ergogen, first install Ergogen using npm: `npm install`.
|
||||
|
||||
Then, run `npm run ergogen`. You can find the KiCad file in `ergogen/output/pcbs/eepyboard.kicad_pcb`.
|
||||
Copy the file to `kicad/eepyboard.kicad_pcb`.
|
||||
|
||||
#### Routing and finalizing the KiCad files
|
||||
|
||||
Open the file in KiCad (create a project if non exists yet). Finalize the PCB in KiCad.
|
||||
|
||||
1. Run the Design Rules Checker. Check the errors. Most of them can be ignored/excluded.
|
||||
- All "Footprint not found in libraries" can be ignored completely. This is due to how Ergogen generates the PCB.
|
||||
2. Add VCC and GND planes.
|
||||
- Menu: `File -> Board Setup`
|
||||
- On "Physical Stackup", change the copper layer number to 4.
|
||||
- On "Board Editor Layers", change the type of `In1.Cu` and `In2.Cu` to "power plane".
|
||||
- NOTE: `In1.Cu` will be the VCC plane, `In2.Cu` will be a GND plane.
|
||||
3. Add filled zones to the VCC and GND planes.
|
||||
- Select the `In1.Cu` layer.
|
||||
- Use the "Add a filled zone" tool and draw a rectangle that contains the entire board. Assign the zone to VCC.
|
||||
- Repeat the same process for the `In2.Cu` layer and assign the zone to GND.
|
||||
- The zones don't need to be filled just yet.
|
||||
4. Add another filled zone on the `B.Cu` layer and assign it to GND.
|
||||
5. Route all signal traces (no VCC or GND yet). Recommended order:
|
||||
- Matrix rows (on `B.Cu`)
|
||||
- Matrix columns (with vias on `F.Cu`)
|
||||
- NeoPixel data pins
|
||||
- Connect everything to the MCU.
|
||||
6. Route VCC traces.
|
||||
- Connect the VCC traces between the NeoPixel chips and the capacitors with a 0.750 mm track.
|
||||
- Place free-standing vias (Ctrl+Shift+V) in the middle of the just created VCC traces.
|
||||
7. Route GND traces.
|
||||
- Draw short GND traces with a 0.750 mm track and a via at the end next to the GND pads of the NeoPixel chips.
|
||||
8. Fill all zones by pressing B. Make sure that all nets are routed.
|
||||
9. Run the Design Rules Checker and make sure there are no (relevant) violations.
|
||||
|
||||
#### Export Gerber files
|
||||
|
||||
Now you can generate the gerber, drill and map files.
|
||||
|
||||
1. Generate Gerber files.
|
||||
- Menu: `File -> Fabrication Output -> Gerbers`
|
||||
- Select plot format `Gerber`.
|
||||
- Set output directory to `gerber/rev1/` (adjust for current revision).
|
||||
- Set coordinate format to `4.6, unit mm`.
|
||||
- Click `Plot` to generate files.
|
||||
2. Generate drill and map files.
|
||||
- In the previous dialog, click `Generate Drill Files...`.
|
||||
- Set drill file format to `Excellon`.
|
||||
- Set drill units to millimeters.
|
||||
- Set same output directory as above.
|
||||
- Click `Generate Drill File`, then `Generate Map File`
|
||||
3. Create zip file with all generated files from `kicad/gerber/{REVISION}`.
|
||||
- No subdirectories, only files.
|
||||
- Ideally name the file `eepyboard_{REVISION}.zip`.
|
||||
4. Upload zip file to manufacturer and make sure everything is correct.
|
||||
5. Add all generated files to version control (the zip should be on gitignore).
|
||||
|
||||
### Compile and flash QMK firmware
|
||||
|
||||
TODO: Add this when building the firmware
|
||||
|
||||
## Used software
|
||||
|
||||
- [Keyboard Layout Editor](http://www.keyboard-layout-editor.com)
|
||||
- [Ergogen](https://docs.ergogen.xyz/), [unofficial Ergogen web UI](https://ergogen.cache.works/)
|
||||
- [Ergogen](https://docs.ergogen.xyz/), [unofficial Ergogen web UI](https://ergogen.ceoloide.com/)
|
||||
- [KiCad](https://www.kicad.org/)
|
||||
- [FreeCAD](https://www.freecad.org/)
|
||||
- [Onshape](https://www.onshape.com/)
|
||||
- [UltiMaker Cura](https://ultimaker.com/software/ultimaker-cura/)
|
||||
- [QMK](https://qmk.fm/)
|
||||
|
||||
## Resources
|
||||
|
||||
- [FlatFootFox's Ergogen tutorial](https://flatfootfox.com/ergogen-introduction/)
|
||||
- [QMK documentation](https://docs.qmk.fm/)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue