[kicad-users] Re: Plotting without sheet border

2009-09-05 Thread axtz4
--- In kicad-users@yahoogroups.com, "seroxatmad"  wrote:
>
> Hi
> 
> I am after plotting my schematic to a HPGL file so i can import it into front 
> panel designer.
> 
> Is there anyway to disable the sheet border?

There is if you "print" instead of "plot." For both schematics and boards there 
is a "print frame ref" checkbox (that is on by default) in the print dialog.

So, just un-check the box and do a "print to file" with a compatible HPGL 
printer and you should be good to go.



[kicad-users] Re: Importing drawings in PCBNew

2009-08-20 Thread axtz4
>The file (dxflib_commercial_license.txt) that give some info on 
>dxflib licence in the downloaded dxflib was very unclear.
>In fact the dxflib site is unclear and very poor about the license: 
>The dxflib license appears only in a FAQ ...

Yes, it is indeed rather vague on their website. However, the source code files 
themselves do contain a "short form" reference to the GPL:

** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.

so it looks like it is okay for use in GPL'd projects.

Also, FYI, the library seemed to build okay under a default MinGW 5.1.4 
installation. Haven't done anything with it yet, though.  ;-)



[kicad-users] Re: Importing drawings in PCBNew

2009-08-19 Thread axtz4
--- In kicad-users@yahoogroups.com, "gayphil78"  wrote:

>  I'm not developper and can't say if difficult or not to do . I'm sure even 
> an external app giving "dxf2brd" file loadable in the drawing layer by kicad 
> would be great . Not an obligation to implement inside Kicad ... We just have 
> to load the matrix result in kicad as a common board, then rename it to the 
> good filename which fit with the EEschema one ...
> But for sure, it would be greater to have it natively inside Kicad ...;-)

I'll *probably* do this using RibbonSoft's dxflib, using MinGW to create the 
Windows executable. The source will be included and the whole thing will be 
GPLed so the core developers should be able to pick it up for the mainline code 
without too much difficulty.



[kicad-users] Re: Importing drawings in PCBNew

2009-08-17 Thread axtz4
--- In kicad-users@yahoogroups.com, "gayphil78"  wrote:
>
> Oh, my goal isn't to develop mechanicals with kicad, but just importing only 
> significant lines (general contours, pots, jacks or mounting holes, etc ...) 
> from an existing Qcad project (I'm using it , too ... ) to make easier 
> contour drawings and position for pots, buttons, jacks, etc, they come on a 
> panel ...
> 
> Yeah, the converter you told about could be a great help to export from 
> Kicad, but the opposite action could be great too ...

Should be easy enough to do; I've already done a "panalize" Perl app that 
creats a new Kicad .brd file from a matrixed copy of an original layout.

I'll dig into the .dxf format (it's been a (long!) while) but from what I 
recall, a naive 1:1 import would be pretty straightforward. For a more 
general-purpose implementation one would probably also want scaling, 
translation, and rotation. Do-able.

Would be something along the lines of "dxf2brd [dxf file] [brd file]" with the 
two files combined to create a new file basename_dxf.brd with the dxf contents 
inserted into the "drawing" layer. Probably also implemented in Perl, to 
facilitate sharing and hacking by others.



[kicad-users] Re: Arduino duemilanove shield footprint

2009-07-20 Thread axtz4
--- In kicad-users@yahoogroups.com, Frédéric COIFFIER  
wrote:
>
> Hello !
> 
> I can use your arduinoshield.lib in schematic but how can I use 
> arduinoshield.emp ? PCBnew doesn't seem to recognize it.

