z2amiller
Well-known member
I’ve spent the last month or so hacking away at some personal projects to make building stuff go faster. They’re probably a little rough around the edges since only I’ve tested them, so I’m happy for any feedback (PMs here or issues on GitHub, either way!). I hope that some of the builders here find these tools useful.
Tl;dr: Check out https://pedalfx.z2amiller.com/board/fx-bloodyg/1.0.1 for an example, read on if it looks interesting. (And note that there's a build doc link near upper left of that page)
There are two main tools of interest:
Plugin: Pedal Build Doc Generator (https://github.com/z2amiller/kicad-pedal-tools)
This is a plugin that can create a build doc based on your schematic and PCB - it exports a picture of the board, the BOM, the schematic, a drill template and a tayda drill manifest.
Features:
Interactive Web Builder
Plugin: https://github.com/z2amiller/kicad-pedal-tools
Webapp: https://github.com/z2amiller/pedal-build-manager
This is two parts. The first part is a Kicad Plugin (also works as a standalone CLI program) to export the data from your board into a zipfile manifest. It builds on a lot of the same pieces as the Build Doc generator. The manifest pulls in copies of the board/drills/etc as SVG, and also gets the SVGs + positions of each component on the board.
It bundles all of this up into a zipfile that can be uploaded to the second part which is the webapp. The webapp shows an interactive view of the board, where you can check off components as they’re installed. You can optionally attach the Build Doc PDF which becomes downloadable from the webapp as well.
Features:
Caveats!
Bonus:
I’m also adding a lot of features to the bouni JLCPCB tools mentioned in my previous guide. The broken description thing is long fixed, and right now I’m focused on adding features to make exports safer, like forced fills, forced DRC, footprint verification, git integration, etc.
Tl;dr: Check out https://pedalfx.z2amiller.com/board/fx-bloodyg/1.0.1 for an example, read on if it looks interesting. (And note that there's a build doc link near upper left of that page)
There are two main tools of interest:
Plugin: Pedal Build Doc Generator (https://github.com/z2amiller/kicad-pedal-tools)
This is a plugin that can create a build doc based on your schematic and PCB - it exports a picture of the board, the BOM, the schematic, a drill template and a tayda drill manifest.
Features:
- Autocreate the drill template based on where your controls are – it scans for pots and switches and will create those drills on the back (front) side. (It might need some hints on how to find the controls based on the footprint type and fields).
- The drill template creator has built-in sizes for common enclosure types, and it has a snap-to-grid for the ‘PedalPCB standard’ hole templates. (e.g. 38mm from the top, Y axis rows of holes 25.4mm apart, etc)
- Also prints a page with an easy-to-enter Tayda manifest (unfortunately I couldn’t find a public API to just upload it)
- Optional manual override the drills (double footswitch, etc)
- Bulk-edit component descriptions so you can change ‘Resistor_THT:7.62mmAxialWhateverWhatever’ to “1/4W Metal Film Resistor” on a bunch of components at once.
Interactive Web Builder
Plugin: https://github.com/z2amiller/kicad-pedal-tools
Webapp: https://github.com/z2amiller/pedal-build-manager
This is two parts. The first part is a Kicad Plugin (also works as a standalone CLI program) to export the data from your board into a zipfile manifest. It builds on a lot of the same pieces as the Build Doc generator. The manifest pulls in copies of the board/drills/etc as SVG, and also gets the SVGs + positions of each component on the board.
It bundles all of this up into a zipfile that can be uploaded to the second part which is the webapp. The webapp shows an interactive view of the board, where you can check off components as they’re installed. You can optionally attach the Build Doc PDF which becomes downloadable from the webapp as well.
Features:
- Webapp has light/dark modes and different colored PCB backgrounds.
- Sort the component values by reference, value (humanized) or geographical, to fit how you (or the people who build your boards) want to assemble their boards. Lays out the components in groups – resistors first, then diodes, transistors, etc, to at least roughly match the ‘install from shortest to tallest’ build guidance.
- On the admin side, you can upload boards, and the uploads can be versioned - so if you release a new version of your boards, it’s still easy to build the older ones.
Caveats!
- So far only I’ve used this, so not sure how it will go for others. It’s still a WIP under active development but I’m happy to share and I’d like to hear feedback if other folks find it useful.
- Setting up the webapp might be a real hassle for people (kind of requires a VPS somewhere, although it’s easy to test locally also). I have a VPS and I’m happy to host a copy of the interactive build webapp for the active builders here.
- This uses the new KiCad IPC plugin system which is less mature than the SWIG model, and it needs to fork kicad-cli to do a lot of the heavy lifting. This makes it kind of slow when generating, and I’ve seen in other places that it can have trouble with opening older versions of files, so you might need to convert your files to whatever version of KiCad you’re running to let the CLI read your files.
- Because it’s IPC only, it’s only available on KiCad 9+. And there’s a bug in 10.0 so the IPC webapps don’t show up, so update to 10.0.1 if you can.
- The build doc generator needs a little setup on your board - it needs to know what kind of footprints poke through the enclosure, and if they’re offset from the origin. It’s unknown how it will act for folks who have actually-flipped pots rather than the MadBean ones that are frontside but have backside silk. If stuff doesn’t work for you, please let me know and provide me with some pointers so I can repro and I’ll fix it.
- There should be READMEs under all of the directories with installation and usage information - LMK if any of it is unclear for you and I'll to make it better!
Bonus:
I’m also adding a lot of features to the bouni JLCPCB tools mentioned in my previous guide. The broken description thing is long fixed, and right now I’m focused on adding features to make exports safer, like forced fills, forced DRC, footprint verification, git integration, etc.