A GUI based PCB gerber file viewer and panelizer written in python
This tool would not have been possible without the following projects:
www.kivy.org
www.github.com/curtacircuitos/pcb-tools
www.github.com/opiopan/pcb-tools-extension
www.useiconic.com/open
hm-panelizer is released under MIT license, Copyright 2021,2022 HalfMarble LLC (www.halfmarble.com)
Please note that I forked pcb-tools and pcb-tools-extension, made significant modifications, and included them as part of this tool.
There are a couple of open source tools out there that will help you panelize your Pcb, for example http://blog.thisisnotrocketscience.nl/projects/pcb-panelizer/ , https://github.com/sej7278/kicad-panelizer and www.github.com/yaqwsx/KiKit, however, I wanted a GUI based app, which I could run (easily) on a macOS based machine, so here we are.
It also gave me an opportunity to learn python (it is my first python app, so it is most certainly not optimally implemented) and gain some insight into the mysterious world of gerber files.
I hope that you will find hm-panelizer useful, however, I offer no guarantee that it will work in your case - always verify with other tools, before you order your Pcb panels!
hm-panelizer is a python app, so you will need python version 3.6.x
or higher (we use 3.9.12
) and
install kivy
, pygame
and pycairo
python packages. Here is an example of steps I had to perform on my own macOS machine:
Install homebrew by following one step installation on https://brew.sh/
Add "/opt/homebrew/bin" to your PATH in ZSH configuration file:
open -e ~/.zshrc
export PATH=$PATH:/opt/homebrew/bin
Install "pkg-config" and "cairo":
/opt/homebrew/bin/brew install pkg-config
/opt/homebrew/bin/brew install cairo
Upgrade "pip":
python3 -m pip install --upgrade pip
Install "kivy", pycairo" and "pygame" python packages:
pip3 install kivy
pip3 install pygame
pip3 install pycairo
I have received a report that "cairocffi" python package is required as well. On my Mac things work fine without it, however, if your machine needs it, then you can install it with:
pip3 install cairocffi
Once you have python
and the required python packages installed, you can run hm-panelizer
via command line
(i.e. terminal) by cd
'ing into the hm-panelizer folder, then issuing python3 main.py
command.
Main view
Main view (outline verification)
Panel view
It might. The gerber viewer part should almost certainly work, but the panelizer feature is another story.
I personally use KiCad 6.x and wanted to panelize my own Pcb, so that's what I mostly tested. I did try a few other Pcbs created with other software and I am eager to hear your experience.
Please keep in mind, however, that hm-panelizer was just a side project for me. I am releasing it as open source in hopes that the community will contribute to it. If you find a bug and can fix it, then please help!
Having said that, here are requirements to create a Pcb that should make it suitable for hm-panelizer:
Limitations:
Here are the KiCad settings I personally use to export my Pcbs:
KiCad plot settings
KiCad drill settings
Here is a list of wish features that I personally would like to add when I have the time:
Visit my Discord channel https://discord.gg/7mf5qqBMEF