Introduction: Easy and Cheap PCB Milling

About: Software developer but I love electronics, wood, nature, and everything else as well.

I write this guide because I think It's helpful starter tutorial to milling PCB in a very simple way and low budget.

You can find complete and updated project here https://www.mischianti.org/category/tutorial/milling-pcb-tutorial/

Step 1: Instruments: Router

If you have some passion for homemade things you must build a router.

To build It you need arduino an old scanner and an old printer.

I write old in bold because new device sometime haven't a stepper motor but brush motor with feedback device.

Than If you have at home a dremel like It's perfect to complete your CNC.

My CNC is that (a mix of drawer guides, epson gt-8700 and Lexmark x642e all completed with plexyglass).

Finally I upgrade my router:

www.mischianti.org

Step 2: Instruments: Router Electronic

Component of CNC

  • Arduino UNO.
  • CNC Shield (eBay).
  • DRV8825 (eBay).
  • Stepper from Scanner and Printer.
  • Relay to activate Dremel (eBay).
  • You must create a board to eliminate noise from limit switch.
  • I use HC-05 bluetooth to control the CNC because the noise of dremel is very high and I prefer control from another room (eBay) (Explain connection here).

Program/firmware on Arduino

  • You can find here the program to upload to arduino (I must change some property of code to use without speed regulator, my dremel is activated or deactivated without PWM).

Step 3: Instruments: FR4 Single Side Copper Clad Plate.

For the project I select a single side Copper clad plate 1.5mm thin.

eBay

Exists 2 variant one with yellow (laminate) and other white material (Glass Fiber), the second one is better for milling.

Step 4: Instruments: V Style Bit (10° Angle and 0.1mm Tip).

It's very cheap bit I buy 10pcs for 3$, and work well.

eBay

Step 5: Instruments: Fritzing

A beautiful program to prototype board.

http://fritzing.org/home/

Step 6: Instruments: FlatCam

A specified program to create gcode from Gerber file.

http://flatcam.org/

Step 7: Instruments: Universal GCode Sender.

This program is what I like to use to control my CNC but you can use what you want.

http://winder.github.io/ugs_website/

Step 8: Starting Project.

To start we need a project, I like to create a fast prototype board for my IC, and I like to program with ESP01, I like to work with only two wire (so I can use Serial olso), so PCF8574 IC a I/O port expander via i2c protocol is my first prototype board.

The input female pin is GND, VCC, SDA and SCL, the dipswitch-03 is for setting address of i2c.

Then there are 8 female pin for I/O (P0-P7) and a Interrupt pin near SDA SCL pin.

You can find library to use in a simple manner the IC here and the instructable here.

Step 9: Fritzing: Project

For first you must create your prototype on breadboard.

As you can see the only difference from a "normal prototype board" is that I add a female pin.

I add that because so I have that pins to the PCB schema.

If you want you can create a schema for better comprehension, but It's not needed.

Step 10: Fritzing: Start Draw PCB

Than in the third tab you have a scrambled PCB and here we must work.

Positioning is very simple, so I add only some advice.

Step 11: Fritzing: Select Correct Layout of PCB

For first select a gray PCB and in the right panel select one layer PCB.

Step 12: Fritzing: Use Jumper to Overlap

Than start to positioning element over the PCB.

Than connect element, when you have a overlap you can use a jumper element, you can find It at the end of core parts with some other useful instrument for create PCB.

Step 13: Fritzing: for Bigger Hole Ring

I need to connect 2 elements but 2 wire is in the middle so you can use a jumper wire to doing that.

Sometime I don't use jumper wire because I like to create hole bigger than normal.

You can specify size, when I can I create 0.8 0.8 hole (for bigger hole ring).

Step 14: Fritzing: Set PCB Size to Reduce Waste

The blank PCB that I buy is 7cm x 5cm.

To have a better milling surface I prefer use few 45° angle copper wire and I'm going to use a bigger surface with minimal waste so I select a sub-multiple dimensions like 1/2 of the size 3.5cm x 5cm.

Step 15: Fritzing: Use Bigger Size of Copper Wire

When you use few 45° angle you can create a thick copper wire.

Bigger copper wire is more safe when you are going to route PCB.

So select copper wire and "extra thick" on panel.

