63
A Build-Your-Own Three Axis CNC PCB Milling Machine Fabrication and User Manual Teaching Learning Centre for Design and Manufacturing Education Indian Institute of Information Technology, Design and Manufacturing-Kancheepuram Chennai 600127 July 20, 2016.

A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

A Build-Your-Own Three Axis CNC PCB

Milling Machine

Fabrication and User Manual

Teaching Learning Centre for Design and Manufacturing Education

Indian Institute of Information Technology, Design and

Manufacturing-Kancheepuram

Chennai 600127

July 20, 2016.

Page 2: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Teaching Learning Centre for Design and Manufacturing Education

TEAM MEMBERS INVOLVED

SATHYAKUMAR. N (Writer of the Manual)

KAMAL PRASADH BALAJI

RAJA GANAPATHI

DAPHNE. R

Copyright © 2017 by Teaching Learning Centre for Design and Manufacturing

Education, IIITDM.

All rights reserved. No part of this publication may be reproduced, distributed, or transmitted

in any form or by any means, including photocopying, recording, or other electronic or

mechanical methods, without the prior written permission of the publisher, except in the case

of brief quotations embodied in critical reviews and certain other noncommercial uses

permitted by copyright law. For permission requests, write to the address below.

Teaching Learning Center (TLC),

IIITDM Kancheepuram Campus,

Melakottaiyur Village,

Off Vandalur-Kelambakkam Road

Chennai 600127

E-mail: [email protected]

Page 3: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Teaching Learning Centre for Design and Manufacturing Education

TABLE OF CONTENTS

1. Introduction ........................................................................................ 3

2. Installation and Configuring EAGLE ................................................ 6

3. Using EAGLE-Schematic ............................................................. ...12

4. Using EAGLE-Board Layout ........................................................... 18

5. Generation of G-code ....................................................................... 27

6. PCB Isolation Routing and Drilling ................................................. 31

7. Special Procedures ........................................................................... 37

8. Conclusion ........................................................................................ 42

APPENDIX

DATASHEETS

BILL OF MATERIALS AND PART SUPPLIERS

PAPER PUBLICATION ON THIS PROJECT

Page 4: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Teaching Learning Centre for Design and Manufacturing Education

3

1. INTRODUCTION The need for fabricating a prototype circuit arises frequently in electronics, including education and

research laboratories. In resource-poor countries in the developing world, this is hindered by the high cost

of commercial Printed Circuit Board (PCB) prototyping machines and long turn-around commercial

fabrication process. Practical, hands-on laboratory teaching and experimentation becomes necessary to

improve learning in electronics. In this project and in the following series of tutorials, a low-cost build-

your-own (BYO) semi-automated three-axis PCB milling machine for double-sided PCB prototyping is

developed using commercial components and open source hardware and free open source software to

provide students, teachers, and engineers an understandable, affordable source for PCB prototyping. Also,

the main problems encountered during fabrication of PCB have been mentioned and the techniques used to

solve are discussed in detail.

1.1. Need for PCB Prototyper in Engineering Institutions

The semiconductor industry is one of the fastest growing industries in our country and thereby. With

this, the production and the standard of printed circuit boards (PCB), which is the heart of every

electronic product, are on the rise. PCBs not only provide mechanical support for the electronic

components and also provide other services like electrical impedance matching, electromagnetic

shielding and heat conduction. Specialized courses and curriculum in PCB design and electronics

assembly are introduced in electronics engineering education. However, due to high cost of

commercial and often imported PCB prototyping equipment, there is a severe lack of practical hands-

on PCB design teaching and learning in India. This situation can be remedied with the increasing

affordability and versatility of open source hardware like microcontrollers and microcomputers,

commercial off-the-shelf components like actuators, sensors as well as free, open source software, which can be integrated for design of low-cost PCB prototyping machines for electronics education.

Do-it-yourself (DIY) PCBs can be designed using simple techniques such as using an iron to transfer

ink printed on a transparency to a PCB with chemical etching. Such as like the one presented in this

YouTube video at www.youtube.com/watch?v=6uInan-TjiA. But these methods lack sufficient

consistency for surface mount devices (SMDs) and the drilling of holes is tedious since it has to be

done manually. Further, the environmental and health hazards from chemicals used in these processes are significant.

Fig.1.1. Showing the process of chemical etching

Development of safe and high resolution milling and drilling of PCBs is enabled using isolation

routing which overcomes many of the above mentioned drawbacks. In Isolation milling, the copper

from the board is first removed to recreate pads, which are signal traces and structures based on the pattern generated by a PCB parts layout file.

Page 5: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Teaching Learning Centre for Design and Manufacturing Education

4

In this project, a BYO PCB prototyping machine has been developed and deployed to make both single- and double-sided boards for through-hole technology and Surface Mount Technology (SMT).

The common problems encountered while soldering the components on the PCB and aligning the

board layers have been discussed. Modern and innovative approaches used on an industrial level to

overcome these problems have been implemented in our machine and studied. Commercial techniques

used in easy and comfortable operation of PCB prototyping machines have been incorporated in the

machine.

The above features have been implemented using open source software programs so that teachers and

students themselves would be able to fabricate high-resolution PCBs in an academic environment

matching near-commercial quality. A major advantage of the proposed system is that users can

maintain and repair the machine on their own, without expensive annual maintenance contracts or

import of costly spare parts. With the understanding and experience gained, the users can also

gradually add advanced features like fully automated PCB machines with pick and place assembly, vision feedback, etc.

1.2. Reconfiguring CNC Milling Machine as PCB Prototyper

The design of the CNC milling and drilling machine used in the proposed PCB prototyping system is based on

our earlier developed 3-axis CNC milling system, presented in our other tutorial on Making Your Own 3-Axis

CNC Milling machine. A detailed explanation about the mechanical design, hardware and the software can be

found in that.

The main specifications of the milling machine are listed below:

Table 1. PCB milling machine specifications.

X,Y,Z axes travel 180 x 180 x 50 mm

Motors Steppers: 3x NEMA 17,200 step/rev, 2-phase,

1.3A

Spindle motor: 5000rpm @24 V DC, 0.3A no

load

Lead screws Stainless steel, 3xM8x1.25, 20 tpi

Stepper drivers 3 x single axis, rated 3A, up to 1/16 micro

stepping

Speed X, Y axes: 8 mm/sec

Resolution Electrical: 1.8° (0.0062 mm/step)

Mechanical: 0.01mm/step

Weight 14 kg

USB microscope Resolution: 640x480 pixel

Microcontroller Arduino Uno

Fig.1.2. Mechanical Setup of the Machine Fig.1.3. Electronics Hardware Assembly

Page 6: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Teaching Learning Centre for Design and Manufacturing Education

5

A camera is mounted parallel with the spindle axis using a as shown in the below figure. A high speed spindle

motor of RPM 5000 is used and is powered by the 24V uniform supply from the SMPS used for CNC. The

milling and drilling tool bits are mounted to a high speed spindle motor with a precision ER-11 chuck which

holds bits with 1/8 shank dia. A 30° V-engraving bit with end width of 0.1mm is used for routing. A 0.6mm

single-fluted drill bit is used for making holes and a 0.6mm end mill bit is used for copper rubout and for cutting

sections of the boards. All the tool bits used for the operation are made constant in their height by adding a

depth setting ring. All bits used are tungsten carbide bits because of their extended tool life.

Rest of the machine settings and tools used in this PCB milling machine are same as the generic CNC milling

machine explained in the previous tutorial.

1.3. Isolation Routing Procedure

The outline of the procedure for fabricating PCB is as follows. The detailed explanation of the softwares

used and the design procedure is explained in the individual sections of the Manual.

The PCB design is first generated using a Computer Aided Drawing Software by the name Autodesk

Eagle CAD. The design of the circuitry is first drawn in a schematic file which is something like a

typical circuit diagram.

The circuit design is then transferred into the Board layout file in the same software where the exact

positions of the components of the circuit and the mounting holes and vias of the board are placed. The

components are connected by the copper traces here where they can be set in different bent styles,

angles, width, distances, etc.

The board layout is input into Computer Aided Manufacturing (CAM) Software called as FlatCAM

which converts it into a G-Code file which has the machine readable form of instructions for the CNC.

The CAM software simply analyses the position of the copper tracks and the position of the

components and generates tool paths to route and drill the board matching the board layout. Other

machining parameters for milling are also adjusted here.

The converted G-Code files are then fed into the machine using G-Code sender program called

Universal G-Code converter which controls the CNC controller.

The tool is first moved and set to an arbitrary origin position (with respect to all three axes). Now the

Etching G-code file is run which cuts out the tracks and the pads. Now the tool is moved again to its

previously set origin position and the drilling G-code file is run.

In case of double-sided boards, the same procedure is followed for generating G-Code data; the top

side is engraved first and then the board is flipped and aligned to the axis of the top layer and the

bottom layer is engraved and drilled.

Fig.1.4. Camera mounted parallel to Spindle Fig.1.5. Tool bits used

Page 7: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

6

2. Installation and Configuring EAGLE

2.1. Download & Installation.

EAGLE is available on Cadsoft’s download page https://www.autodesk.com/products/eagle/overview.

Please download the most recent version that matches your operating system (the software is available for

Windows, Mac and Linux). It’s a relatively light download – about 45MB.

EAGLE installs just like any ordinary .exe program, it’ll self-extract and then present you with a series of

dialogs to configure the installation.

Note: Few contents of this manual have been excerpted from Official Eagle Manual. For more detailed

instructions, you can look up the Documentation page of eagle.autodesk.com.

2.2. Using EAGLE as a Freeware

On the last screen of the installation process, you should be presented with a window like this:

The alternatives used in the place of Eagle are Fritzing, KiCAD, Cadense OrCAD and Proteus PCB Design

mostly. While the former two are open-source the later too are professional but highly commercial. Eagle

has been found to be ample enough for designing even complex PCB boards unless they are very much

multi-layered like covering 8 layers or so. However, there are a few limitations when using the free

version:

Your PCB design is limited to a maximum size of 100 x 80mm of PCB board area, which is still

pretty big. Even if we’re designing a big Arduino shield, we would still be under the maximum size.

Only two signal layers allowed. If you need more layers check into the Hobbyist licenses.

Can’t make multiple sheets in your schematic editor.

If you need to upgrade your license there are a few versions available. Most licenses are still incredibly

low priced.

Page 8: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

7

2.3. Exploring the Control Panel

The first time you open up EAGLE, you should be presented with the Control Panel view. The Control

Panel is the home window for Eagle, it links together all of the other modules in the software.

