Inventree

This commit is contained in:
Andrew Collins
2025-01-16 07:12:50 +00:00
parent ea94aadb13
commit 51cacff367
19 changed files with 1434 additions and 550 deletions

View File

@@ -1,42 +1,43 @@
# Dependencies
- [Kicad 6](https://www.kicad.org/)
- [Kicad 8](https://www.kicad.org/)
- [git-lfs](https://git-lfs.com/)
- [kimelon](https://gitlab.com/Micromelon/education/hardware/kimelon)
# Setup
1. Fork or clone and change origin remote-url.
2. Checkout dev (branch off dev if desired)
2. Rename/move files to match project name (make sure to update for [CI](#CI) too)
1. From an empty directory: `kimelon config --init --remote <REMOTE_URL>`; if git is already setup and pointing to the remote then drop `--remote`
2. Create a kicad project, based off of a template found in this directory
3. Lock the file you want to edit, see [Locking](#Locking)
4. Start editing.
4. Start editing
# Updating
`kimelon config`
# Locking
All kicad files are read-only by default, the file will need to be locked to your ssh key/gitlab account for it to be writable.
This can be done using `lock.sh {file name}`.
Once you are done editing the lock can be released using `unlock.sh {file name}`.
Lock/unlock can only be done if there are any branches that aren't merged into `dev` (excluding `main`).
This can be done using `kimelon lock <type> <filter>`.
See `kimelon lock --help` for more info.
Once you are done editing the lock can be released using `kimelon unlock <type> <filter>`.
See `kimelon unlock --help` for more info.
Lock/unlock can't be done if there are any branches apart from `dev` & `main`.
# CI
Edit lines 41 & 42 of .gitlab-ci.yml to match the naming/structure of your project/s.
You can add as many kicad projects as you like, as below:
```
- DIR: 'proj1'
SCHEM: 'proj1.kicad_sch'
- DIR: 'proj2'
SCHEM: 'proj3.kicad_sch'
- DIR: 'proj3'
SCHEM: 'proj3.kicad_sch'
```
The following will be produced on any commit to dev & main branches or any commit on branch that has an active MR with said branches:
- DRC & ERC
- Step files
The following will be produced only on commits to main or commits on dev if it has an active MR with main:
- JLCPCB compatible gerbers
- PDFs of Schematic & PCB
- BOM
Currently there are some ERC errors to do with buses (https://gitlab.com/kicad/code/kicad/-/issues/13285), so the docker image used for CI will be run on an older version to avoid them.
# Panels
[Kikit](https://github.com/yaqwsx/KiKit) is used to generate panels by placing a `json` file in your kicad project root folder.
The templates in this repository all contain a default panel file with the following features:
- single board
- full frame, no tabs/gap between PCB and frame, vcuts
- Mounting hole + fiducial in each corner
See examples of panel types/options [here](https://yaqwsx.github.io/KiKit/v1.3/panelization/examples/)
See syntax of `json` file [here](https://yaqwsx.github.io/KiKit/v1.3/panelization/cli/)