Panelizing Eagle .brd files

264 views
Skip to first unread message

Mark T

unread,
Aug 18, 2018, 9:20:40 PM8/18/18
to RC2014-Z80

For the last set of boards I had made at JLCPCB I used eagle to put two designs into one sch and brd file, using a separate schematic sheet for each module, prefix each component and net on the second sheet with '_' and then layout in a panel with two partial routes between the two boards. Problem with this is that eagle free edition only allows component placement within 100 x 80 mm area, so outside this area I used vias to place pads for additional components but this gets tricky for anything more than simple resistors and connectors.

Looking for an easier method I found https://www.instructables.com/id/Panelizing-PCBs-for-Seeed-Using-Eagle-Free-Light/ , unfortunately the link for gerbmerge gave a 404 error. Looking around a little later I found https://github.com/unwireddevices/gerbmerge , which looks like it might be a fork of the gerbmerge from the instructable although I haven't tried it yet.

In the comments 'pstruct' suggested https://github.com/p12tic/eagle-brd-merge, I just gave this a try and it seems to work quite well. The tool is in python. Seems to support panelizing same or different designs in eagle, which can then generate gerber to upload to pcb manufacturer. Using this method I can now use the full 100 x 50 mm board area for two separate designs within a 102 x 100 panel, leaving 2mm clear to separate the boards.

Mark


Bill Shen

unread,
Aug 18, 2018, 10:44:48 PM8/18/18
to RC2014-Z80
My drafting software (IVEX WinBoard) has no size limit but is too ancient to do panelization.  What I did to panelize two ZZ80RC designs (100mm x 50mm) was using Gerbv (gEDA's Gerber Viewer) to shift the original designs by 50mm and save as separate files, then bring both the original & shifted designs and save them layer-by-layer using File->Export->RS274X Merge.
  Bill

Andrew Instone-Cowie

unread,
Aug 30, 2018, 5:47:12 PM8/30/18
to RC2014-Z80
Thanks, that's a useful script!

Mark T

unread,
Aug 30, 2018, 6:58:16 PM8/30/18
to RC2014-Z80
I was playing with it a bit and it seems to allow you to exceed the 100 x 80 mm limit of the free version of Eagle. You first add and position the components for the top part of the board, then use the script to move everything in the pcb up by three inches, then add and position the components for the lower half of the board. Then you can add the traces as needed.

Might also be possible to layout quadrants of a board for larger pcbs.

Probably not easy for a complicated board, I just tried it to see if it would work.

Andrew Instone-Cowie

unread,
Aug 31, 2018, 2:52:24 AM8/31/18
to RC2014-Z80
Yes, that's basically what it's for.

Create your single board schematic and .brd file to be panelized. Take a copy of the .brd file and open just that file in Eagle, then run the Panelize function on it from the tools menu. That takes copies of the values of all the component names from the tNames/bNames silkscreen layers, and stuffs them in new layers 125/126 as plain text (so that they don't change when they get copied, because Eagle insists that the real name of every component is unique). Turn off the tNames/bNames layers. Save that file as your input file.

(If you are panelizing within the Eagle size limit, you can just group select and copy the sub-board in that Eagle file. The problem only arises if any of the content falls outside the limited area).

Then run the merge script against that input file with whatever offsets you need for each copy of the board. Open up the output .brd file in Eagle and check that they are all in the right place, tweak the script if necessary and re-run until you are happy. You will see that the text copies of the component names are the same on every sub-board, even though the actual component names have been updated to be unique across the panel. Same with trace net names.

Then load the output file in Eagle and do whatever you need to do to tell your fab that it's a panel (so add v-cut lines, or in my case modify the outline layer and add stamp holes and links, OSH Park style). Eagle will let you do this outside the limited area, as long as you don't try to move any pads.

Finally, save that output file and run the CAM job to create the Gerbers, but make sure that tNames/bNames are excluded from the silkscreen files, and the additional 125/126 layers are included. You can use the free version of ViewMate or the Gerber viewer in KiCad to check the Gerbers. And that's it - currently taking advantage of Seeed's "3 for $1" offer :)

There is a bug in the script in the way that it handles the <settings> section (I've opened and Issue for that on GitHub), but reopening and saving the output in Eagle seem to fix that, at least in Eagle 7.7. Also if you are using a fab who work directly from a .brd file, then they need to know that the silkscreen layers are non-standard.

HTH
Andrew

Mark T

unread,
Aug 31, 2018, 9:17:19 AM8/31/18
to RC2014-Z80
I know the basic function is to panelize boards, either the same designs or different designs, but what I was trying to describe was that you can also create a single board larger than the 100 x 80 limitation.

Andrew Instone-Cowie

unread,
Aug 31, 2018, 12:02:42 PM8/31/18
to RC2014-Z80
Ah, I see what you mean. Yes, you could "panelize" two different boards and then stitch the tracks together. Just tried it and created a 200x200 board (with just a single pad in each corner!) You'd have to lay all the linking tracks by hand, and work out the signal naming, and of course you can't then move anything that's outside the 100 x 80 zone. But it does work.
Reply all
Reply to author
Forward
0 new messages