You can explore the six separate trees in the control panel, which highlight separate functions of the

software:

Libraries – Libraries store parts, which are a combination of schematic symbol and PCB footprint.

Libraries usually contain a group of related parts, e.g. the atmel.lbr stores a good amount of Atmel

AVR devices, while the 74xx-us.lbr library has just about every TTL 74xx series IC there is.

Design Rules – Design rules are a set of rules your board design must meet before you can fabricate

your PCB. In this tree you’ll find DRU files, which are a pre-defined set of rules.

User Language Programs (ULPs) – ULPs are scripts written in EAGLE’s User Language.

ftp://ftp.cadsoftusa.com/eagle/userfiles/doc/ulp570_en.pdf. They can be used to automate processes

like generating bill of materials (bom.ulp), or importing a graphic (import-bmp.ulp).

Scripts – Script files can be used to customize the EAGLE user interface. In one click you can set the

color scheme and assign key bindings.

CAM Jobs – CAM jobs can be opened up by the CAM processor to aid in the creation of gerber

files.

Projects – This is where each of your projects is organized into a single project folder. Projects will

include schematic, board design, and possibly gerber files.

2.4. Using the Libraries

Included with EAGLE is a list of part libraries, which you can explore in the Control Panel view. There are

hundreds of libraries in here, some devoted to specific parts like resistors, or NPN transistors, and others

are devoted to specific manufacturers. This is a great and a comprehensive resource, but it can also be a bit

confusing. For example, even if you just want to add a simple through-hole electrolytic capacitor, there are

dozens of libraries and parts to sort through to find the right thing.

In many cases you will need to download and use the additional libraries suited for specific purpose. For

example if you are designing a Arduino board based on the manufacturing designing from Sparkfun, you

can use the Sparkfun libraries, which are filtered down to only include the parts that they’ve used in their designs only. So, in the following example we will see how to install Sparkfun libraries and use them.

Page 9: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

8

2.4.1: Downloading the Additional Libraries

The most recent version of the libraries of different manufacturers can always be found in their website or

in their respective GitHub repository. Here’s how you can install and use the SparkFun libraries in addition

to) the default ones. All you’ll need to do from the main repository page is click “Download ZIP” as

shown below and extract them.

2.4.2: Updating the Directories Window

Go back to the EAGLE Control Panel window now, Go to the “Options” menu and then select

“Directories”. This is a list of computer directories where EAGLE looks when it populates all six objects

in the tree view…including libraries.

In the “Libraries” box is where we’ll add a link to the directory where the downloaded EAGLE libraries

are stored. There are a few options here. If you’d like to keep the default libraries and add the downloaded

Page 10: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

9

SparkFun library, add a semicolon (;) after “$EAGLEDIR\lbr”, and paste the downloaded EAGLE

Libraries directory location after that.

2.4.3: Using Libraries

Now, when you go back and look at the “Libraries” tree, there should be two folders included, one of

which should be our downloaded SparkFun Eagle Libraries.

Then, right-click on the “SparkFun-Eagle-Libraries-master” folder, and select “Use all”. Then check the

libraries in each of the two folders. Next to them should be either a grey or green dot. A green dot next to a

library means it’s in use, a grey dot means it’s not. Your libraries tree should look a little something like

this in the below picture. Similarly download the ITEAD Eagle library for basic parts.

Page 11: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

10

2.5. Opening a Project and Exploring

EAGLE is packaged with a handful of example PCB designs. Open an example by expanding the

“Projects” tree. From there, under the “examples” folder open up the “arduino” project by double-clicking

the red folder (or right-clicking and selecting “Open project”). Note that, in this view, project folders are

red and regular folders are the standard yellow.

Opening the project should cause two more EAGLE windows to open: the board and schematic editors.

They should be used together to create the finished product that is a functional PCB design.

Page 12: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

11

Schematic (left) and board editors both open.

The schematic editor (on the left above) is a collection of red circuit symbols which are interconnected

with green nets (or wires). It helps tell the circuit of what the board design does, but it doesn’t have much

influence on the end PCB product. Parts in a schematic aren’t precisely measured, they’re laid out and

connected in a way that’s easy to read, to help us and others who read our design file understand what’s

going on with the board design.

The board editor is where the real PCB design happens. Here different coloured layers overlap and

intersect to create a precisely measured PCB design. Two copper layers – red on top, blue on the bottom –

are strategically routed to make sure different signals don’t intersect and short out. Green circles called

“vias” pass a signal from one side to the other. Bigger vias allow for through-hole parts to be inserted and

soldered to the board. Other, currently hidden, layers expose copper so components can be soldered to it.

2.6. Maintaining Consistency between Schematic and Board

Windows

Both of these windows i.e. schematic and board layout work hand-in-hand. Any changes made to the

schematic are automatically reflected in the board editor. Whenever you’re modifying a design it’s

important to keep both windows open at all times.

If, for instance, you closed the board window of a design, but continued to modify a schematic. The

changes you made to the schematic wouldn’t be reflected in the board design. The schematic and board

design should always be consistent.

There are a few ways to tell if you don’t have consistency between windows. First, there’s a “dot” in the

lower-right hand corner of both windows. If the dot is green, everything is fine. If the dot is magenta, a

window is probably closed that shouldn’t be. Second, if you close either of the two windows a big, huge

warning should pop up in the other window.

If you see that warning STOP doing anything, and get the other window back open. The easy way to get

either a board or schematic window back open is by clicking the “Switch to board/schematic” icon –

/ (also found under the “File” menu).

Page 13: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

12

3. Using EAGLE: Schematic

3.1. Introduction

PCB design in EAGLE is a two-step process. First you design your schematic and then you lay out a PCB

based on that schematic. EAGLE’s board and schematic editors work hand-in-hand. A well-designed

schematic is critical to the overall PCB design process. It will help you catch errors before the board is

fabricated, and it’ll help you debug a board when something doesn’t work.

3.2. Creating a New Project

3.2.1. Create a Project workspace

We’ll start by making a new project folder for our design. In the control panel, under the “Projects” tree,

right click on the directory where you want the project to live (by default EAGLE creates an “eagle”

directory in your home folder), and select “New Project”.

Give the newly created, red project folder a descriptive name. Example: “LED_Glow”.

3.2.2. Create a Schematic

The project folder will house both our schematic and board design files (and eventually our gerber files

too).To add a schematic to a project folder, right-click the folder, hover over “New” and

select “Schematic”.

A new, blank window should immediately pop up. Welcome to the schematic editor!

Page 14: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

13

3.3. Adding Parts to a Schematic

Schematic design is a two-step process. First you have to add all of the parts to the schematic sheet, then

those parts need to be wired together. You can intermix the steps – add a few parts, wire a few parts, then

add some more – and wire again.

The circuit we are going to fabricate is a simple circuit which makes the LED glow when the switch is

turned on. Though the circuit is quite a simple one and could be fabricated on a single layered PCB, it has

been designed on both layers of the PCB for the purpose of teaching how to do double-sided PCB design.

3.3.1. Using the ADD Tool

The ADD tool – (on the left toolbar) – is what you’ll use to place every single component on the

schematic. The ADD tool opens up a library navigator, where you can expand specific libraries and look at

the parts it holds. With a part selected on the left side, the view on the right half should update to show

both the schematic symbol of the part and its package.

To add a part from a library either select the part you want and click “OK”, or double-click your part.

Page 15: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

14

3.3.2. Add a Frame

The frame isn’t a critical component for what will be the final PCB layout, but it keeps your schematic

looking clean and organized. The frame we want should be in the SparkFun-Aesthetics library, and it’s

named FRAME-LETTER. Find that by either searching or navigating and add it to your schematic.

After selecting the part you want to add, it’ll “glow” and start hovering around following your mouse

cursor. To place the part, left-click once. Let’s place the frame so its bottom-left corner runs right over our

origin cross.

Page 16: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

15

After placing a part, the add tool will assume you want to add another – a new frame should start following

your cursor. To get out of the add-mode either hit escape (ESC) twice or just select a different tool.

3.3.3. Save

Right now your schematic is an untitled temporary file living in your computer’s ether. To save either go

to File > Save, or just click the blue floppy disk icon – .

3.3.4. Adding the Components

Next we’ll add four different parts all devoted to our voltage supply input. Use the add tool for these parts:

Part Package Name Library Part Name Quantity

SOC004 ITEAD Eagle Library for Basic parts CR2032 Battery holder 1

EDG-01 Eagle Library Switch DIP Pin-1 1

LD260 Eagle Library LED light 1

R0204/7 Eagle Library Resistor 1

Voltage Supply Symbol SparkFun-Aesthetics VCC 1

Ground Symbol SparkFun-Aesthetics GND 2

All of these parts will go in the top-left of the schematic frame. Arranged like this:

Page 17: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

16

If you need to move parts around, use the MOVE tool – (left toolbar or under the Edit menu). Left-

click once on a part to pick it up (your mouse should be hovering over the part’s red “+” origin). Then left

click again when it’s where it needs to be.

To rotate parts as your placing them, either select one of the four options on the rotate toolbar –

– or right click before placing the part.

3.4. Wiring Up the Schematic

With all of the parts added to our schematic, it’s time to wire them together. There’s one major warning

here before we start: even though we’re wiring parts on the schematic, we not going to use the WIRE tool

– – to connect them together. Instead, we’ll use the NET tool – (left toolbar, or under

the Draw menu). The WIRE tool would be better-named as a line-drawing tool, NET does a better job of

connecting components.

3.4.1. Using the NET Tool

To use the NET tool, hover over the very end of a pin (as close as possible, zoom in if you have to), and

left-click once to start a wire. Now a green line should be following your mouse cursor around. To

terminate the net, left-click on either another pin or a net.

The hard part, sometimes, is identifying which part on a circuit symbol is actually a pin. Usually they’re

recognizable by a thin, horizontal, red line off to the side of a part. Sometimes (not always) they’re labeled

with a pin number. Make sure you click on the very end of the pin when you start or finish a net route.

Whenever a net splits in two directions a junction node is created. This signifies that all three intersecting

nets are connected. If two nets cross, but there’s not a junction, those nets are not connected.

When your schematic is done, it should look a little something like this:

Page 18: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

17

3.5. Tips and Tricks

3.5.1. Names and Values

Every component on your schematic should have two editable text fields: a name and a value. The name is

an identifier like R1, R2, LED3, etc. Every component on the schematic should have a unique name. You

can use the NAME tool – on any component to change the name.

A part’s value allows you to define unique characteristics of that part. For example, you can set a resistor’s

resistance, or a capacitor’s capacitance. The importance of a part’s value depends on what type of

