Build CI pipeline for CAD
Goal: Reduce amount of (boring) work, reduce (human) errors and try out Computer Aided Engineering (CAE) CI ideas on a real project. (Also it should reduce the amount of files and folders in the repo)
This is supposed to be the summary issue of the whole endeavor. I would create another issue for each non-trivial PR, but track overall progress here.
Some history: In 2016/2017 I was in the Formula Student Team "Lions Racing" developing among other things a PCB for the high voltage battery system. Back then I also got into software development and asked myself whether it is possible to create a CI pipeline for CAE similar how it is done in most software projects. Back then I used Eagle and that was really hard to automate since it always needed a GUI, so my efforts werent very successful. After leaving the team I never got around doing PCB design anymore. Then I met Lukas at 37C3 and they was interested in something like that.
A lot has happened since I was in Formula Student and there have been a few examples in this direction (see references). I would like to do this step by step first starting with a proof of concept consisting of two PRs. For this to work changes to the existing CAD files need to be done. I will probably not be able to do those or need some guidance, because I am new to KiCAD (coming from Eagle) and not familiar with the design. It would be great if someone could regularly invest some time into this so I dont get stuck for too long. As for the proof of concept I would go very low tech just using the KiCAD CLI from the docker container. After that I will for example look into KiBot.
Let me know if this sounds like a plan? It is important to me to focus on what is relevant to the team (according to the goal above). So what are task that you do often and/or are annoying/laborious or which are very prone to errors? (And of course which could be automated using CI)
Proof of concept:
- Export BOM to artifacts
- Website to view/download the BOM on Gitlab pages like readthedocs for branches, tags, etc.
Further ideas:
- Export interactive BOM
- Create PDF of schematic
- Export CAD of PCB
- Run ERC/DRC
- Run collision check (CAD)
- Create CAD render with Blender
KiCAD version:
- 5.1.6+dfsg1-1 (reform2-motherboard-r2c.pdf)
- 5.1.8+dfsg1-1+b1 (reform2-motherboard.kicad_pcb)
Is this correct? Docker images only exist for KiCAD 7.X.X. I am not familiar with incompatibilities across versions, but here all KiCAD files might need updating.
References: