For reasons that will remain undisclosed until some time in the future, I recently had a need to panelize a few PCBs. Panelization is the art of taking PCB designs you already have, whether they’re KiCad board files, Eagle board files, or just Gerbers, and turning them into a single collection of PCBs that can be sent off to a fab house.
If you’re still wondering what this means, take a look at the last board you got from OSH Park, Seeed, Itead, or Dirty PCBs. Around the perimeter of your board, you’ll find some rough spots. These are ‘mouse bites’ and tabs, places where the boards are strung together to form a gigantic rectangular panel sent off to a manufacturer. You can check out this great interview with [Laen] from OSH Park to get an idea of how this works, but the basic process is to take a bunch of Gerbers, add tabs and mouse bites, solve the knapsack problem, and send the completed panel off to a board house.
Panelizing boards is something most of us won’t have to do often. Really, you only want a panel of boards when you’re manufacturing something. For small-scale production and prototypes, bare boards will do just fine. Simply by virtue of the fact that panelizing boards is far less common than throwing some Gerbers at OSH Park or Seeed, there aren’t many (good) tutorials, and even fewer (good) tools to do so. This is how you panelize boards quickly and easily using Open Source tools.
What I want
Panelizing boards, or putting multiple copies of a board in a single Gerber file, is nothing new. We’ve seen it done in Eagle with a ULP script, and we’ve seen it done in KiCad with some Python. [Dave Jones] did a panelization tutorial for Altium. All of these have their downsides. Putting more than one board design on a panel is not covered by the usual tools and tutorials. Most methods of panelizing boards only work with rectangular boards. Altium will do anything, but Altium is pricey.
What I need is a method to take more than one weirdly-shaped board, and put it on a rectangular panel. Need an example of this? Check out the DEF CON 24 badge to the right. This is a weird-shaped board, designed to fit into a rectangular panel for automated assembly. Instead of v-grooves, the board is simply milled out of the panel, held on with mouse bites, or small tabs of fiberglass and holes. Extremely clever implementations of this technique also allow for pads and traces on the panel for programming each individual board.
Can you do this in Eagle and KiCad, the most popular tools for low-scale PCB design and fabrication? Yes, but it’s hard. Altium will do it easily, but that’s really a tool for people who are manufacturing tens of thousands of boards. To date, I’ve only found one tool that simply allows you to drop multiple Gerber files on a board and merge them.
The best tool I’ve found for panelizing multiple board designs with routing and mouse bites comes from [Stijn Kuipers]. His PCB Panelizer (available on GitHub) is the best thing I’ve found to take Gerbers you’ve already designed and turn them into an easily manufacturable panel. Before finding this fantastic tool, I spent about a day trying to figure out how to panelize Gerbers. After finding this tool, I was able to create the panel I needed in about twenty minutes. Gerber Panelizer is a fantastic tool, and I’ll be dedicating the rest of this post to the ins and outs of this simple and easy way to create panels of PCBs.
Using Gerber Panelizer
Using Gerber Panelizer could not be simpler. All you have to do is set up the size of the panel, drop .zip files of your Gerbers onto the panel, add some breaktabs, and export the merged gerbers. After your computer does a little bit of thinking, you get a panel of boards, ready to send to a fab.
Of course, you’re not limited to square or rectangular boards with Gerber Panelizer. Any shape will do, and the ‘Fill Empty Area’ in the Panel Properties window makes creating panels of weirdly-shaped PCBs easy.
I whipped up a quick artsy board of the GitHub Unicorn (five minutes in Eagle) and stole the source for the Freeduino. This is the best example of what Gerber Panelizer can do. With this tool, you can panelize oddly-shaped boards, and put more than a single design on a panel.
Caveats to Gerber Panelizer
Gerber Panelizer is a great tool that allows you to quickly and easily stitch multiple Gerber files together into a single, easily-manufacturable board. Unfortunately, the DIY PCB crowd and Open Hardware enthusiasts in general, are cheapskates. Conventional wisdom says the only tools worth having are the ones that are the ones that are free as in beer, an argument often transparently disguised as ‘free as in speech’. This means the software is offered without support, and often with broken features.
Gerber Panelizer is not without significant issues, although some of the blame can be directed at KiCad. The KiCad philosophy makes a distinction between milled, plated layers and the final cutout of the board. In KiCad, this means there’s a difference between .GKO and .GML Gerber files. KiCad, in its infinite wisdom, decided the cutout layer of the board should use the file extension .GM1 as an output Gerber. This has caused much confusion, but the good news is this issue will be fixed shortly. OpenGL on Windows with Nvidia drivers is a hot mess of a dumpster fire. This problem can be solved by using my laptop instead of my desktop battlestation. Additonally, the current release (at least at the time of this writing) does not support adding breaktabs between a Gerber file and the ‘fill empty area’ area. This was a bug solved by [Arsenijs] over on Hackaday.io. I owe him for fixing that bug for me, but the important thing here is that I contribute money to Open Source development.
Is this a perfect solution to panelizing PCBs? No. Ideally, you’d want fiducials along the edge of your panel so the pick and place machine can tell where in space the panel is. You’ll also want some M4 holes along the side of the board, so the pick and place machine can move it along the manufacturing line. However, this is quite literally the easiest and simplest way to panelize a bunch of boards. No other tool comes close to Gerber Panelizer’s ease of use.
Despite these issues, Gerber Panelizer is a simply fantastic piece of software that should be in everyone’s toolbox. Yes, there are issues, but it looks like the most critical will be fixed in the next release.
If you’d like to play around with these Gerber files, you can find them here on hackaday.io.