Step 16: Fritzing: It Is Not Always Necessary Create Components

In this project I need a dipswitch 03 but in Fritzing you have 02 and 08, if you want you can create the component or you can overlap 2 of that to create a single dipswitch 03.

Step 17: Fritzing: Some Text on PCB

If you want add some text on PCB you can use a text instrument.

Now we create a single side PCB so to write something like second image.

You must select silkscreen bottom, and to have a good readability I think you must set 4mm text height.

Step 18: Fritzing: Connect All Elements

At the end when you connect all elements and write what you want.

The typical result is in the Image.

Step 19: Fritzing: Generate Gerber File

In Fritzing we can export the gerber file from the menu File-->Export-->for Production-->Extended Gerber.

Select a folder and go.

The name of the generated file is quite readable.

Step 20: FlatCam: Settings

First I set some default value on my FlatCam.

I set 0.57 for tool dia[meter] because it is the max tool size without too many overlaps.

For Excellon (drill information), I set it to 1.5mm because this is the thickness of the copper clad that I buy.

Paint area I set overlap (0.01) and margin (0.1) very low to create small letter.

Border put 0.1 to margin, other value is reccomended.

Step 21: FlatCam: Import File

You must import in FlatCam so:

File --> Open Gerber

  • copperBottom.gbl
  • silkBottom.gbo
  • contour.gm1

File --> Open Excellon

  • drill.txt

Step 22: FlatCam: Generate CNC Job (drill)

The last one is drilling but Excellon is already geometry.

I don't want to change the bit; I've use the same bit all along and a punching tool to enlarge the smallest part of the V hole. Or if can set low dept and finish hole with a 0.75mm bit.

I also use the punching tool to remove the copper connections that aren't removed by the CNC.

  • Select drill.txt on the screen where there is the list of bit sizes, click and select all (Ctrl+a).
  • Then go to generate CNC Job.
  • Cut Z is the dept of the hole, I set It to -1.5mm the height of copper clad.

Step 23: FlatCam: Generate CNC Job (copperBottom)

Tool dia to 0.57 as usual, and set splindle speed if needed (I use dremel with costant speed).

Step 24: FlatCam: Generate CNC Job (silkBottom)

Now select "Combo" element (generated from the joint geometry of silkBottom) then Create CNC Job.

Step 25: FlatCam: Generate CNC Job (contour)

Lastly, select contour.gm1_cutout.

Here I prefer to generate a cut of 0.5mm dept, then I cut to the line with tin scissors, so I set 0.5 of final dept and 0.05 for pass.

Step 26: FlatCam: Generate Gcode File

From FlatCam select one to one the "*_cnc" file and "Export G-Code".

Step 27: Universal GCode Sender

I use to send command to CNC UGS, It's very simple and beautiful.

The common cutting order is:

  • copperBottom
  • label
  • drill
  • border

Step 28: Universal GCode Sender: Simulation

Here a simulation of Universal GCode Sender.

Step 29: Put Copper Clad on Router

I use biadesive to hold copper clad to the surface.

For this part I use a photo of other project that I have directly available.

Step 30: Start Routing

After positioning Zero coordinate, start routing.

For this part I use a photo of other project that I have directly available.

Step 31: Start Routing: Video

Finish copper bottom routing.

Step 32: Dirty Result

When finish the result is quite ugly.

For this part I use a photo of other project that I have directly available.

Step 33: Sanding Board

With sand paper PCB take form.

Then cut border with scissor.

For this part I use a photo of other project that I have directly available.

Step 34: Copper Clad Milled

Now we have our first view of PCB

Step 35: Soldering Component

In a full PCB copper ring thickness is quite thin, but no problem to solder It.

Step 36: Final Result

The result It's ok.

Step 37: Examples: I2c LCD Adapter

Link to library here.

Step 38: Examples: Pcf8591 Prototype Board

Link to library here.

Step 39: Examples: ESP-01 Prototype Board

Very usefully to use all 4 pin of ESP01, and to manage external power supply.

Step 40: Examples: Pcf8574 Prototype Board Minimal Versione

This version is my smallest size of the board, with very thin copper wire at 45° curves.

Link to library here.

Step 41: Thanks

Epilog Challenge 9

Participated in the
Epilog Challenge 9