In the Module Editor, from PCBNew, open your local module library (or create 
one if you don't have it!) and import the .emp file from the "import module" 
button on the top button bar. Save the module in your working library and you 
should be good to go.



[kicad-users] Re: Looking for the LM556 chip in the Libs ??

2009-06-30 Thread axtz4
--- In kicad-users@yahoogroups.com, "acidb...@..."  wrote:
>
> Hi there !
> I'm trying to do a board for the Atari Punk Synth.
> Im doing the schemtaic but ive' run into a snag of sorts.
> I need to use a LM556 chip, dual timer, but i can't find it in the 
> libs.
> Im running Unbuntu 9.04, using 0.0.20080825c-1 version.
> I know you can add more components to the libs but i can't seem to 
> find one for the LM556, I guess it's called the LM556CN now,according
> to Mouser.
> I've search thru the entire Lib pretty much and i just can't find.
> So I'm kinda stuck ATM.
> Any help would be great,I'll even throw in a twinkie ! to the person 
> that points me in the right direction.

It's easy, easy, easy to make a schematic symbol. Open the library editor from 
the schematic screen (it's on the top button bar), add the pins with names and 
numbers, draw a rectangle for the shape and you're (mostly) done. There are a 
few details regarding things like power pins but the help files cover this very 
well.

Save your personal symbols in your own library so that future updates to the 
base libraries don't overwrite yours.

One possible gotcha is that you'll need to remember to add your library to new 
projects and save the project options. It's just a couple of clicks but if you 
forget to do that, you'll wonder where your new parts went to.




[kicad-users] Re: 90angle crossing wire - how to do?

2009-06-22 Thread axtz4
--- In kicad-users@yahoogroups.com, "stefaca666"  wrote:
>
> in place where are 2 wires are cross in 90degre angle I want to fill like in 
> picture. how?

As Robert mentions, it's pretty easy to do this by making a small turn in the 
track from the pad as it reaches the perpendicular track and then a second 
short, mirror-image section that turns in the other direction.



[kicad-users] Re: Placing components on commercially manufactured prototyping boards

2009-06-18 Thread axtz4
--- In kicad-users@yahoogroups.com, "Dr.WhoDr.Who"  wrote:
>
> 
> I am just starting to think about using KiCAD for capturing some small
> circuit designs so that I can create nice printed documentation.
> 
> For initial prototypes, and when I expect that I will only create one
> unit as a simulator, I plan to use commercially manufactured prototyping
> boards such as the BusBoard Prototype Systems Solderable PC Breadboard
> http://www.busboard.us/bps-br1.htm 
> .
> 
> How could one use KiCAD cvpcb and/or pcbnew to show the traces and hole
> patterns that exist on the commercially manufactured  board, then place
> the components where they will go on the board?

I don't believe there's an existing library for this, but there's nothing 
preventing you from creating a template board file with just the tracks, and 
then open a copy of that template onto which you would place your components.

AFAIK, the design-rule-check (DRC) may not see the pads as connected to the 
traces unless they land exactly co-incident, so you're assuming more of 
the responsibility of checking that all and only the right things are connected.

With that in mind, however, it should work.

Alternately, there is a layout program that's designed to work with 
stripboard-style protoboards. Kicad can create netlists that it can read, so 
you will get routing and DRC capability. The program is VeeCAD; it's over at 
http://veecad.com and there is a free version available.

Stripboards are available from various vendors. One I've found on the 'net with 
decent prices is Futurlec at http://www.futurlec.com/ProtoBoards.shtml




[kicad-users] Re: PLEASE help....Anyone out there???

2009-06-15 Thread axtz4
--- In kicad-users@yahoogroups.com, kajdas  wrote:

> But you always need to have the vias/nodes connected with traces first.

Not with the most recent release. If a net is first selected when laying out a 
zone then the fill will add connections (using thermals) to pads that are part 
of that net. The resulting connections will (mostly) pass DRC so they are truly 
seen as "connected."

Zone fill is not 100% perfect -- some pads that appear to be connected may 
still show on the DRC as unconnected (not sure why), and I've had some 1-pin 
mounting holes become overlaid with the zone -- but it's much "smarter" than it 
used to be.

One footnote. If a pad needs very narrow traces, such as a connection to a 
fine-pitch QFP, one may still need to make a manual connection with an 
appropriate narrow track if the track width that the zone uses is so wide that 
it can't "get to" the pad.



[kicad-users] Re: Arduino duemilanove shield footprint

2009-05-23 Thread axtz4
--- In kicad-users@yahoogroups.com, Jaime Silva  wrote:
>
> Hello!
> 
> Does anyone on this list has an Arduino Duemilanove shield footprint with 
> it's connectors and holes that can share?

I uploaded a basic Arduino shield schematic component and PCB module to the 
Library folder in the Files section. May not be everything you need but it 
should be enough to get you started.



[kicad-users] Re: zone creation & automatic track suppression

2009-05-18 Thread axtz4
--- In kicad-users@yahoogroups.com, Julien Bayle  wrote:
>
> hi,
> 
> I create a pretty ground zone in order to suppress some tracks.
> no problem for the zone creation. it is very well documented so..
> 
> BUT I have a little problem:
> after the filling of the zone, it remains all the tracks existing between
> the pads supposed to be connected to the zone.
> 
> I put a snapshot of this.
> 
> Could someone help me ?

With the latest rev, you don't need to create tracks between pads that will be 
connected to the zone; thermal reliefs will be automatically created, with the 
relief widths of the size specified in the zone fill dialog.

Two exceptions to this. You may want "normal" reliefs to be wider than will fit 
into a small pad, like a TQFP. In that case, use a narrow trace and connect 
that pad to another component on the net as usual. The other exception would be 
power pads where you might want much larger traces. Again, draw these 
separately at the desired width.

Once you fill the zone, any existing traces will be merged to the zone in the 
Gerber file and won't be separately visible in the final board.




[kicad-users] Re: Solder Paste

2009-04-13 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Just an update on this for the record.   The modified Gerber produced 
> using axtz4's script has been accepted by the people that asked for the 
> solder paste shrink, so that confirms the script does the job.   Thanks 
> again, axtz4.
> 
> Regards,
> 
> Robert.

Cool! Good to hear that it worked for y'all.



[kicad-users] Re: Solder Paste

2009-04-02 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Hmmm - that would be a lot of manual editing.   OK, thanks.   At least I 
> can now solve it with a bit of C code if they insist on this one.

Give this a try (I hope the Y! formatting doesn't totally destroy it.) May need 
to be tweaked for your house Gerber style.


#!/usr/bin/perl
#
# Usage: perl shrink_paste.pl [input] [shrinkage] {minimum}
#
# Define $scale as the factor from the units of the command line shrinkage
# value to the units in the Gerber. For a command line unit of mm and a
# Gerber unit of inches, use 25.4.
# If specified, the minimum dimension will be respected. If not specified,
# it defaults to 0.0. Units are assumed to be the same as shrinkage and
# similarly affected by the scale factor.

$scale = 25.4;
$minimum = 0.0;

$iname = $ARGV[0];
if ($iname eq "") {
print "No input filename\n";
exit;
}

$oname = $iname;
$bakname = $iname;

$base = rindex($oname, ".pho");
if ($base == -1) {
print "Input not a Gerber? (Not .pho)\n";
exit;
}

$shrinkage = $ARGV[1];

if ($shrinkage == 0) {
print "Quitting, no shrinkage spec'd\n";
exit;
}

$shrinkage /= $scale;

$minimum = $ARGV[2];
if ($minimum < 0.0) {
$minimum = 0.0;
}
$minimum /= $scale;

substr($oname, $base) = ".tmp";
substr($bakname, $base) = ".bak";

open (IFILE, $iname) or die "$iname: $!";
open (OFILE, ">", $oname) or die "$oname: $!";

$working = 0;
$x = 0.0;
$y = 0.0;

while () {
chomp;
if (!$working) {
printf(OFILE "%s\n", $_);
if (/APERTURE LIST/) {
$working = 1;
}
} elsif ($working) {
if (/APERTURE END LIST/) {
$working = 0;
printf(OFILE "%s\n", $_);
} else {
@field = split(/[,X\*]/);
if ($field[0] =~ /C/) {
$x = $field[1] - $shrinkage;
if ($x < $minimum) {
$x = $minimum;
}
printf(OFILE "%s,%.6f*%\n",
$field[0], $x);
} elsif ($field[0] =~ /[RO]/) {
$x = $field[1] - $shrinkage;
if ($x < $minimum) {
$x = $minimum;
}
$y = $field[2] - $shrinkage;
if ($y < $minimum) {
$y = $minimum;
}
printf(OFILE "%s,%.6fX%.6f*%\n",
$field[0], $x, $y);
}
}
}
}

close(IFILE);
close(OFILE);

rename($iname, $bakname);
rename($oname, $iname);




[kicad-users] Re: Solder Paste

2009-04-02 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Thanks.   I should add that they want the solder mask to be positive (ie 
> the solder mask clearance is supposed to be 0.4mm), so your cunning idea 
> can't be applied in this case.

[sound of planting face in hand] D'oh! Yes, I was thinking solder masks and not 
the paste tool.

Well, one sure way to do this is to edit the *SoldP_Cmp.pho (and similar) file 
and mod the appertures. E.g., if the original apperture for an 0804 was D23 and 
it was listed as %ADD23R,0.055000X0.035000*% (1.4 mm x 0.9 mm) in the Gerber, 
changing it to 1 mm x 0.5 mm would be %ADD23R,0.04X0.02*%, more or less.



[kicad-users] Re: Solder Paste

2009-04-01 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Hi all,
> 
> I've been asked to shrink the size of the solder paste windows relative 
> to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been 
> asked to make the solder paste window 0.96mm in diameter.   Does anyone 
> know how I might achieve this please, either with kicad or via some 
> post-processing stage?

In the board editor, select the menu Dimensions | Tracks and Vias. From that 
dialog, you can set the global mask clearance. A negative clearance does seem 
to work okay, though a verification pass through a Gerber viewer is always a 
good idea ...



[kicad-users] Re: Missing soldermask clearance

2009-03-04 Thread axtz4
--- In kicad-users@yahoogroups.com, Alexander Farley  wrote:
>
> Hi everybody,
> I have uploaded my gerber files to FreeDFM.com and got an error report 
> indicating "missing soldermask clearance on SMD pads". Quote:
> 
> Requirements:All surface mount pads should have soldermask relief, or 
> they will be covered by soldermask, and unsolderable.
> 
> Has anybody else encountered this? How can I fix this?

The "hole" for solder mask will be created automatically *if* you have the 
appropriate solder mask layer turned on for the pad.

All of the ones in the default libraries should have this property. If you get 
third party modules or create your own, check that the mask layer is selected 
for the pads.

Mask clearance is set globally from the Dimensions | Tracks and Vias menu item.

Before sending your Gerbers out for fabrication, *always* load them into a 
viewer. GerbView that is part of the Kicad distribution works fine; ViewMate is 
another one out there that's often recommended.

Is it possible that you didn't supply a Gerber for the mask layer?



[kicad-users] Re: How can I route my self-made smd-pad-arrays?

2009-02-12 Thread axtz4
--- In kicad-users@yahoogroups.com, "benjaminrohland" 
 wrote:
>
> Hello, I used modedit to create two double-rows of smd-pads, 
because I 
> want to biuld a one-to-one adapter for a C-Plug. My Problem is that 
I 
> can't connect the bottomsided pads. If I start a track on one pad 
and 
> double-click on another there should be a connection, but the track 
> doesn't cling to the other pad. What could be the reason?

I guessing that you didn't also make a schematic for the project and 
then create a netlist. If PCBnew doesn't have a netlist *and* if DRC 
(design rule checking) is also turned on then everything is "denied" 
as a DRC violation. (This is actually A Good Thing.)

Either do a schematic and then create and import a netlist into 
PCBnew or you can turn off DRC within PCBnew -- which pretty much 
lets you operate freehand and connect anything to anything else.

The DRC button is at the top of the left-hand button bar. If you turn 
it off, then a lot of the built-in safety checking is lost.




[kicad-users] Re: Loading Libraries

2009-02-03 Thread axtz4
--- In kicad-users@yahoogroups.com, "Doug"  wrote:
>
> I am not understanding something here. I am in Eschema, I select
> preferences then libs and dir. I add (or ins) new libraries. I save
> cfg to the project file name. As long as I am in the current sheet
> libraries I added are there. Then I exit eschema. 
> 
> When I come back the libraries I added are not there. I also tried 
to
> save cfg to kicad.pro but it did the same thing.
> 
> What am I doing wrong? I would like the libraries I add to be 
global,
> that is available for any future design.

I haven't tried this, so there's a chance that doing so may cause 
dandruf, your car to catch on fire, or the sky to fall but it looks 
like editing kicad/share/template/kicad.pro directly to add your 
custom libraries might do the trick. The down side is that installing 
a new version of Kicad would probably overwrite your edits.

I just keep all my self-build outlines and modules in a "local.lib" 
or .mod and then add those to the new projects.




[kicad-users] Re: Need Information about PCB-contractors

2009-01-26 Thread axtz4
--- In kicad-users@yahoogroups.com, "benjaminrohland" 
 wrote:
>
> Can you tell me which contractor is the best for producing my 
conductor 
> board prototype? I found some in the internet, but the prices are 
> similar. Are there any pros and cons I have to pay attention to?

There is no single "best." In general, you can pay more (sometimes 
much more) for faster service and prettier boards or pay less 
(sometimes much less) for a slower turnaround and and more basic 
boards (e.g., no silkscreen or solder mask).

If you've not send a board out before, one thing to be sure to check 
is the diameter of any through-holes (including vias). Know whether 
you're looking for a diameter before plating (raw drill size) or 
after plating and know whether the hole diameters that result are 
really appropriate for the parts you intend to use. 

PCB Express http://www.pcbexpress.com/index.php isn't the cheapest 
but they'll do well for your first couple of runs until you're more 
comfortable with the process. At a *minimum* read through their pre-
order checklist and FAQ, even if you decide to go with somebody else. 
Other places will have different "free" drill sizes but otherwise 
it's pretty good advice.

If you can wait a little longer, Sparkfun runs a batch fab at http://
www.batchpcb.com/. You'll save a little but expect to wait. OTOH, you 
may receive more boards than you ordered (at no additional cost) if 
they used yours to "fill in the gaps" to complete a panel.



[kicad-users] Re: PWR_FLAG problem

2008-12-15 Thread axtz4
--- In kicad-users@yahoogroups.com, "rojj_999"  wrote:
>
> I kind of like KiCad especially after using Eagle with its 
limitations
> and I finally found a good source for libraries that I needed.  I 
have
> one problem though.  When I tried to use the PWR_FLAG to clear any 
ERC
> failures I was able to get the GND to work, but using VCC and I can
> not get rid of the errors and it gives me 2 and they seem to move
> around depending on how I draw my connection wires.  How do I get 
rid
> of this error or can I just ignore it. 

A possible cause could be that your VCC net has multiple labels, 
possibly as a side effect of an invisible power pin on some component 
that labels it as V_CC or something. See below for an easy way to 
check this.
 
> One other thing is that if I run PCBNew I get an error that the 
*.brd
> file does not exist and then it creates a blank one instead of
> creating one from the schematic.  How do I get this to work.

Once you get the blank page, you would then do a "read netlist" (the 
icon on the top next to the checkmark) which drops all of the 
component footprints that you specified using CVPCB into a big pile. 
It seems like an unnecessary extra step but I think it's really a 
feature, since I can do different boards (e.g., prototype and 
production) from the same netlist.

At this point, I generally use Global Move and Place | Move All 
Modules from the right-click pop-up menu to separate the footprints 
for easier access. You need to enable Global Move and Place by 
enabling the Mode Module button on the left'ish side of PCB's top 
button bar.

Now, once you have the footprints on the page, do a Net Highlight 
(righthand button bar) and select one of your VCC pins. If *all* of 
the correct VCC pins light up (and no others), then you're probably 
okay to ignore the DRC above.

> I may need to go back to Eagle or somehow be able to import KiCad's
> netlist into FreePCB though I am unsure if KiCad is compatible with
> the PADS netlist format which FreePCB uses.

There seems to be a plug-in for the PADS format. I don't use it but 
it's discussed at http://kicad.sourceforge.net/wiki/index.php/FAQ




[kicad-users] Re: "invisible pins" newbie question..

2008-09-05 Thread axtz4
--- In kicad-users@yahoogroups.com, "valdef78" <[EMAIL PROTECTED]> wrote:
>
> Hello all, I read all the documentation about the schematic part of 
> KiCAD, but I'm still confused about some points.
> 
> for the invisible pins, I think I understand the way to use them 
> in "normal" situations, but what about a schematic with different 
power 
> supplies (5V, 3.3V, 2.8V,..) and different components that have 
> invisible pins with the same names, but witch should go to 
different 
> supplies (some on 5V and some on 3.3V for example..).
> is there a special way to go in that case or should I have to 
create my 
> specific library with some of the parts and modify the names of the 
> pins or set them to visible..?

There's a toggle button on the left side button bar to show/hide the 
invisible pins on the schematic. I default to running with "show 
invisible pins" for the reasons that you outline above.



[kicad-users] Re: Creating Veroboard style layouts with Kicad ?

2008-07-24 Thread axtz4
--- In kicad-users@yahoogroups.com, "simon.clubley" 
<[EMAIL PROTECTED]> wrote:
>
> I layout my circuits on Veroboard and I am currently using Vutrax 
because
> it has the capability to layout a Veroboard style track in it's PCB
> designer.
> 
> I would like to switch to an open source package like gEDA or Kicad,
> and after reading through the Kicad documentation, I don't see any 
similar
> functionality present, but it's possible that I may have missed it.

Another option is Veecad from http://www.veecad.com.

Veecad is a stripboard/veroboard layout application that can use 
netlists generated by Kicad. It has both free and commercial (but 
pretty inexpensive) versions.

Although I prefer do to home-brew boards using the toner transfer 
method, I have used Veecad to do a couple of layouts and it works 
pretty well.



[kicad-users] Re: Panelisation

2008-05-21 Thread axtz4
--- In kicad-users@yahoogroups.com, "oecherexpat" <[EMAIL PROTECTED]> 
wrote:
>
> Is there a way of doing a panelisation? I have to create 3 PCBs on 
one
> panel anyway and thought it would be a good idea to save the money 
and
> do the whole panelisation myself. Would also give me a better 
respond
> time to our PCB manufacturer who always wants to have done something
> in a different way ;-)
> 
> I know people who use Circad or Eagle and do things like this with a
> script but a simple block copy that keeps component designators 
(most
> important!) would be good enough.
> 
> Any way to get that done?

I have a Perl script that I use to panelize that I've uploaded to the 
files area: KDupe.pl. You'll need to put in the x and y spacing (it 
doesn't try to find the board boundaries by itself).



[kicad-users] Re: How to make little holes in the pads centers printing from Gerbview?

2008-02-21 Thread axtz4
--- In kicad-users@yahoogroups.com, "klui_" <[EMAIL PROTECTED]> wrote:
>
> It's used during manual board making for centering a drill.

For home-made boards, rather than using the "plot" command to create 
gerbers, use the "print" command and print exact 1:1 for each layer. 
That way the layers print as they appear on the screen with the 
correct width and with open holes in the pads.

Depending on the method you use to prepare the board for etching you 
may need to mirror the print, of course.



[kicad-users] Re: Is there a separate Lib Viewer/browser available ?

2008-02-01 Thread axtz4
Excellent tools, Renie. Thank you for making them available!



[kicad-users] Re: Single layer PCB ... bridges on top layer

2007-12-17 Thread axtz4
--- In kicad-users@yahoogroups.com, "newskyperhh" <[EMAIL PROTECTED]>
wrote:

> I want to make a single layer PCB with only one copper site. So i must
> make manually bridges on component side.
> 
> But I can't make any pad's or continuous bonding / interlayer
> connection  for bridges.

Just make a track on the component side using the normal method, which
will create a via for you. The size of a via can be adjusted using the
 Dimensions | Tracks and Vias menu item, and it can be made large
enough to give a good pad size for soldering the jumper wires.

There are some limitations to this, since jumpers made with insulated
wire can cross whereas real track can not.



[kicad-users] Re: Logo for KiCad wiki required!

2007-10-24 Thread axtz4
--- In kicad-users@yahoogroups.com, "igor_plyatov" <[EMAIL PROTECTED]> wrote:
>
> Hello all!
> 
> The KiCad wiki ( http://kicad.sourceforge.net ) required the logo.
> 
> If somebody has ability and talent in graphical area, then please help
> to the KiCad project - create the logo!
> 
> P.S. Logo can be e-mailed to me, posted in this list or uploaded to
wiki.

Why not just use the existing KiCad icon? 



[kicad-users] Re: Multi-channel amplifier board

2007-10-23 Thread axtz4

> Is this a good approach or is there a better way to do this ?

The following Perl script may help. It will array the modules and 
tracks of a .brd file and, by default, increment the reference 
designators for the components.

Try placing the amp section as sub-pages and create corresponding brd 
file for the section. Then use the schematic editor's annotation tool 
to renumber, which seems to stack the numbering in such a way that 
the resulting netlist will match the module numbering in the output, 
duplicated brd file.

---8<--- KDupe.pl ---8<--8<---
#!/usr/bin/perl

# KDupe
#
# Given a KiCad .brd file that contains a collection of components,
# produce a new .brd file with that collection duplicated to a 
rectangular
# array with the reference designators incremented appropriately for
# each collection.
#
# Arguments: [input filename] [columns] [rows] [x-offset] [y-offset]
# Output is the input filename with a -blk appended to the base name.
#
# Example: perl dupe.pl test.brd 8 1 1 0
# duplicates the contents of test.brd 8 times in the x direction,
# each offset by 1 unit in the new file test-blk.brd.
#
# Example: perl dupe.pl test.brd 4 2 1 2
# places the contents of test.brd into a 4 column, 2 row array
# offset by 1 unit in the x direction, 2 in the y.
#
# Note: the "units" are based on the internal units found in the
# .brd file's $SETUP section.
# 
# Note: The netlist section is passed through unchanged. Be sure to
# re-read the netlist upon opening the modified board file.
#
# Reference designators may start at an arbitrary value. Offset values
# in the duplicated components start at one greater than the highest
# value of that type in the base component.
# U1, U2, U3 -> U4, U5, U6 and U7, U8, U9 and so on ...
#
# Reference designators are assumed to be a single alpha character
# followed by a number consisting of one or more digits.
#
# A trailing "r" or "R" after the offset arguments indicates that
# the refrence designators should NOT be adjusted.
#
#
# KDupe is Copyright (C) 2007 Richard Webb
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 
USA

use warnings;

# For those who never read comments or who  forget the syntax 
# after a while:

if ($#ARGV != 4 && $#ARGV != 5) {
print("Given a KiCad .brd file that contains a collection of 
components,\n");
print("produce a new .brd file with that collection duplicated to 
a rectangular\n");
print("array with the reference designators incremented 
appropriately for\n");
print("each collection.\n");
print("\nArguments: [input filename] [columns] [rows] [x-
offset] [y-offset] {r}\n");
print("Output is the input filename with a -blk appended to the 
base name.\n");
print("\nExample: perl dupe.pl test.brd 8 1 1 0\n");
print("duplicates the contents of test.brd 8 times in the x 
direction,\n");
print("each offset by 1 unit in the new file test-blk.brd.\n");
print("\nExample: perl dupe.pl test.brd 4 2 1 2\n");
print("places the contents of test.brd into a 4 column, 2 row 
array\n");
print("offset by 1 unit in the x direction, 2 in the y.\n");
print("\nNote: the \"units\" are based on the internal units 
found in the\n");
print(".brd file's \$SETUP section.\n");
print("\n");
print("Note: The netlist section is passed through unchanged. Be 
sure to\n");
print("re-read the netlist upon opening the modified board 
file.\n");
print("\nReference designators may start at an arbitrary value. 
Offset values\n");
print("in the duplicated components start at one greater than the 
highest\n");
print("value of that type in the base component.\n");
print("U1, U2, U3 -> U4, U5, U6 and U7, U8, U9 and so on ...\n");
print("\nReference designators are assumed to be a single alpha 
character\n");
print("followed by a number consisting of one or more 
digits.\n\n");
print("A trailing \"r\" or \"R\" after the offset arguments 
indicates that\n");
print("the refrence designators should NOT be adjusted.\n");
exit;
}

open (IFILE, $ARGV[0]) or die "$ARGV[0]: $!";
$extpos = rindex($ARGV[0], ".brd");
if ($extpos == -1) {
printf("%s: not a .brd file\n", $ARGV[0]);
exit();
}
$oname = substr($ARGV[0], 0, $extpos) . "-blk.brd";
open (OFILE, "> " . $oname) or die "$oname: $!";

$mod_count = 0;
$state = 0;

$cols = $ARGV[1];
$rows =