component it is. For parts like resistors, capacitors, inductors, etc. the value is a critical piece of

information when you’re generating a bill of materials or assembly sheet. To adjust a part’s value

parameter, use the VALUE tool – .

3.5.2. Group Moving/Deleting/Etc.

Any tool that you use on a single component, can also be used on a group of them. Grouping and

performing an action on that group is a two-step process. First, use the group tool – – to select the

parts you want to modify. You can either hold down the left-mouse button and drag a box around them, or

click multiple times to draw a polygon around a group. Once the group is made, every object in that group

should glow.

After grouping, select the tool you want to use. The status box in the far bottom-left will have some helpful

information pertaining to using the tool on a group:

In order to perform any action on a group, you have to select the tool, then hold down CTRL and right-

click the group. After you CTRL+right-click, the tool will operate on the group just as it does a single

component.

If you have any nets incorrectly connected like above, DELETE – – it.

3.5.3. Copy/Paste

EAGLE’s Copy – – and Paste – – tools don’t work like other copy/paste tools used in other

softwares like word editors. Copy performs both a copy and paste when it’s used. As soon as you copy a

part (or any object on the schematic – name, text, net, etc.) an exact copy will instantly come up and follow

your mouse awaiting placement. This is useful if you need to add multiples of the same part (like GND

nodes or resistors).

Paste can only be used to paste a group that has previously been copied to your clipboard. To use paste

you first have to create a group, then (with the copy tool selected) CTRL+right-click to copy it, but hit

ESC button. This’ll store the copied group into your operating system’s clipboard, and you can use paste to

place it somewhere. This tool is especially useful if you need to copy parts of one schematic file into

another.

Page 19: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

18

4.1. Using EAGLE: Board Layout In the board editor, the conceptual, idealized schematic you’ve designed becomes a precisely dimensioned

and routed PCB.

In this tutorial we’ll cover every step in EAGLE PCB design: from placing parts, to routing them, to

generating gerber files to be converted to CNC job files. We’ll also go over the basics of EAGLE’s board

editor, beginning with explaining how the layers in EAGLE match up to the layers of a PCB.

4.1.1. Create a Board From Schematic

To switch from the schematic editor to the related board, simply click the Generate/Switch to

Board command – (on the top toolbar, or under the File menu) – which should prompt a new, board

editor window to open. All of the parts you added from the schematic should be there, stacked on top of

eachother, ready to be placed and routed.

Page 20: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

19

4.2. Learning Layers Overview

PCB composition is all about layering one material over another. The thickest, middle part of the board is a

insulating substrate (usually FR4). On either side of that is a thin layer of copper, where our electric

signals pass through. To insulate and protect the copper layers, we cover them with a thin layer of lacquer-

like soldermask, which is what gives the PCB color (green, red, blue, etc.). Finally, to top it all off, we

add a layer of ink-like silkscreen, which can add text and logos to the PCB. We don’t have the option to

add soldermask and silkscreen in machines built in our laboratory at TLC but if you intend to fabricate the

PCB through a professional fabrication house, you can add them.

The layers of a double-sided PCB (image from the PCB Basics tutorial).

4.2.1. EAGLE’s Layers

The EAGLE board designer has layers just like an actual PCB, and they overlap too. Eagle use a palette of

colors to represent the different layers. Here are the layers you’ll be working with in the board designer:

Page 21: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

20

Color Layer

Name

Layer

Number Layer Purpose

Top 1 Top layer of copper

Bottom 16 Bottom layer of copper

Pads 17

Through-hole pads. Any part of the green circle is

exposed copper on both top and bottom sides of the board.

Vias 18

Vias. Smaller copper-filled drill holes used to route a signal

from top to bottom side. These are usually covered over by

soldermask. Also indicates copper on both layers.

Unrouted 19

Airwires. Rubber-band-like lines that show which pads need to

be connected.

Dimension 20 Outline of the board.

tPlace 21 Silkscreen printed on the top side of the board.

bPlace 22 Silkscreen printed on the bottom side of the board.

tOrigins 23

Top origins, which you click to move and manipulate an

individual part.

bOrigins 24 Origins for parts on the bottom side of the board.

Holes 45

Non-conducting (not a via or pad) holes. These are usually drill

holes for stand-offs or for special part requirements.

To turn any layer off or on, click the “Layer Settings…” button – – and then click a layer’s number to

select or de-select it. Before you start routing, make sure the layers above (aside from tStop and bStop) are

visible.

4.3. Arranging the Board

4.3.1. Create a Board From Schematic

Click the Generate/Switch to Board icon – – in the schematic editor to create a new PCB design

based on your schematic:

Page 22: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

21

The new board file should show all of the parts from your schematic. The gold lines, called airwires,

connect between pins and reflect the net connections you made on the schematic. There should also be a

faint, light-gray outline of a board dimension to the right of all of the parts.

4.3.2. Moving Parts

Using the MOVE tool – – you can start to move parts within the dimension box. While you’re

moving parts, you can rotate them by either right-clicking or changing the angle in the drop-down box

near the top. While you’re relocating parts, hit the RATSNEST button – – to get the airwires to

recalculate.

4.3.3. Adjusting the Dimension Layer

After the parts are positioned inside the dimension line, we need to fix our dimension outline. You can

either move the dimensions lines that are already there, or just start from scratch. Use the DELETE tool –

– to erase all four of the dimension lines.

Page 23: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

22

