DIY Printed Circuit Boards – Part 2: Isolation Milling

Isolation milling is not an option available to everyone! It requires that you have a small CNC mill that has the required accuracy to mill tracks of the thickness that your design requires, and alsothe  necessary software. I have a Sieg X1LP mini mill (ArcEurotrade) that I converted to CNC using my own parts. You can see a picture of it below. My mill does not have ball screws and the Z axis is driven directly via the bevel gear that used to be operated by a hand-wheel. Thus, I think it would be fair to describe the whole system as pretty crude. However, through the wonders of Mach3, the software that takes G code and converts it into the signals required to drive the stepping motors that operate the XY table and the Z axis, it is possible to tune the mill to be surprisingly accurate. The key to accuracy when using the ACME lead-screws that come with the Sieg mill is to regularly check the mill’s accuracy and set the backlash compensation so that its movements are both accurate and repeatable. The backlash compensation in Mach3 works extremely well – in essence, it does exactly what the operator would do were they operating the mill manually. When used manually, one works with the mill to take up the backlash before dialling in a further real movement of the table. So, for example when making an X axis movement to the left after the mill has made a movement to the right, on first turning the hand wheel one encounters no resistance as the lead-screw’s thread moves to take up the slack within the drive nut. It is only once that slack has been taken up that the hand wheel begins to drive the table. In Mach3 you can tell the programme to make the movement that removes the backlash and then drive the table the required distance. At the end of this blog entry, I provide a reference to a video that shows you how to do this. Suffice it to say, that with the backlash compensation correctly set, the X1LP mill is very accurate – without it, you will not be able to mill a PCB. Obviously, the head of the mill needs properly ‘trammed’ – set to be absolutely orthogonal to the surface of the table. My Sieg came very well trammed and no shimming of the column carrying the mill head was required. I suspect the advice given above will apply to almost any small mill regardless of make.



My CNC converted Sieg X1LP mill. The MPG handwheel is a very useful accessory enabling you to operate the mill while standing right in front of it!

The first step in the production of a PCB is to use design software to create the files you require to produce the G code to drive the mill. I use EasyEDA. This is a web-based system. It is very easy to use and has the option to either send the files off to have EasyEDA manufacture your boards or to download the files you need to make them yourself. Thus, you have a way of making both a prototype board for yourself, and a way of ordering as many copies as you like! There are tutorials showing you how to use EasyEDA so I will not explain here ( ). The design process consists of drawing your schematic by placing components or packages on a canvas. You can use SPICE to simulate the circuit if you wish. Following this, you can convert the schematic into a PCB. It is important to bear in mind the separation distance between tracks – this needs to be more than twice the tip-diameter of the cutter used in milling the board.


Simple schematic of an Arduino button pad created using EasyEDA


The PCB design from the schematic above

Pressing the ‘Fabrication Output’ button at the top of the EasyEDA PCB design screen will open a new browser window giving you the option to download the Gerber files to your computer. The files are download to a zipped directory which contains the following types of file all with the name Gerber_drill with the file extensions GTL, GBL, GTS, GBS, GTO,GBO, DRL, GKO, GTP.

These apparently bewildering file suffixes have the following meanings:

GTL = top copper

GBL = bottom copper

GTS = top solder mask

GBS = bottom solder mask

GTO = top silkscreen

GBO = bottom silkscreen

DRL = NC drill

GKO = board outline

GTP = top paste

Only two or three of these files are relevant to milling your board. The DRL file, which contains the points at which the board needs to be drilled for component leads etc., and the GBL and/or GTL files which contain the information concerning the track layouts on the top and bottom copper surfaces of the PCB. To make use of these files you will require a piece of software like CamBam which is an application to create CAM files (G-code) from CAD source files or its own internal geometry editor. It like other programs of its kind, can import Gerber files and turn them into the G-code that Mach3 requires to drive your mill in order to cut your PCB design. Let’s consider the procedure for utilising the Gerber files produced from a PCB design program such as EasyEDA for a single-sided design.

Since Gerber files record everything in Imperial units, in CamBam (or equivalent) set everything up for ‘inches’. Then, open the GBL file and you will see something like this:


The Gerber GTL file imported into CamBam


Gerber DRL file imported into CamBam and superimposed on the GTL file

Select all the tracks and hit ‘Copy’. Now open the DRL file without saving the tracks and hit ‘Paste’. You now have the tracks and the holes superimposed. I now convert the units metric. I do this because all my tooling is metric. After selecting all the components of the design, you can drag the design to a convenient location relative the XY origin. Now, select all the tracks in the design and specify how you would like these to be milled. Select ‘Profile’  as the milling operation and set the parameters to mill outside the profile. I use a 0.2mm 30 degree V-cutter of the kind used for engraving and run the mill at maximum RPM. This means that the minimum tool diameter you should set is 0.2mm. However, this assumes that it is the tip of the cutter that will do all the cutting when in fact the diameter of the cutter at the chosen cutting depth will be greater than this so you will need to lie about the tool diameter! The depth of copper depends on the board you buy. For 0.5oz board the copper is 0.7mils thick or about 17.5 microns, for 1oz board it is double this and double again for 2oz board. So for 1oz board, using a piece of scrap, try something about 0.25mm for the tool size along with a cutting depth of about 50 microns. If you get the depth or diameter wrong, the tracks you cut will either not be isolated or be cut to be narrower than you wanted. During the milling process you can use any manual Z fine tuning adjustment your mill have to get the the depth of cut just right. Also, if the cuts are not deep enough, you can mill the same piece of board a second time setting the Z zero point a little deeper. However, before setting off to mill a board you will need to convert the design to G-code and save it. I save the ‘track G-code’ and the ‘hole G-code’ to separate files and mill them sequentially. So after selecting the tracks and specifying how they are to be milled, you can save the G-code file for them and then deselect (or delete) them. You can then select the holes and specify drilling operations for them and create a separate G-code file for them. If in the end you want lots of different sized holes then I suggest you may find it easier to first drill them all to the same size and then drill the larger holes out by hand using a Dremel or, even just use the V-cutter to ‘dink’ the centres of all the through-the-hole pads and drill them by hand. If you don’t do this, you will need to edit the G-code to stop the mill and make the necessary tool changes – too difficult for me! Don’t be tempted to drill on the copper without a guiding ‘dink’ or pilot hole – your drill will skid all over the place!


The mill all set up and ready to go

Holding down a piece of FR4 for milling can be problematic. The technique I employ is to use double-sided tape to stick the board to a piece of MDF and then clamp the MDF to the mill table. Not all boards are equal! The flatness of the board is critical so any variation in the thickness of it will cause problems. For this reason it is probably a good idea to steer clear of the cheaper board you see advertised on eBay. Because of the shallow depth of cut, it is crucial to accurately zero the Z axis. To do this you can use an electrical method, lowering the mill until you get the first electrical contact between the tool and the copper surface of the board, or you can employ a magnifying glass and watch for first contact (I do the latter with the mill running). During the cutting process I usually sray a little WD40 onto the surface – it seems to result in a slightly better cut. Using the technique described above I can easily achieve tracks of 0.2mm thickness.


Tungsten carbide V-cutter used for milling PCBs and a tungsten carbide micro-drill for drilling the holes for component leads etc.


The PCB held on double-sided tape


PCB after milling both the ‘tracks’ and ‘holes’ files


Setting up a mill to do backlash compensation in Mach3:




About petermobbs

Inveterate meddler.
This entry was posted in electronics, Photography and electronics and tagged , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s