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.

Panelizing Boards In KiCad

Panelization of printed circuit boards is a very helpful trick for any PCB design tool to have. By panelizing boards, you can get them ready for automated assembly. You can put testing rigs right on the panel. You can combine different boards to reduce your PCB production cost. But Eagle, Fritzing, and KiCad don’t have proper panelization tools, only hacks and third-party tools to get something close to proper panelization. [Flemming] just created a new utility for KiCad that makes multiple copies of a board connected via mouse bites. It’s not complete panelization functionality, but for a lot of us, it’ll be good enough.

The video demo for this utility (try not to click on that because we’re going to blow some bandwidth with this link) starts off by importing a board into Pcbnew, making several copies of the board, arranging these boards to have 3-4mm spacing, and drawing ‘hint lines’ for the script, telling it where the mouse bites should go. The script runs, and boom, mouse bites and a panel.

This is a KiCad specific tool, and we’ve seen other tools for KiCad that make multiple copies of a board. We’ve also seen tools that take raw Gerbers of multiple designs and turn them into a panel. [Flemming]’s efforts are the closest we’ve seen to having all the features you want out of a panelization utility bild exclusively for KiCad.

While this tool will give you a set of Gerbers with multiple copies of a board connected with mouse bites, this is not in any way a complete solution to panelizing PCBs. If you’re panelizing PCBs, you’ll want to add fiducials in the corners of the full panel, which this tool does not allow you to do. You might want to have one complete ‘frame’ as a panel — effectively a rectangular piece of fiberglass that holds all your PCBs — which this tool does not allow you to do. Since you don’t get a frame, it’s impossible to run programming or testing signals to the frame that would be needed for assembly, but not necessary in production. That said, unless you’re going to spend thousand on Altium or use Open tools that have critical flaws such as GerberPanelizer, this is the best option you’ve got.

Hackaday Links: January 8, 2017

What do you get when mindless automatons with no capacity for reason or logic converse? While you discuss that in the comments, here are two chatbots on Twitch. The highlights? A few hours ago they were doing the cutesy couple, “‘I love you more!’, ‘No, I love you more!'” thing. This was ended by, “Error, cannot connect to server.” Even robot love is not eternal.

3D printer nozzles wear out. Put a few hundred hours on a brass nozzle, and you’re not going to get the same print quality as when you started. This has led to stainless and silly-con carbide nozzles. Now there’s a ruby nozzle. It’s designed by [Anders Olsson], the same guy who’s using an Ultimaker to print neutron shielding. This guy is a nuclear engineer, and he knows his stuff. This is a nozzle designed to not grind contaminants into extruded plastic, and it looks cool, too.

This is the eighth day of the year, but the guild of independent badge makers of DEF CON are already hard at work. AND!XOR is working on the DC25 badge, that promises to be bigger, badder, and more Bender. I’m loving the Hunter S. Bender theme.

Anyone can design a PCB, but how do you panelize multiple PCBs? There’s a lot to consider – routing, mouse bites, and traces for programming the board while still panelized. This is the best solution we’ve seen. It’s a GUI that allows you to organize Gerbers on a panel, rotate them, add routes and cutouts, and generally do everything a board house does. It’s all Open Source and everything is available on GitHub.

[ducksauz] found a very old ‘computer trainer’ on eBay. It’s a DEC H-500, built to explain the basics of digital electronics and semiconductors to a room full of engineering students. It is an exceptionally beautiful piece of equipment with lovely hand-drawn traces and ‘surface mounted’ 7400 chips mounted on the back side.

Panelizing PCBs In Eagle

final_panel

A lot of the board houses out there including Seeed and ITead studios have a fixed size for circuit boards before the price goes up. A one-inch square board costs the same as a much larger 5cm x 5cm board, making panelized PCBs a great way to get more boards for the same amount of money. Trying to panelize a board in Eagle with copy and paste is a chore without the right tools, though, so we’re happy to see a great panelization tutorial from [Victor].

To panelize one of his boards for a PCB order, [Victor] used one of Eagle’s User Language Programs to duplicate the part names on the additional boards. After that, it was a simple matter of running a CAM job to generate the necessary Gerber files.

Of course once the boards arrive, you’ll have to cut them apart from each other. This can be done with everything from a Dremel to a hack saw to a metal shear, but we’re wondering what other Hackaday readers are using to cut up PCBs. Leave a note in the comments with your preferred method of depanelization.

Automated PCB Panelization

panel

Some PCB production houses – Seeed Studio and itead studio, especially – allow you to upload a gerber file and receive a printed circuit board very inexpensively. The pricing structure for these board houses is based on predesignated board sizes – 5cm square or 5×10 cm – and sometimes a project is just too small to justify buying a full 25 square centimeters of board. This is where panelizing comes in: by putting multiple copies of a circuit board on one of the available sizes you can get more boards for the same amount of money. But how to panelize your boards without the (sometimes) hassle of cutting and pasting?

[Martin] came up with a way of panelizing PCBs with just a Python script. By creating one copy of a circuit board in KiCAD, he can fire up his script and tell the computer exactly how to duplicate his circuit to fit any size board.

By his own admission, [Martin]’s script is still a little clunky, but it does allow him to edit the panelized board in KiCAD and also copies the nets so the ratsnest doesn’t go between boards.