# Ray Kholodovsky ​​​​​ Following my comment to your post ( https://plus.google.com/+RayKholodovsky/posts/V8PW8mfxvTu ),

@raykholo ​​​​​ Following my comment to your post (https://plus.google.com/+RayKholodovsky/posts/V8PW8mfxvTu), this is how double sided PCB tool works in FlatCAM (http://flatcam.org):
a. add top and bottom layers (gerber files)
b. select bottom layer and provide mirror axis and coordinates
c. mirror the board -> you will see that one layer moved a bit, according to alignment holes coordinates
d. create alignment drills -> this will create 2 pairs of holes with exact coordinates entered for the bottom and top layers in conjunction with mirror axis
Details on pictures.

The Chilipeppr Eagle PCB widget should allow creating a small cnc job for alignment holes drilling, as well.

Ok, so it looks like they generate 4 holes for you outside the board outline. That’s a lot of extra wasted FR4. It also seems this is a very symmetrical board and I would assume would not need the weird offset I’m seeing in the pictures. Is that because you made that offset or flatcam did? Why not just let you place the holes smaller and on your own in spots on the board where there’s room?

@jlauer This board was made only for reference. Normally you can use very small bit (I usually drill 1mm) and holes can be made close to the board. There are 2 alignment holes based on coordinates entered by the user. In this example:
(X1, Y1) = (10, 12) - bottom-left corner hole
(X2, Y2) = (45, 13) - bottom-right corner hole
(Xm, Ym) = (12, 20) are the mirror point coordinates and they belong to X axis, as X has been set as mirror axis in this example, so Ym=20 is the reference value to mirror the board, we omit X value, as we use X axis.
second pair of alignment holes coordinates:
Y3 = Ym + |Y1-Ym| = 20 + |12-20| = 20 + 8 = 28
Y4 = Ym + |Y2-Ym| = 20 + |13-20| = 20 + 7 = 27
and as X1 = X3 and X2 = X4 the mirrored holes coordinates are:
(X3, Y3) = (10, 28)
(X4, Y4) = (45, 27)
Alignment holes are created by FlatCAM based on user-provided coordinates by clicking ‘Create Alignment Drill’.

It is possible to mirror close to the symmetry center of the board and define holes coordinates close to the board edges, so FR4 waste will be minimal. But for thr purpose of this example I made it ‘less effective’.

Drilling holes inside the board is OK, but we have to make sure that mirrored holes will not be places on traces or just use holes and not four.

Another approach can be to find exact center of the board imported by the widget, create alignment holes referenced to this point and reference all layers (in most cases Top and Bottom) to this point accordingly.

For me, I want to do through hole plating, so I have to drill the holes and then cut the board dimensions out before milling any trace isolation. That means I have to include the alignment holes inside the dimensions or expand the dimensions. I think ChiliPeppr should allow for that. I do think, if I have room inside the board, that an option to sneak in the hole there is cool, but you’re right that it could mess with traces and isolation spacing. This is a fairly involved task of letting the user pick registration holes.

The other approach is to skip all of this and just do webcam fiducial detection. I’m sort of liking that idea more and more.