pcb-rnd knowledge pool
Interactive panelization with GUI
panel1 by Tibor 'Igor2' Palinkas on 2019-09-17 | Tags: howto, panel, panelize, mouse, bite, mouse-bite, menufile2 |
Abstract: n/a
Panelization is when multiple instances of one or more boards are montaged onto one large panel. The main reason to do that is making pick&place cheaper (or in some cases possible at all):
- tiny boards are hard to handle, but adding a large frame around each tiny board would make production expensive
- swapping panels and adjusting them takes some time, so the more board instances can be done at once at any step of the productions, that saves production time (and cost)
This howto demonstrates creating a panel out of two tiny boards using a manual, interactive, GUI coming from an user script.
1. Dependencies
You will need a pcb-rnd newer than the release 2.1.3 or svn revision r27593.
Please download the user script from edakrill , unpack the tarball (anywhere).
There is no further dependencies if your pcb-rnd compilation is standard (all plugins enabled) because the script is written in fawk, which is distributed with pcb-rnd and is enabled by default.
2. Preparation
Prepare your board(s):
- make sure your boards have the outline drawn on the outline layer (in the boundary layer group)
- make sure the line thickness of the boundary is acceptable by your fab - typical values are 1 or 2 mm, but you need to consult your PCB fab to figure (you probably didn't have to, when you let them panelize your board).
- make sure your board has exactly as many layer groups as you need, e.g. don't have 4 copper layer groups for a 2 layer board.
Prepare your panel board:
- create a new board
- make sure it has the same layer stackup as your boards have - the script will not fix up the layer stackup for you
- make it large enough for the number of sub-boards you plan to use, plus some margin
3. Load the script
Open the Plugins menu, pick "Manage scripts". A dialog box listing all user scripts loaded comes up (normally with empty lists). Click "Load" and select panel.fawk from where you saved it the first step. A new dialog box will come up where you can specify the scripting language - it is set to fawk, accept it by clicking ok.
Now the script should show up in the scripts list on the left. If you click the script, the list of actions the script defined will be presented on the right.
Close the manage scripts dialog.
4. Invoke the panel dashboard dialog
Press ':' to bring up the command line and type
panelgui
This will bring up a dialog box which is the dashboard for the panelization script. You can close it and reopen it any time with the above action.
5. Place the boards
Use the "Load board into panel" button to import a simplified model of the boards to be panelized. The simplified model will act as one large subcircuit but will retain all padstacks, copper, silk, and boundary features. It is enough to place one instance of each board, it will be cheap to copy, rotate and place copies of them.
There are different strategies for placing the boards in a panel. Sometimes two boards should share the same boundary line to save space, sometimes there should be a centimeter of solid PCB between them to make the resulting panel rigid. Please consult with your board fab and assembly house for their recommendations.
6. Place the mouse-bites
The most common way to split up the panel at the end is using small bridges over the contour of the board to keep the boards in the panel, but drill a line of holes in that bridge to make it easy to break. This construct is nicknamed mouse bite.
The left section of the panelization dashboard offers a cheap way to generate mouse bites of different geometry. The result is a subcircuit that can be placed and copied in many instances (and rotated, when needed). The mouse bite subcircuit has some extra attributes which will be important at the end, for the final rendering.
7. Finish the panel
- draw the final outline of the panel - normally a rectangle
- place fiducials (e.g. this footprint ); fiducials are used in pick and place to adjust to panel placement. The exact geometry of the fiducial needs to be consulted with the assembly house.
- draw identifiers, copyright notice and other similar features on the panel
- save the finished panel board
8. Generate/render the panel
The panel board at this stage contains only a simplified schematics if the final panel: mouse bites are not really bridges and the boards lost their subcircuits (which would run the XY export for pick and place).
The final step is using one of the top right buttons on the panelize dashboard to generate (render) the final, detailed panel. The rendered version will also be a pcb-rnd board, but with all the original subcircuits and mouse bites fixed up. There are mainly two things happening at render time:
- replace each board subcircuit with a new import of the board from file (using the file name embedded in the subcircuit)
- remove a section of boundary lines under the mouse bite subcircuits
- explode the mouse bite subcircuits so only holes are left
There are two ways doing the final render:
- "generate here" will make all modifications right on the current board, which is the panelization board. The user can then do a "save as".
- "Save & generate new" will save the current (simplified panel) board, make all the modifications, offer the user to save the renderd board using a different file name and then returns (loads back) the simplified pabel board.
Note: there is no way to go back from a rendered panel to the simplified version and editing the renderd board is much more labour-intensive. This it is recommended to keep the simplified panel board, make modifications there and render the final panel board from the new version.
9. Fab!
Load the rendered panel board and export to gerber (typically using a cam export job, key combination: {f x}) and XY.
Notes and references