3 ms·
Smashing job. I use kibot in a similar fashion locally to generate my fab packages for my kicad designs. I had it set up as a CI job for a while, but I ended u
by cushychicken 3y ago
Smashing job. I use kibot in a similar fashion locally to generate my fab packages for my kicad designs.
I had it set up as a CI job for a while, but I ended up disabling it for a few reasons, the main one being that I just don't think it's a good idea to constantly create build artifacts for circuit board designs. It has created problems when people have circulated intermediate schematics generated by CI that don't match the hardware we built.
You really only need to archive fab packages (by which I mean schematic, gerbers, BOM, assembly drawing, fab notes, etc) at the points in time where you fab and assemble a board.
Creating more artifacts just creates the possibility for more noise. It's not like software CI as there's not really a way to automate hardware testing in a CI server. Very little incremental value in continuous artifact generation as a result.
- sschueller 3y agoYes, I was thinking of changing the pipeline to respond to only tags for outputs. Then i can just set a release tag when I am ready to send it to a fab.
- cushychicken 3y agoHow many people use the outputs of your pipeline, out of curiosity?
- sschueller 3y agoJust me. It's for my personal projects.
- cushychicken 3y agoAh OK. Way less chance of confusion that way. :) I've used kicad professionally for about three years now. That brief phase of using CI was in my current employer and we had some confusing weeks where no one knew which sch version was the right one. Being able to share out autogenerated schematics is one of those rare cases where CI hinders you rather than helps you. I'm sort of tunneling in on this one facet though. This is great work and I'll be reading it more closely when I get off the plane. I'll probably grab some of your kibot configs for myself!
- fest 3y agoThis is what I'm doing. Though it does break down for smaller projects where I had combined firmware and electronics design in the same repository (not a great idea in retrospect).
- cushychicken 3y agoThat rapidly becomes a rough ride - especially when you've got different groups writing hardware and firmware independent of one another, but pushing to the same repo.
- ownagefool 3y agoYou can have different rules for different folders, i.e. only do this if folder == schema && is-tag
- teleforce 3y agoI'm curious in what you meant by there's no way to automatically perform hardware testing in CI server? Is it hardware testing at the simulation/emulation level as a "digital twin" or hardware as testing as in hardware-in-the-loop (HLL)?
- flaviut 3y ago> Is it hardware testing at the simulation/emulation level as a "digital twin" This, very likely. It's possible to set up simulations of certain sections of the hardware using some Spice software, but it's quite time consuming and I'm not sure if anyone's built a way to compare the output of the simulation to expected output. Simulating any entire circuit as a whole is impossible, since lots of parts just cannot be simulated.
- lbotos 3y agoPiqued my curiosity: Example of a part that's hard to simulate?
- spicyjpeg 3y agoPretty much any kind of non-trivial digital logic. For instance emulating a typical ARM microcontroller accurately, while technically within the realm of possibility, would require a huge amount of effort; every bus and every peripheral's functionality would have to be replicated, including hard-to-gauge details like their power consumption. Even if you have access to the HDL that was used to build the chip (which you usually don't), such a simulation will never be 100% accurate.
- flaviut 3y agospicyjpeg basically described the sort of thing I was thinking of, but even for more boring things like opamps or transistors, it's a big hassle to track down or design a simulation model. There's a semi-standardized file format for simulation models, but there are still differences between simulators. And every manufacturer's website is a different kind of poorly-organized, so it's hard to even find the models. The other thing is things where high frequencies exist, like switching regulators. It's possible to simulate them, but there's all sorts of parasitics (imperfections from the circuit being made out of real stuff rather than lines on paper) that impact the circuit. I've only used KiCad, so I don't know if the commercial software here can model these parasitics, but they can have a big on performance.
- Brian_K_White 3y agoI pointedly keep gerbers etc .ignored (directory naming convention where gerbers always export to GERBER_${TITLE}_${REVISION} ,and .gitignore includes GERBER_*/) and only upload gerber zips as release artifacts I do keep a bom.csv in the repo to link right in the readme. I consider the specific part selection part of the reference not entirely documented in the sch, and so it's source. Same for .stl and other output meshes from openscad and freecad sources. Which is kind of a pity because github has a neat stl diff viewr that's essentially useless if you don't want to check in stls.