Hacker Tactic: Single-PCB Panels

Ordering a PCB? Two of them? Three? Five? For about eight years now, I’ve been regularly ordering large numbers of different PCBs, and, naturally, have developed a toolkit to make things smoother. One trick is PCB panelization, and you should really know about it.

You might’ve encountered PCB panels already. Perhaps, if you order PCBA at a fab, you will get your board returned in a whole new form-factor, with rails on the sides that you have to snap off before your PCB is usable. Those rails are used so that your PCBs are easier to handle during assembly, but that’s far from the only reason why you would make a panel.

If you need multiple pieces of a PCB, your fab may say that building 50 pcs is classified as “large batch” and that takes longer than 30 days, which delays your entire PCB order. I’ve been there, five years ago, running out of time right before Chinese New Year. The fix was simple – I made a 2×2 panel and ordered that in quantity of 10-15. Panelization might be a little more expensive, or maybe even cheaper, but, most importantly, it will be faster.

In a few hours’ time, I sat down, figured out that KiCad has built-in features for panelization, and ordered panels instead of separate PCBs. Thanks to that, I made the Chinese New Year deadline that year and could successfully restock my store, letting me earn a fair bit of money instead of keeping a popular product out-of-stock – ultimately, helping my family stay up on rent that month.

Panelization lets you hack around many PCB ordering and assembly limitations, and I’ve only gotten started – there’s way way more! For now, let’s sort out panelizing multiples of the same PCB. As long as your boards are using KiCad (or KiCad-converted from Eagle/EasyEDA/Altium/gerbers), there’s no better software than KiKit.

Continue reading “Hacker Tactic: Single-PCB Panels”

KiCad Panelization Made Easy

There’s a new Python-based script that will panelize your KiCad circuit boards from the command line. The project by [Jan Mrázek] is called KiKit and works on .kicad_pcb files to arrange them in a grid with your choice of mousebites or v-cuts for separating the boards after production.

When working with smaller boards it’s common practice to group them together into panels. This is done to speed up PCB assembly as multiple boards can have solder paste applied, go through a pick and place machine, and be sent into the reflow oven as a single unit. Often this is done manually, but in many cases this script will save you the time while delivering the results you need.

Let’s say you really wanted to make a whole bunch of those Xling open source Tamagotchi-like key fobs we saw a couple of weeks back. Using KiKit you can gang up six of the boards at a time, using “mousebites” to keep them together during production but make it easy to separate them after all the components are soldered:

/usr/local/bin/kikit panelize grid --space 3 --gridsize 2 3 --tabwidth 3 --tabheight 3 --htabs 2 --vtabs 1 --mousebites 0.5 1 0.25 --radius 1 Xling/hardware/xling.kicad_pcb xling_panel.kicad_pcb

You can see that the parameters let you set space between the boards, number of boards in the grid, width of the tabs, tab dimensions, number of tabs between boards, and even the radius of the curve where the tabs meet the board. These settings were pulled from the examples page, which demonstrates outcomes for many different settings options.

If you want to give this a try, we suggest installing directly from the repository, as improvements are ongoing and the pip3 version didn’t have all of the options shown in the examples. For us this was as easy as sudo python3 setup.py install and then calling the script with the full path /usr/local/bin/kikit.

Results from this board are both impressive and cautionary. You can see the top edge of the design is recessed yet the most up-to-date version of KiKit was still able to make the connection. However, how this affects the USB connector on the bottom of the board design may be something to consider before pulling the trigger on your panel order.