Then use the WIRE tool – ( – to draw a new outline. Before you draw anything though, go up to the

options bar and set the layer to 20 Dimension. Also up there, you may want to turn down the width a bit

(we usually set it to 0.008").

Then, starting at the origin, draw a box around your parts. Don’t intersect the dimension layer with any

holes, or they’ll be cut off. Make sure you end where you started.

4.4. Routing the Board

Routing is the process where we will turn each of the gold airwires into top or bottom copper traces.

4.4.1. Using the Route Tool

To draw all of our copper traces, we’ll use the ROUTE tool– – . After selecting the tool, there are a

few options to consider on the toolbar above:

Layer: On a 2-layer board like this, you’ll have to choose whether you want to start routing on the

top (1) or bottom (16) layer.

Bend Style: Usually you’ll want to use 45° angles for your routes (wire bend styles 1 and 3), but it

can be fun to make loopy traces too.

Width: This defines how wide your copper will be. Usually 0.01" is a good default size. You

shouldn’t go any smaller than 0.007" (or you’ll probably end up paying extra). Wider traces can

allow for more current to safely pass through. But in circuits where you need to supply 1A through a

trace, it’d need to be much wider.

4.4.2. Ripping Up Traces

Much like the WIRE tool isn’t actually used to make wires, the DELETE tool can’t actually be used to

delete traces. If you need to go back and re-work a route, use the RIPUP tool – – to remove traces.

This tool turns routed traces back into airwires.

You can also use UNDO and REDO to back/forward-track.

4.4.3. Route

Use the Route option shown above and route all the airwires shown in the board layout. You may want to

start on the closest, easiest traces first. Or, you might want to route the important signals – like power and

ground – first. Here’s an example of our fully-routed board:

Page 24: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

23

4.4.4. Using the Auto router

If you’re short on time, or having trouble solving the routing complexity of your board, you can try loading

up EAGLE’s Autorouter – – to finish the job easily.

If you don’t like the job the autorouter did, you can quickly hit Undo to go back to manual routing.

The autorouter won’t always be able to finish the job, so it’s still important to understand how to manually

route pads (plus manual routes look much better). After running the autorouter, check the bottom-left status

box to see how much is completed. If it says anything other than “OptimizeN: 100% finished”, you need to

do some manual routing.

Page 25: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

24

If you want to know more about optimizations and settings to be made in the autorouter. Check the

EAGLE’s manual linked in resources section where an entire chapter explains it.

After the routing is done, there are a few checks we can do to make sure it’s 100% complete

4.6. Checking for Errors

4.6.1. Ratsnest – Nothing To Do!

The first check is to make sure you’ve actually routed all of the nets in your schematic. To do this, hit the

RATSNEST icon – – and then immediately check the bottom left status box. If you’ve routed

everything, it should say “Ratsnest: Nothing to do!”

If ratsnest says you have “N airwires” left to route, double check your board for any floating golden lines

and route them up.

4.7. Generating Gerbers

When you’ve finalized your design, the next step is to generate gerber files to be converted into CNC job

files. Gerber files are kind of a “universal language” for PCB designs. Gerber files, each describe single

layers of the PCB. One gerber might describe the top copper layer, while another defines where the bottom

copper layer and another the drill positions.

4.7.1. CAM Processor

Open the .brd file and Go to File→CAM Processor. First we have to generate Gerber files for the top layer,

then the bottom layer and then for the drill file. In order to generate the CNC job for the top layer choose

the top layer and the pads and the vias. Choose the other settings as shown in the below picture which is

Page 26: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

25

particular for FlatCAM (which is the CAM software we will use in the next section). Now go ahead and

select “Process Job”. This will export all the files into the same folder as your .brd file.

You need to generate two Gerber_RS274X files for top and bottom layer individually with separate names.

Remember to select the mirror option for bottom Gerber file as shown in the below picture.

For exporting gerbers to drill vias and holes, you will want to do the same above again, but select the

“EXCELLON_24”. Excellon file is the drill file that contains drill specifications, size and coordinates.

Page 27: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

26

The files are saved by default in the respective Eagle project folder. It is recommended to save all the files

including CNC job files in their respective Eagle project folder only for easy modification and updation.

Now, Open the Gerbers and Excellon files for which you need to generate CNC job files in FlatCAM,

which is explained in detail in the next section of the Tutorial.

Page 28: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

27

5. Generation of G-Code FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router. Among other things

like editing CNC G-Code files, it can take a Gerber file generated by any PCB CAD program, and create

G-Code for Isolation routing.

5.1. Direct-Installation of FlatCAM in Windows

Download the .exe installer of the latest Flacam version from the repository @

“https://bitbucket.org/jpcgt/flatcam/downloads/” and run it in your machine. It will self-run and include

everything you need.

5.2. Exporting CNC Jobs for Routing

This section is a step-by-step tutorial introduction to the most common operation in FlatCAM.

1. Open a Gerber file: File→Open Gerber. The file is automatically analyzed, processed and plotted.

2. Go to options and change the defaults to mm and the Tool size to 0.2mm which corresponds to the end

size of the 0 deg -tool we recommend to use.

3. Enter the diameter of the tool you will use for isolation routing and hit “Generate Geometry”. The units

are determined by the project setting and are shown on the bottom right of the screen. If you want to work

using different units, go to Options, Project Options , Units. This will change the units for the whole

project.

This creates a new geometry object listed under “Project” with the same name as the Gerber object with an

“_iso” postfix, and its options are shown in “Selected”.

Page 29: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

28

3. Create a CNC job from the new geometry by indicating the desired parameters as shown in the figure

above and explained below:

Cut Z: The depth of the tool while cutting. -0.09 mm is the typical value for isolation routing.

Travel Z: The height above the board at which the cutting tool will travel when not cutting

copper.(Typical value: 1.5mm)

Feedrate: The speed of the cutting tool while cutting in inches/minute of mm/minute depending on the

project settings.(Typical value: 100mm/sec)

Tool diameter: The cutting tool diameter. Use the same value as when creating the isolation routing

geometry.

A CNC Job object has been added to your project and its options are shown in the “Selected” tab. Tool

paths are shown on the plot. Blue are copper cuts, while yellow are travelling (no cutting) motions.

Click on the “Export” button under “Export G-Code”. This will open a dialog box for you to save to a file.

This is the file that you will supply to your CNC G-Code sender.

Page 30: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

29

Similarly export a file for the bottom layer of your PCB too.

5.3. Exporting CNC Jobs for Drill Files

For details see the Excellon Object reference section.

1. Open a drill (Excellon) file: File→Open Excellon. The drill file will be drawn onto the plot and its

options form should show up.

2. A drill file will usually contain different tools (drill diameters). You can choose to create a CNC job for

each individual tool or bundle some of the tools together in the same job (in case you did not intend to use

drill bits of different diameters).

Page 31: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

30

Click on Choose under Create CNC Job to open a selection window with the list of tools. Each has the

format id: diameter, where the diameter is in the project’s units. Check the boxes by the tools you want to

include in the job. The comma-separated list of tools should appear in the Tools entry box.

3. Adjust Drill Z (Drilling depth), Travel Z (Height for X-Y movement) and Feed rate (Z-axis speed in

project units per minute) to your desired values, and click on Generate.

A CNC job will be created and the tool-path will be shown on the screen. Click on the “Export” button

under “Export G-Code”. This will open a dialog box for you to save to a file. This is the file that you will

supply to your CNC G-Code sender.

Page 32: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

31

6. PCB Isolation Routing and Drilling

(A video demonstration of Isolation Routing for fabricating Double-sided PCB is given in the TLC project Webpage)

6.1. Universal G-Code Sender

A detailed explanation on how to use the universal G-code sender and calibration of CNC using it has been

given in the previous tutorial. So, for now let us just assume that the CNC machine is properly calibrated and

the user has enough idea on what the UGS does. The figure below shows the UGS opened in PC and

connected to the CNC Arduino controller. And we know that the UGS can open and execute any .nc files

generated by CAM software and the live visualization can be viewed in the G-Code sender when the machine

is running.

Fig.6.1. Showing UGS open with file mode.

Before we move on to making our own PCB there are few fundamental theories and practices to be learnt on how a

copper bare-board is captured and measured or aligned by a CNC machine.

6.2. Zeroing the Tool Tip

Moving the CNC tool tip to its exact origin position is known as Zeroing the CNC. Several methods and

devices have been proposed for doing this precisely but the best and convenient solution is to use a

microscope/camera mounted parallel with the tool axis(as parallel as possible). The camera points downwards

facing the PCB surface and shows an image of the part of the PCB focussed on the computer screen including

crosshairs.

6.2.1. Calibrating Camera Offset

We know that the tool centre represents the centre of the axes and that the camera is mounted at a distance

parallel with the tool axis. This distance is known as camera offset and this offset should be balanced every

time when zeroing the CNC. The software we recommend to use for camera video streaming is AMCap

which has a feature of always staying on top of the other running programs in your computer screen and

shows a magnified image with cross-hairs in the image.

In order to measure the camera offset, a hole is first drilled on the board surface using a drill tool and the spindle is moved until the crosshairs of the camera image line up with the center of the hole. The offset

distance is now measured from the position displayed in Universal G-Code Sender (UGS) as shown in

Fig.6.2. We then save these coordinates into the macros tab of UGS (shown in the figure 6.3) which when

Page 33: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

32

executed tells to set a position as offset point with respect to origin using command G92.Now, In order to set

an arbitrary drill hole as origin, we just need to position the hole in camera and press the macro button with

the corresponding macro. For example, the figure below 6.2 shows how to measure the camera offset in UGS

and the figure 6.3 shows how to set camera offset using the Macro. The macro G92 X44.5 Y35.1 sets the drill

hole viewed under camera currently to be origin since the camera is at a distance of (44.5,35.1) from tool

centre. The above procedure will accurately set desired any desired location to X, Y = 0.

Fig.6.2. Showing to measure current work position in UGS.

Fig.6.3. Showing macro to set offset.

6.2.2. Probing for Z-Axis

Fig.6.4. Showing macro to set offset.

Page 34: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

33

But, the vertical position of the spindle, Z axis is also an important axis to zero out properly. For this, one

wire is connected to the probe which as the positive terminal of the circuit. This terminal is pulled high with a

10K resistor and connected to an input pin (Ex: A5) of Arduino. Another wire connected to the ground pin is

attached to the surface of the PCB when we mount it. We then use probing command “G38.2 Z-20 F20” in

UGS which moves the tool towards the board at a feed rate of 20mm/sec upto 20mm until the tip touches the

board and makes an electrical contact through the wire. Now, this way the CNC easily determines the exact

top of the surface and sets the origin position for Z axis.

Fig.6.5. Showing macro to set offset.

6.3. Making Double-Sided PCBs

In case of prototyping single-sided PCBs, the tool is moved and set to any arbitrary origin position (usually

on the lower left corner of the board) and probed for Z-axis. Then the Etching G-code file is run which cuts

out the tracks and the pads. Now the tool is moved again to its previously set origin position using the

“Return to Zero” option in UGS and the drilling G-code file is run.

But In case of double-sided boards, the same procedure is followed and the top side is engraved. Next, the

board is flipped and aligned to the axis of the top layer and the bottom layer is engraved and drilled. In any

cases, it is not possible to align the board accurately with the x-axis with the help of alignment pins or

markings; therefore the angle through which the board is rotated has to be measured to account for minute

variations. For this purpose, three reference holes are drilled on the four corners of the PCB board first along

x and y axis. The two holes serve to measure the alignment angle while the third hole helps us easily detect

which layer is up. The experimental procedure to do that is as follows.

Manually jog the tool along the four corners of your job using the command “G0” and drill the holes

corresponding to the thickness of your board using Z- button on UGS. The below picture shows to

manually jog to various corners of the PCB and drill hole using the Rapid positioning command with the

length of the sides of the PCB being 60 mm.

Fig.6.6. Showing macro to manually move to all corners of the PCB.

Page 35: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

34

Now measure the value of camera offset as explained in the top section and execute auto-levelling and

warp the board if you feel the board is bent. Run the g-code file for the top layer exported from your

FlatCAM.

Fig.6.7.UGS showing the visualization top layer of PCB.

For the bottom layer, turn the board around and capture the alignment holes along the edge of a board to

measure how much the board is skewed. The work position is measured in the UGS under UGS tab as

explained in previous section. The G-Code file for the bottom layer is rotated through this angle

measured using the G-Code command G-68.Example: The below picture shows the macro to rotate the

board just about the origin to 2.3 degrees.

Fig.6.8. Showing macro to rotate the co-ordinate system and hence the G-Code file.

The tool is moved to the origin position again using the camera-zeroing and camera offset macro in the

UGS. Now the G-Code file for the bottom layer is run. Once the bottom routing is done, the drill g-code

file is run successively. This takes care of both translation and rotation while flipping the PCB and the

tracks and holes would match each other on both the sides.

Page 36: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

35

Fig.6.9. UGS showing the visualization top layer of PCB.

Fig.6.10. UGS showing the visualization drill file of PCB.

Page 37: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

37

7. Special Procedures Often in PCB designing, there arise special needs to make complicated circuits that involve PCB traces on

both of the sides. There are also other problems while fabricating PCBs such as uneven bed flattening etc.

In this section of the tutorial, we will see how to use convenient techniques for easy calibration and

adjustments in PCB fabrication.

7.1. Autolevelling

One problem that exists while trying to create finely etched traces is the inconsistency in the height across the

surface of the board. Reasons for this are that the CNC bed may not be flat or that the boards could be warped or

bent, which is usually the case if the boards are larger in size. Even minute height variations such as 1mm would

increase the groove width to 0.672mm.This can in turn cause the copper tracks between grooves to become too

narrow, or create shallow “aircuts” forming incomplete traces when the height reduces. The technique used here

to solve this is to probe the PCB surface in a grid pattern for height variations and modify the G-code so that

there is uniform depth while milling. A figure depicting PCB board milled without and with the use of

Autoleveller respectively when the bed is not flat is shown above.

The software used here to do this is Autoleveller which interacts with the CNC controller and modifies and

outputs a G-Code file for us to run with UGS eliminating the height variations. Load the G-Code into the

autoleveller software using the Browse button; you would see that the Probe settings vary automatically

matching the dimensions of the PCB file loaded. You can change the default settings such as probe spacing(the

space between the points of the probing grid, probe depth(the maximum distance the probe will go down if no

contact on board is made) and probe clearance(the distance between the board surface and the probe tip as it

moves up before going to the next point of the grid).

Note: Make sure that you connect the probe clip to the tool tip before you run the Autoleveller else the tool will

bury itself into the board and break. Also shrink the board dimension by 5mm in X Length and Y length tab of

your Autoleveller for the bottom layer of a double-sided board as we drill holes in to the origin position of the

PCB in top layer.

Fig.7.1. Showing the making of PCB board with and without the use of Autoleveller on a skewed platform.

Page 38: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

38

7.2. Copper Area Clear

Removing large areas of copper is necessary when trying to avoid shorts due to dust, isolating components

or in RF circuits, where the remaining unused copper is just unwanted core load. We will see how to

eliminate all copper that is not specified in the Gerber source, while still being able to selectively choose

what to clear.

Open a Gerber file in your FlatCAM software. In the Selected tab for the Gerber Object, under Non-

copper regions, provide Boundary Margin and click Generate Geometry. This creates a new Geometry

Object containing a bounding box around the Gerber object, with the given margin. Then subtract the

Fig.7.2. Showing the GUI page of Autoleveller

Page 39: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

39

Gerber object from the bounding box, resulting in a Geometry object with polygons covering the areas

without copper.

Now we can choose which polygon we want to “paint”, this is, draw a tool path inside it to cover all its

surface. In the Selected tab for the newly created Geometry Object, under Paint Area, provide the

following:

Tool diam.: The diameter of the tool that will be used to cut the area.

Overlap: Fraction of the tool diameter by which to overlap each passing cut. The default value of 0.15

is the minimum to ensure no copper is left in 90 degree turns of the tool path.

Margin: Distance for the tool to stay away from the polygon boundary. This can be used to ensure that

large tool does not touch copper edges that have or will be cut by a smaller more precise tool.

Page 40: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

40

Click on Generate and then click on the plot inside the polygon to be painted. This will create a new

Geometry Object with the desired tool paths and they can overlap too.

7.3. Board Cut-Out

To cut the PCB to the desired shape and remove it from a larger blank PCB, a tool path that traces the

board edge can be created. Gaps to hold the board until the job is complete can be placed along the

edge.We will see how to create rectangular cutouts with 2 or 4 gaps.

Open a Gerber file and find the Board Cutout section in the Selected tab.

Specify the following

Margin: This will create a rectangular cutout at the given distance from any element in the Gerber.

Gap Size: 2 times the diameter of the tool you will use for cutting is a good size. Specify how many

and where you want the Gaps along the edge, 2 (top and bottom), 2 (left and right) or 4, one on each

side.

Page 41: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

41

Click on Generate Geometry. The figure above shows an example of the results. Create a CNC job for the

newly created geometry as explained in earlier tutorials.

Page 42: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

42

8. Conclusion

8.1. Experimentation

Different sets of experiments have been done with the designed machine to verify its practical utility and

presented below. In the former part, the line resolution of the PCB is tested and a series of SMD footprints has

been fabricated. The fabrication of RF circuits is discussed in the later part.

8.1.1. Wire Width and Wire Resolution

A series of copper tracks with diminishing width has been tried and the thinnest track line that could be safely

fabricated with the machine is found to 0.2mm. Table 2 shows the calculation of the resolution of the line width

measured using microscope. (∆W) is the deviation in the width from the theoretical input width (WIN) to the

actual routed width on PCB (WPCB). Fig.8.1.a. shows the lines routed in the order of diminishing thickness from

top to bottom and a 0.1mm irregular track line at the top.

Table 8. 1. Calculation of line width resolution.

Input unit WIN(mm) WPCB(mm) ΔW(mm)

0.6 0.563 0.037

0.5 0492 0.008

0.4 0.422 -0.022

0.3 0.352 -0.052

0.2 0.212 -0.012

0.1 NIL NIL

8.1.2. Resolution of SMT

Fig 8.1.b. shows a fabricated board with some of the conventionally used SMT. It consists of SMT IC

packages such as SOIC, TQFP, SOT23 and resistor and capacitor packages such 0603, 0805, 1206, SMA etc. It

has been inferred that a SMT footprint with a pitch size of as low as 0.3mm can be fabricated safely with the

machine.

Fig.8.1. PCB fabricated with Lines and SMT footprints

Page 43: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

43

8.2. Fabricating Radio-Frequency Circuits A conventional branch line coupler is constructed employing four λ/4 transmission line in a ring. We have

designed and fabricated a branch line coupler using microstrip technology working at 2.45 GHz on a low cost

1.65 mm thick FR4 epoxy material with dielectric constant of 4.4 and a loss tangent of 0.02.The physical

dimensions were calculated using microstrip line calculator and the board was drawn in eagle. The below graph

illustrates the full-wave simulated S-parameters of the designed branch line coupler. From the graph, the return

loss (S11), throughput (S21), coupled (S31) and isolation (S41) are calculated as -3.7 dB, -3.7 dB, -27.4 dB, and

-31.63 dB, respectively. The experimental measurements of the fabricated prototype and further calibration are

under progress.

8.3. Scope for Future Work

A software program to find the rotation angle for the bottom layer during fabricating two sided boards and to

perform G-code transformation is being developed. It will identify the reference holes on the corners of the

board using computer vision (OpenCV) and send signals to the CNC to move the camera to the centroid of the

rectangle and measure the angle of the axis of bottom layer. It will then create a transformation matrix and

modify the G-Code and run the etch files automatically. This program will also have the ability to interact with

the CNC controller and automatically send macros, find the camera offsets and perform zeroing of CNC and run

the whole operation cycle on its own.

Pick and place mechanisms for changing the tool and placing the SMD components can be added in future. In

order to implement more precise and fast operation of the machine and as well as for laboratory teaching, CNC

machines with stepper or servomotors having optical encoder feedback can be developed.

8.4. Conclusion

A BYO PCB prototyping machine has been designed and developed for fabrication of both single and

double-sided boards with through-hole and surface mount technology. The resolution of the machine was

studied and fabrication of RF circuits has been presented. An industrial method for soldering the components has

been mentioned. Problems usually encountered while fabricating high precision and double-layered PCBs have

been discussed. Commercial techniques used for easy and comfortable operation of PCB prototyping machines

have been incorporated in the procedure. The machine is fabricated with commercial and inexpensive open

source hardware components and software and so can be readily disseminated, adapted and improved for

widespread use in electronics education.

Fig.8.2. Fabricated PCB of a Conventional BLC Fig.8.3. Full wave simulated S-parameters of BLC

Page 44: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

APPENDIX

DATASHEETS

BILL OF MATERIALS AND PART SUPPLIERS

PAPER PUBLICATION ON THIS PROJECT

Page 45: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

USBUSBUSBUSB HandheldHandheldHandheldHandheld MicroscopeMicroscopeMicroscopeMicroscopeUSERUSERUSERUSER’’’’SSSS IntroductionIntroductionIntroductionIntroduction

FunctionsFunctionsFunctionsFunctions andandandand applicationsapplicationsapplicationsapplications

The USB HANDHELD MICROSCOPE is a new electronic product for themicro object observation. It is a tubular imaging system consisting of anoptical lens, an image sensor, an illumination mechanism, and an imagetransfer control circuit connected to a computer. You can display the imagescaptured by the USB HANDHELD MICROSCOPE on the computer screen,store them on the computer, print them, or send them over the Internet.

Page 46: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

AAAApplicationspplicationspplicationspplications

As a USB microscope, it can magnify stamps, coins, antiques, insects,electric circuits, machines, hair, skin, fabrics, food, decorations, etc.

AttentionAttentionAttentionAttention

Before installation and use of this product, please read the instructions inthis manual to ensure its correct use.

SafetySafetySafetySafety instructionsinstructionsinstructionsinstructions

Before using this product, please carefully read the following safetyinstructions.

1. The socket that the computer is plugged in must be properly grounded,as the computer supplies power to this product. If in any doubt, pleasehave a professional electrician check and verify the grounding to ensuresafety.

2. Never use this product in stormy weather.

3. This product contains delicate and precision components. Be gentlewhen using it and avoid harsh handling or excessive force that maycause damage to the product.

4. The temperature of the handle increases slightly during use and it feels alittle warm. This is normal. If the product is overheated and hot to thetouch, immediately cut off the power and contact us for repair.

5. Never leave the product on unattended. Unplug from the USB port afteruse.

6. Do not disassemble this product. Disassembling this product will result inirreparable damage. The company is not responsible for damageresulting from disassembly of the product by the user. In case of anydifficulties in using the product, please contact us.

7. This product may only be used by children under supervision of an adult.Never give this product to a child to use or play by him or herself. Keepthis product out of reach of children.

8. Do not let this product come in direct contact with steam, vapor, water, orliquids of any kind. Such contact can cause irreparable damage that isnot covered by warranty.

9. When not in use, put the handle in the transparent sleeve and store it in atightly sealed box to avoid moisture and decay. Damages resulting from

Page 47: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

improper storage are not covered by the warranty.10.The cable with this product has been strictly tested. To ensure safe use,

do not replace it.

SystemSystemSystemSystem RequirementsRequirementsRequirementsRequirementsFor best picture quality, the following specifications are recommended:1. Windows XP, Vista ,windows 72. 128M RAM or above3. At least one USB port (For best effect, USB 2.0 port is recommended).4. CD-ROM and a 40G or higher hard disc.

TechnicalTechnicalTechnicalTechnical SpecificationsSpecificationsSpecificationsSpecifications1. DSP: Digital Image Monarch Processor.2. Sensor: high-quality CMOS sensor3. Resolution: 640*4804. Colors: true color 24bit (RGB)5. Interface: USB2.0.6. Frame rate: 30 frames/sec (CIF and VGA).7. Magnification: 200×8. Size: 12mm in diameter,9. USB cable length: 1.6 meters

InstallationInstallationInstallationInstallationTo avoid mistakes in the installation process, please strictly follow thesesteps:Place the included CD into the CD-ROM drive.Find the icon of ‘amcap.exe’.Copy the ‘amcap.exe’ to your PC. Just copy but never try to install it.

Plug the HANDHELD MICROSCOPE into the USB port, and double click onthe icon of ‘amcap.exe’ to open the image window.

Page 48: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

DirectionsDirectionsDirectionsDirections forforforfor UseUseUseUse

Properly connect the USB HANDHELD MICROSCOPE to the computer andto rotate the dial on the USB cable to controls the brightness of the LED onthe USB HANDHELD MICROSCOPE. After a short while you should seethe image captured by the USB HANDHELD MICROSCOPE on thecomputer monitor.

OPENOPENOPENOPEN IMAGEIMAGEIMAGEIMAGE WINDOWWINDOWWINDOWWINDOW

Double click on the icon and open an image window on the screen. After afew seconds the USB HANDHELD MICROSCOPE will begin to take imagesin the window. Click on ‘OPTIONS’ and click on ‘VIDEO CAPTURE PIN’.Choose one of image window size in the drop-down menu and click on ‘OK’to confirm.

FOCUSINGFOCUSINGFOCUSINGFOCUSING

The focusing ring is at the handle of the USB HANDHELD MICROSCOPE....When the focusing ring is rotated it adjusted the distance between lens andsensor for getting the clear image.

Please keep the head of USB HANDHELD MICROSCOPE tightly andsnugly touching the surface of the object during the focusing andobservation.

TAKETAKETAKETAKE PHOTOSPHOTOSPHOTOSPHOTOSPush down the snap key on the handle or pushdown the button of the dimmer that located onthe USB cable to freeze an image. Or click‘snap’ on the top of image window, or pushdown the ‘return key’ of keyboard to freeze animage.The photos you have taken will be saved in thecomputer and display an icon on the screen.

If your system could not freeze an imageplease follow steps to make it work:

1, Open the image window

2, Click on ‘capture’ on top line of the window

Page 49: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

3, Click on ‘still’ in the pull down window

3, Click on ‘folder’

4, Designate the folder for your photos location

5, Click right mouse button to confirm

The photos can be taken by push down the button of the dimmer or justpush down the return key of the keyboard.

LEDLEDLEDLED LightLightLightLight AdjustmentAdjustmentAdjustmentAdjustment

There is a LED light dimmer on the USB cable.Turning the dimmer can adjust the light power to aproper level according the demand of observation.

With the different display,resolution ratio and contrast,the definiton of the picture

will be different.So do the light, point of view.

MOVIEMOVIEMOVIEMOVIE RECORDRECORDRECORDRECORDFor making a record of still image please follow below procedures.1, Click on the ‘capture’ that located on the top line of image window2, Click on the ‘set time limit’ in the pull down window3, Click on the ‘use time limit’4, Input the number of seconds that you want to delay the record5, Click right mouse button to confirm6, Click ‘capture’ again7, Click ‘start capture’8, Click ‘ok’ to start the recorderThe movie record will be stopped while time is off.

Page 50: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

The movie will be saved as the AVI format.

Post-SalePost-SalePost-SalePost-Sale ServicesServicesServicesServices

LimitationsLimitationsLimitationsLimitations andandandand exclusionsexclusionsexclusionsexclusions

Please keep all the receipts of your purchase in a safe place. You need toproduce the unaltered and original receipts to receive warranty coverage.Otherwise, the warranty is voided.

The warranty only covers the product if it is used under normal operationconditions. However, the following are not covered by the warranty:

Damages resulting from unauthorized disassembly or assembly of theproducts by the customer

Damages caused by fitting of improper components to the product

Damages resulting from unauthorized attempts to repair or to alter theproduct

Gross distortion, scratches, discoloration, or damage of the covering

Cracks, scratches, and mold spots on the lens

COMS sensor is burned or apparently scratched

Damages to the PCB board (such as burned PCB board) due to misuse

ProductProductProductProduct maintainmaintainmaintainmaintain

UnprofessionalUnprofessionalUnprofessionalUnprofessional workersworkersworkersworkers areareareare notnotnotnot suggestedsuggestedsuggestedsuggested totototo maintain,Anymaintain,Anymaintain,Anymaintain,Any

question,pquestion,pquestion,pquestion,pleaseleaseleaselease contactcontactcontactcontact us!us!us!us! WeWeWeWe willwillwillwill givegivegivegive youyouyouyou thethethethe technologytechnologytechnologytechnology

supportssupportssupportssupports thenthenthenthen!

With vigorous shaking, the tiny dust may drop on the imaging sensor.Wecan ’ t see it with our eyes but it only showed on the picture aftermicroscopic’s magnifying,PLS don’ t repaire it unless you have enoughprofessional maintain experience and patience.If you want to repair it,pls refer the documents below1. PLS turn left of the camera lens, and do not touch the LED light.Or it willbe damaged.2. PLS safekeep the camera lens,and do not let it touch the alcohol.

Page 51: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

3. PLS adjust the focal distance, let the imaging sensor move into a bestposition.In order to wash easily.we suggest that adjust the imaging sensor into the nearest distance4. Dip in a little absolute alcohol with fine cotton swab,using fine cottonswab clean the imaging sensor gently.If you are unexperienced,pls ask thehelp of the professional .(Notes:Don ’ t dip in too much absolutealcohol,protecting the alcohol from flowing itno circuit board and LED lightand don’t be too strong when cleaning)5.After confirimg dustout,pls turn on the LED ligth and keep for 15-20min tofast the alcoho volatilization.Because the alcohol will dissolve the gluearound the camera lens,pls make sure after volatilization totally,then installthe camera lensIf the lens need washing,don’t use absolute alcohol.Just clean the lens withcotton swab.To avoid the drop of the lens,pls don’t be too strong .For the unprofessional,it is difficult to maintain.We can’t see the tiny dustwith our eyes.This work need patience and professional technology.

UnprofessionalUnprofessionalUnprofessionalUnprofessional workersworkersworkersworkers areareareare notnotnotnot suggestedsuggestedsuggestedsuggested totototo maintain,Anymaintain,Anymaintain,Anymaintain,Any

question,pquestion,pquestion,pquestion,pleaseleaseleaselease contactcontactcontactcontact us!us!us!us! WeWeWeWe willwillwillwill givegivegivegive youyouyouyou thethethethe technologytechnologytechnologytechnology

supportssupportssupportssupports thenthenthenthen!

Page 52: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed
Page 53: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Bill of Materials and Part Suppliers

Part Specification Part Supplier Cost(INR) Recommended

Quantity

Total Cost

Stepper motors 3xNema 17, 1.8o,

200 step/rev, 2-

phase, 4 wire,

bipolar, 1.3A

StepperOnline 920 3 2760

Lead screws

with Bearings

Stainless steel,

3xM8x1.25, 20 turns

per inch

Amazon.in 710 3 2130

Spindle motor 24-36 V DC, 5000-

8000 rpm, 0.3A no

load

Zen

Toolworks

5790 1 5790

Power supply 24 V, 15A, 360 W,

switching mode

power supply

Zen

ToolWorks

3850 1 3850

Stepper motor

drivers

3xsingle axis, rated

3A, peak 3.5A, 24V

DC rated, up to 1/16

microstepping,

adjustable step,

current, and half-

decay

Sainsmart 1160 3 3480

USB camera

microscope

640* 480 pixel

resolution, 200X

magnification factor

Adafruit 7070 1 7070

Microcontroller Arduino Uno, R3

board, with

ATmega328P @

16MHz

Amazon.in 400 1 400

Tool Bits 0.6mm Drill bit,

0.8mm End mill bit,

V-Carving bit

Zen

Toolworks

257, 321,

192

3,3,3 751,963,576

Other Materials PVC board, Probe

clips and wires,

Emergency kill

switch, Fasteners

Local

Suppliers and

Amazon.in

(Chennai:

Angappa

Naicken St.,

Parrys)

3000 1 3000

Fabrication Cost CNC cutting and

Milling of PVC

board

15,000 1 15000

TOTAL 45,770

Page 54: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Available online at www.sciencedirect.com

ScienceDirect

Materials Today: Proceedings 00 (2017) 0000–0000

www.materialstoday.com/proceedings

2214-7853 © 2017 Elsevier Ltd. All rights reserved.

Selection and/or Peer-review under responsibility of International Conference on Advances in Materials and Manufacturing Applications

[IConAMMA 2017].

IConAMMA_2017

A Build-Your-Own Three Axis CNC PCB Milling Machine

N. Sathyakumar, Kamal Prasath Balaji, Raja Ganapathi and S. R. Pandian*.

Teaching Learning Centre for Design and Manufacturing Education

*Department of Electronics Engineering

Indian Institute of Information Technology, Design and Manufacturing, Kancheepuram, Chennai 600127,India

Abstract

The need for fabricating a prototype circuit arises frequently in electronics, including education and research laboratories. In

resource-poor countries in the developing world, this is hindered by the high cost of commercial Printed Circuit Board (PCB)

prototyping machines and long turn-around commercial fabrication process. Practical, hands-on laboratory teaching and

experimentation is necessary to improve learning in electronics. In this paper, a low-cost build-your-own (BYO) semi-automated

three-axis PCB milling machine for double-sided PCB prototyping is developed using commercial components and open source

hardware and free open source software, to provide students, teachers, and engineers an accessible and affordable resource for

PCB prototyping. Also, the main problems encountered during fabrication of PCB have been mentioned and the techniques used

to solve them are discussed in detail.

© 2017 Elsevier Ltd. All rights reserved.

Selection and/or Peer-review under responsibility of International Conference on Advances in Materials and Manufacturing Applications

[IConAMMA 2017].

Keywords: Build your own technology; CNC PCB machine; PCB manufacturing; Auto-levelling; Open source hardware and software.

1. Introduction

It is estimated that the global electronics industry output will reach USD 2.4 trillion by 2020. The demand in

semiconductor industry in India alone is expected to be USD 400 billion in 2020 and it is expected to create around

27 million job opportunities [1]. By contrast the entire Indian IT sector provides around 3.7 million jobs. Therefore,

the Indian government is encouraging initiatives such as Make in India, Digital India, Startup India, and Skills India

to facilitate growth of manufacturing and electronics industries in India, creating numerous high-paying jobs in the

process.

Thus, semiconductor industry is one of the fastest growing industries in India. With this, the demand for and

production of PCBs, which is at the heart of every electronic product are on the rise. PCBs not only provide

mechanical support for the electronic components but also provide other services like electrical impedance matching,

Page 55: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

2 Author name / Materials Today: Proceedings 00 (2017) 0000–0000

electromagnetic shielding and heat conduction [2]. Specialized courses and curriculum in PCB design and

electronics assembly are introduced in electronics engineering education. However, due to high cost of commercial

and often imported PCB prototyping equipment, there is a severe lack of practical hands-on PCB design teaching

and learning in developing countries. This situation can be remedied with the increasing affordability and versatility

of open source hardware like microcontrollers and microcomputers, commercial off-the-shelf components like

actuators, sensors as well as free, open source software, which can be integrated for design of low-cost PCB

prototyping machines for electronics education.

Do-it-yourself (DIY) PCBs can be developed with simple techniques such as using an iron to transfer ink printed

on a transparency to a PCB with chemical etching. But these methods lack sufficient consistency for surface mount

devices (SMDs) and the drilling of holes is tedious since it has to be done manually. Further, the environmental and

health hazards from chemicals used in these processes are significant [3].

Development of safe and high resolution milling and drilling of PCBs is enabled using isolation routing which

overcomes many of the above mentioned drawbacks. In isolation milling, the copper from the board is first removed

to recreate pads, which are signal traces and structures based on the pattern generated by a PCB parts layout file.

In this paper, a BYO PCB prototyping machine has been developed and deployed to make both single- and

double-sided boards for through-hole technology and Surface Mount Technology (SMT).

The common problems encountered while soldering the components on the PCB and aligning the board layers are

discussed. Modern and innovative approaches used at an industrial level to overcome these problems have been

implemented in our machine and studied. Commercial techniques used in easy and comfortable operation of PCB

prototyping machines have been incorporated in the machine.

The above features have been implemented using open source software programs so that teachers and students

themselves would be able to fabricate high-resolution PCBs in an academic environment matching near-commercial

quality. A major advantage of the proposed system is that users can maintain and repair the machine on their own,

without expensive annual maintenance contracts or import of costly spare parts. With the understanding and

experience gained, the users can also gradually add advanced features like fully automated PCB machines with pick

and place assembly, vision feedback, etc.

The paper is organized as follows. Section 2 discusses how a PCB is designed from open source software and

fabricated using an inexpensive CNC milling machine. Section 3 describes the software and procedure to make a

PCB layout file and how to generate the fabrication data. In section 4, issues and techniques prevalent in PCB

fabrication are prescribed. Discussions of experiments and results are given in section 5.

2. Prototype 3-Axis PCB milling machine

2.1. Electromechanical setup

The design of the CNC milling and drilling machine used in the proposed PCB prototyping system is based on

our earlier developed 3-axis CNC mill, as presented by Pandian [4]. A detailed explanation about the mechanical

design, hardware and the software can be found in [4].

Fig. 1. Mechanical setup of the machine

Fig. 2. Electronics hardware assembly

Page 56: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Author name / Materials Today: Proceedings 00 (2017) 0000–0000 3

The mechanical system in Fig.1 consists of three stepper motors for motion along the x, y, and z axes, a PVC-

built frame, a high-speed spindle motor, lead screws for power transmission and other related accessories. The main

specifications of the milling machine are listed below:

Table 1. PCB milling machine specifications.

X,Y,Z axes travel 180 x 180 x 50 mm

Motors Steppers: 3x NEMA 17, 200 step/rev, 2-phase,

1.3A

Spindle motor: 5000rpm @24 V DC, 0.3A no

load

Lead screws Stainless steel, 3xM8x1.25, 20 tpi

Stepper drivers 3 x single axis, rated 3A, up to 1/16 micro

stepping

Speed X, Y axes: 8 mm/sec

Resolution Electrical: 1.8° (0.0062 mm/step)

Mechanical: 0.01mm/step

Weight 14 kg

USB microscope Resolution: 640x480 pixel

Microcontroller Arduino Uno

2.2. Tooling

The high speed DC spindle motor is used for isolation routing through milling and for through hole drilling. The

milling and drilling tool bits are mounted in turn on the spindle motor with a precision ER-11 chuck which holds

bits with 1/8 shank dia. A 30° V-engraving bit with end width of 0.1mm is used for routing. A 0.6mm single-fluted

drill bit is used for making holes and a 0.8mm end mill bit is used for copper rubout and for cutting sections of the

boards. All bits used are tungsten carbide bits because of their extended tool life.

2.3. Electronics assembly

The electronics unit of Fig.2. is placed compactly on the rear of the milling machine. Single stepper motor drivers

are used to power the individual stepper motors for moving the bits along the x, y, and z directions. The stepper

drivers are powered by a switched mode power supply (SMPS) DC power source of 24V.

Stepper drivers are reconfigurable with different settings for maximum permissible running current, stall current,

excitation modes of stepper motor actuation, etc. The running current can be varied from 0.3A up to 3A. Excitation

modes are available for full step, 1/2, 1/4, 1/8, and 1/16 of stepper motor turns. An emergency kill switch is included

from the input side and also a probing setup is used as explained later.

2.4. Arduino based controller

GRBL [5], [6] is a free, open source software used to generate CNC machine G code and M code signals that will

drive stepper motors using the Arduino microcontroller. G-code and M-code are programming languages [7] that are

interpreted by CNC controllers. G-code provides instruction commands for position, speed and path of the motion;

whereas M-code provides auxiliary commands for spindle motor speed, coolant flow, tool change etc. Compiled

version of GRBL software code is available in the form of hex file and is burned into the Arduino. Grbl CNC code

will receive signals from Arduino’s serial buffer and parses it to decode the serial data into G-code. Grbl settings in

Arduino will be stored in the EEPROM of Arduino and so when configured once will not be erased during power

off. Settings can also be viewed and modified anytime by sending corresponding configuration characters. $$

symbol is used as configuration character from which we can view different settings of the machine, such as axis

feed rate, steps/mm, software limits, axis acceleration values, and resolution of movement.

Page 57: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

4 Author name / Materials Today: Proceedings 00 (2017) 0000–0000

3. PCB fabrication procedure

The design of PCB is drawn in Eagle computer-aided design (CAD) software and the fabrication data is generated

in one of many acceptable formats such as .brd or Gerber files. This file is then imported into computer-aided

manufacturing (CAM) software, which outputs a G-Code file which is a machine readable form of instructions. The

overall procedure in PCB design, conversion and fabrication is explained below.

3.1. PCB layout design

The process starts with circuit schematic design of PCB in Eagle computer-aided design (CAD) software [8].The

free student version of the software allows us to create up to 999 sheets including all 16 layers. Firstly, all the parts

needed for the circuit are added and connected according to the circuit diagram on the Schematic sheet. Eagle has a

library navigator which has a collection of parts used in circuitry to be added in the schematic. Thousands of user-

created library packages are made available online by the open source PCB community and could be added to the

existing libraries. The voltage and the ground terminals are added and the components are connected with each

other. A typical circuit diagram is shown in Fig. 3, and its schematic in Eagle is shown in Fig. 4.

Fig. 4. Circuit drawn in schematic Fig. 3. Circuit diagram of LED flasher using 555 timer

Fig. 5. Board layout corresponding to Fig.4

Page 58: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Author name / Materials Today: Proceedings 00 (2017) 0000–0000 5

The conceptual circuit schematic is next converted into the board Layout, where the actual positioning of

components and copper traces are done. Initially, all the parts from the schematic would appear in the Board file

stacked upon each other connected by airwires corresponding to the net connections made in the schematic. Once

the components are positioned onto the board, they are connected by the copper traces set on a single side or double

side. Copper traces can be set in different bent styles, angles, width, distances, etc. The parts are arranged in such a

way that the PCB is compact and small. A sample board design layout appears in Fig. 5.

Finally, we use the Design Rule Check (DRC) of Eagle to check our design for possible errors. Some of the

important and common errors DRC finds are minimum clearance distance between traces, inappropriate trace widths

or drill sizes and overlap between pads or traces.

3.2. G-code generation

The completed file has to be fed into computer aided manufacturing (CAM) software PCB-GCode converter [9]

which converts the .brd file into a G code file with the input tool and machine parameters specified. PCB-GCode is

the User Language Program (ULP) for Eagle produced by Cadsoft that we use as CAM software for producing G

code. ULP loads in the Eagle program and accesses its data structures and creates a variety of output files of desired

type and specifications. Various parameters for the toolpaths, design type, feedrates and other machining parameters

for PCB are inputted into the settings of the PCB-Gcode software.

Some of the important machining settings used are

1. Isolation - Increasing isolation helps in eliminating small slivers of copper left in-between tracks after cutting

process.

Isolation=Etching tool size + Minimum Isolation + (Pass No.*Step size)

2. Generation - The settings under this allow you to specify if you are fabricating a single or double-sided board,

which side you want the drilling process to happen, mirroring the pattern, etc.

3. Drill - Changes the depth of drills and mounting holes and drill dwell time.

4. Feed rates - These settings control how fast the CNC mill will cut and drill the board. As the feed rate

increases, the stress on the tool increases. Also, slower feed rates will ensure a smooth and clean cut on the board.

5. G-Code profiles - Altering the files under this helps you change the formats used by the program to generate

the G-codes to suit your machine.

Once all the input parameters are entered correctly, the software shows the preview and generates G-Code files

that cut out tracks individually for top and bottom layer, drill holes, engrave texts, and mill out sections of the board.

3.3. CNC machine control

The G-Code program is sent to Arduino from control computer (typically, a PC) by serial communication. Few

standard GUI open source software packages available for this are bCNC, Universal G Code Sender [10] or CNC

Grbl controller. These programs are very versatile and control the machine in manual mode or file mode. Options

similar to the human-machine interface (HMI) of expensive commercial CNC machines are included which help in

moving each axis individually, setting workspace origin, and homing cycles. Also, current position of world

coordinates and job coordinates are displayed based on signals sent from the software.

The software has options to set the current position to origin, return the machine to origin position, as well as

write and save complex commands under the macros tab used for tool and work offsets. The files generated by the

CAM software are loaded one by one and the tool is moved to the origin position and the job is run.

3.4. Isolation routing

In prototyping single-sided PCBs, the tool is moved and set to an arbitrary origin position (usually on the lower

left corner of the board). Now the etching G-code file is run which cuts out the tracks and the pads. Now the tool is

moved again to its previously set origin position and the drilling G-code file is run. Usually the option in the PCB G-

code software to create spot drills in the etching stage is used and then the actual drilling G-code file is run. Spot

Page 59: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

6 Author name / Materials Today: Proceedings 00 (2017) 0000–0000

drills create ‘dimples’ or dents in the drill points so that the actual drill tool tip does not deflect and walk-off center

and the hole is drilled correctly. In case of double-sided boards, the same procedure is followed and the top side is

engraved. Next, the board is flipped and aligned to the axes of the top layer and the bottom layer is engraved and

drilled.

4. Techniques used in fabrication

4.1. Zeroing the CNC and probing

Moving the CNC tool tip to its exact origin position is known as Zeroing the CNC. Only then, we can ensure the

preciseness of the CNC and it has been a challenge in CNC operation. Several methods and devices have been

proposed for this but the best and convenient solution is to use a microscope/camera mounted in parallel next to the

spindle. The camera points downwards towards the raw material and shows a magnified image on the computer

screen including crosshairs. A hole is first drilled on the board surface using a drill tool and the spindle is moved

until the crosshairs of the image line up with the center of the hole. The offset distance between the camera and the

tooltip is now measured from the position displayed in Universal G-Code Sender (UGS) and then the offsets are

input under the macro tab of UGS. Thus, in order to set any point we want as origin, we move the camera to that

point and use the macro to set the current position as offset point with respect to origin.

The above procedure will accurately set desired X, Y = 0. But, the vertical position of the spindle, Z axis is also

an important axis to zero out properly. For this, one wire is connected to the tool tip, i.e. the probe and the other end

is pulled high with a resistor and connected to an input pin of Arduino (Fig. 6). Another wire connected to the

ground pin is attached to the surface of the PCB when we mount it. We then use probing command “G38.2” in UGS

which moves the tool towards the board with a given feed rate until the tip touches the board and makes an electrical

contact through the wire. Now, this way the CNC easily determines the exact top of the surface and sets the origin

position.

4.2. Autolevelling

One problem while trying to create finely etched traces is the inconsistency in the height across the surface of the

board. Reasons for this are that the CNC bed may not be flat or that the boards could be warped or bent, which is

usually the case if the boards are larger in size. The ideal depth of cut is found to be 0.01” i.e. 0.254 mm. A 30° V-

bit with this depth of cut gives a groove of width of 0.136 mm. Even minute height variations such as 1mm would

increase the groove width to 0.672mm.This can in turn cause the copper tracks between grooves to become too

Fig. 7. Effect of autoleveller in eliminating height variations Fig. 6. Probes attached to tool tip and board

Page 60: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Author name / Materials Today: Proceedings 00 (2017) 0000–0000 7

narrow, or create shallow “aircuts” forming incomplete traces when the height reduces; also increase in the depth of

cut in the dielectric layer causes impedance variations in high-frequency PCBs [11]. The technique used here to

solve this is to probe the PCB surface in a grid pattern for height variations and modify the G-code so that there is

uniform depth while milling. The software used here to do this is Autoleveller [12] which interacts with the CNC

controller and modifies and outputs a G-Code file for us to run with UGS eliminating the height variations. PCB

board milled without and with the use of Autoleveller respectively when the bed is not flat are shown in Fig. 7.

4.3. Alignment for double sided PCB

One of the biggest challenges in making double-sided boards is aligning the board after it is flipped for milling

the bottom layer. Many methods for alignment have been proposed. A reliable best technique used is to drill

reference holes along two corners of the PCB and locate them using the camera and measure by how much angle the

board is skewed. The points in the etch file and drill file are then rotated according to this angle and run [13], [14].

The matrix for rotation of coordinates around the origin by an angle θ from reference axis (X,Y) to rotated

axis(X’,Y’) is given as (Fig. 8.a,b).

[𝑋′𝑌′

] = [ 𝑐𝑜𝑠 (𝜃) 𝑠𝑖𝑛 (𝜃)−𝑠𝑖𝑛 (𝜃) 𝑐𝑜𝑠 (𝜃)

] [𝑋𝑌

]

Fig.8.a. Top side of PCB Fig.8.b. PCB flipped and rotated through an angle

Fig 9. Capture of reference hole in camera image and measuring current work position in UGS

Page 61: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

8 Author name / Materials Today: Proceedings 00 (2017) 0000–0000

The angle θ is measured by the work position of the reference points displayed in the UGS. Now instead of

finding the transformation matrix and multiplying it to all the points in the G-Code file, we simply rotate the

machine’s coordinate axis system by the required angle using the macro command (G68) and all the matrix

transformation of the points occurs automatically inside the CNC controller. This step-by-step method ensures

surety in rotating the matrix than using separate software for matrix transformation. Fig. 9 shows the hole drilled being identified with camera and the corresponding work position. The angle θ is

measured by the work position of the reference points displayed in the UGS. Now instead of finding the

transformation matrix and multiplying it to all the points in the G-Code file, we simply rotate the machine’s

coordinate axis system by the required angle using the macro command (G68) and all the matrix transformation of

the points occurs automatically inside the CNC controller. This step-by-step method ensures surety in rotating the

matrix than using separate software for matrix transformation. Fig. 9 shows the hole drilled being identified with

camera and the corresponding work position.

4.4. Soldering

Soldering of SMDs has been found to be difficult and is believed to be a job of the expert. Microwave heating as

described below would enable users to perform the soldering conveniently. Formation of solder bridges are

prevented by routing tracks with high isolation distance and this has been found to provide good soldering without

the need for solder mask in procedure. Lead-free solder paste is first applied on the fluxed tracks and components

are mounted on top of them. This assembled board is then preheated for a while and then baked at moderate

temperature in a microwave oven. The solder joints are formed using reflow process and the components align

themselves precisely with the flux. Use of microwave heating facilitates both simultaneous and selective heating

process which does not cause damage to the components. The quality and reliability of the solder joints formed are

found to be reliable. The other properties and advantages of soldering using microwave heating are explained in

[15], [16].

5. Results and discussions

Different sets of experiments have been done with the designed machine similar to [17] to verify its practical

utility and presented below. But a fabrication method using chemicals has been used in [17] which is unsuitable for

academic environment.

5.1. Wire width and resolution

A series of copper tracks with diminishing width has been tried and the thinnest track line that could be reliably

Fig. 10. PCB fabricated with lines and SMT footprints

Page 62: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

Author name / Materials Today: Proceedings 00 (2017) 0000–0000 9

fabricated with the machine is found to 0.2mm. Table 2 shows the calculation of the resolution of the line width

measured using microscope. ∆W is the deviation in the width from the theoretical input width WIN to the actual

routed width on PCB, WPCB. Fig. 10.A. shows the lines routed in the order of diminishing thickness from bottom to

top and a 0.1mm irregular track line at the top.

Table 2. Calculation of line width resolution.

Input unit WIN (mm) WPCB (mm) ΔW (mm)

0.6 0.563 0.037

0.5 0492 0.008

0.4 0.422 -0.022

0.3 0.352 -0.052

0.2 0.212 -0.012

0.1 NIL NIL

5.2. SMT board

Fig 10.B. shows a fabricated board with some of the typical ICs and components used in SMT. It consists of

SMT IC packages such as SOIC, TQFP, SOT23 and resistor and capacitor packages such 0603, 0805, 1206, SMA

etc. It has been inferred that a SMT footprint with a pitch size of as low as 0.3mm can be fabricated reliably with the

machine. In order to implement more precise operation, the machine has been planned to be redeveloped with

stepper or servomotors having optical encoder feedback in future.

5.3. Radio frequency circuits

A conventional branch line coupler is constructed employing four λ/4 transmission line in a ring. By following

the synthesis approach in [18], [19], we have designed and fabricated a branch line coupler (Fig.11) using microstrip

technology working at 2.45 GHz on a low cost 1.65 mm thick FR4 epoxy material with dielectric constant of 4.4

and a loss tangent of 0.02. The physical dimensions were calculated using microstrip line calculator and the board

was drawn in Eagle. Fig.12 illustrates the full-wave simulated S-parameters of the designed branch line coupler.

From the graph, the return loss (S11), throughput (S21), coupled (S31) and isolation (S41) are calculated as -3.7 dB,

-3.7 dB, -27.4 dB, and -31.63 dB, respectively. The experimental measurements of the fabricated prototype and

further calibration are under progress.

6. Conclusion

Thus, a low-cost BYO PCB prototyping machine has been designed and developed for fabrication of both single

and double-sided boards with through-hole and surface mount technology. The resolution of the machine was

Fig.11. Fabricated PCB of a Conventional BLC Fig.12. Full wave simulated S-parameters of BLC

Page 63: A Build-Your-Own Three Axis CNC PCB Milling Machine · 1.2. Reconfiguring CNC Milling Machine as PCB Prototyper The design of the CNC milling and drilling machine used in the proposed

10 Author name / Materials Today: Proceedings 00 (2017) 0000–0000

studied and fabrication of RF circuits has been presented. Commercial techniques used for easy and comfortable

operation of PCB prototyping machines have been incorporated in the procedure. The machine is fabricated with

commercial and inexpensive open source hardware components and freeware and so can be readily disseminated,

adapted and improved for widespread use in electronics education.

Pick and place mechanisms for changing the tool and placing the SMD components can be added in future. A

software program to find the rotation angle for the bottom layer during fabricating double sided boards and to

perform G-code transformation is being developed. It will identify the reference holes on the corners of the board

using computer vision (OpenCV) and send signals to the CNC to move the camera to the centroid of the rectangle

and measure the angle of the axis of bottom layer. It will then create a transformation matrix and modify the G-Code

and run the etch files automatically. This program will also have the ability to interact with the CNC controller and

automatically send macros, find the camera offsets and perform zeroing of CNC and run the whole operation cycle

on its own.

References

[1] S. Sengar, 2015, The rising semiconductor industry in India, http://www.electronicsb2b.com/industry-

buzz/rising-semiconductor-industry-india/

[2] R. S. Khandpur, 2005, Printed Circuit Boards: Design, Fabrication Assembly and Testing, Tata Mcgraw-

Hill Education, Delhi, India.

[3] P. H. Wald and J. R. Jones, (1987), Semiconductor manufacturing: An introduction to processes and

hazards. Amer. J. Industrial Medicine, 11: 203–221.

[4] S. Pandian and S. R. Pandian, 2014, "A low-cost build-your-own three axis CNC mill prototype", Int. J.

Mechanical Engineering and Robotics, 2(1), pp. 6-11.

[5] http://dank.bengler.no/-/page/show/5470_grbl? ref=checkpoint

[6] http://onehossshay.wordpress.com/2011/08/21/ grbl-how-it-works-and-other-thoughts/

[7] Peter Smid, 2008, CNC Programming Handbook, Industrial Press Inc., USA.

[8] M. Scarpino, 2014, Designing Circuit Boards with EAGLE, Pearson., USA.

[9] http://www.richa1.com/RichardAlbritton/create-g-code-from-an-eagle-file/

[10] https://github.com/winder/Universal-G-Code- Sender

[11] M. Gatchev, S. Kamenopolsky, V. Bojanov and P. Dankov, "Influence of the milling depth on the microstrip

parameters in milled PCB-plates for microwave applications," Int. Conf. Microwaves, Radar and Wireless

Communications. 2002, pp. 476-479, Poland.

[12] https://www.autoleveller.co.uk/autoleveller-guide/

[13] https://planet-cnc.com/how-to-mill-and-drill-double-sided-pcb-using-transformations-and-warp/

[14] http://www.alessiovaleri.it/using-transform-matrix-for-pcb-drilling-part-1/

[15] M. Nowottnick and R. Diehm, 2007, "Soldering Technology for 3D PCB Assemblies with Microwave

Heating," 2007 IEEE Int. Symp. Industrial Electronics, pp. 3273-327, Spain.

[16] R. Diehm, U. Pape, M. Nowottnick and W. Kempe, 2006, "Low Temperature Processing of Highly

Integrated Assemblies by Selective Heating," Proc. Electronic System Integration Technology Conf., Dresden,

Germany, pp. 608-611.

[17] J. Ou, A. Maldonado, C. Saephan, F. Farahmand and M. Caggiano, "A low-cost PCB fabrication process,"

2014 IEEE 64th Electronic Components and Technology Conference (ECTC), Orlando, FL, 2014, pp. 2159-2162.

[18] R. K. Barik, K. V. P. Kumar and S. S. Karthikeyan, “A compact wideband harmonic suppressed 10 dB

branch line coupler using cascaded symmetric PI sections,” Microwave and Optical Technology Letters, vol. 58, no.

7, pp. 1610-1613, July 2016.

[19] I. S. Krishna, R. K. Barik, S.S. Karthikeyan, and P. Kokil, “A compact wideband harmonic suppressed 10

dB branch line coupler using cascaded symmetric PI sections,” Microwave and Optical Technology Letters, vol. 59,

no. 4, pp. 913-918, April 2017.