Easy and Cheap PCB Milling

16,681

177

10

Published

Introduction: Easy and Cheap PCB Milling

About: Software developer but I like 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.

Feel free to correct my bad English, and help me to do It better.

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).

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: Set Correct Versus

Now we must flip the draw.

  1. Open the panel to check the side (Tool --> Double-Sided PCB Tool).
  2. Set "Mirror Axis" to Y and "Axis location" to Box, and set "Point/Box" to contour.gm1.
  3. Now select one to one all the Bottom Layer and click to "Mirror Object", so you flip all layers.

Step 23: FlatCam: Generate Geometry (copperBottom)

Now double click to select copperBottom and "Generate geometry".

FlatCam draw a red line to the perimeter of copperBottom image, pay attention where the line is not close, at the end of routing you must break that point(if you want to close the line, set the "Tool dia" to a smaller size like 0.55).

Step 24: FlatCam: Generate Geometry (silkBottom)

For better comprehension sometime is usefully add text:

  • Select silkBottom, change tool diameter (like 0.4) to reduce margin. Reducing the margin of "red line" is a simple trick to reduce size of the area, then we can use generated area to cut inside.
  • Then one by one we must create the geometry to milling letter inside by:
    • Select silkBottom.gbo_iso than look at "Paint area" panel.
    • Reduce "Tool dia"(if needed) to generate a complete geometry inside the letter. Like image 4.
    • Do it for all the shapes (or letters) that you want milling.
  • Now select all iso paint generated.
  • Then Edit --> Join Geometry (create Combo file with all geometry).

Step 25: FlatCam: Generate Geometry (countour)

Then select contour and go to generate border geometry.

Put 0.1 to margin to reduce distance.

Step 26: 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 27: 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 28: FlatCam: Generate CNC Job (silkBottom)

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

Step 29: 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 30: FlatCam: Generate Gcode File

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

Step 31: 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 32: Universal GCode Sender: Simulation

Here a simulation of Universal GCode Sender.

Step 33: 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 34: Start Routing

After positioning Zero coordinate, start routing.

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

Step 35: Start Routing: Video

Finish copper bottom routing.

Step 36: 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 37: 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 38: Copper Clad Milled

Now we have our first view of PCB

Step 39: Soldering Component

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

Step 40: Final Result

The result It's ok.

Step 41: Examples: I2c LCD Adapter

Link to library here.

Step 42: Examples: Pcf8591 Prototype Board

Link to library here.

Step 43: Examples: ESP-01 Prototype Board

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

Step 44: 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 45: Thanks

Share

Recommendations

  • Water Contest

    Water Contest
  • Oil Contest

    Oil Contest
  • Creative Misuse Contest

    Creative Misuse Contest

10 Discussions

Excellent innovation and reuse of parts! I shall be incorporating some of your ideas into my own CNC router, which is primarily for producing PCBs as routing seems to be the most cost effective and reliable way to produce them. My only reservation is the noise as I live in a flat, so I am looking at way to minimise that and had to laugh at your solution (go to another room) and wish it were an option for me. Thanks for taking the time to post all of this.

1 reply

Thanks, you are not the only people that notice the reuse of computer trash, other ask me to add on my youtube a playlist to explain recycle (my cnc final cost is about 40/50€ of parts).

A lot of my project (Router table also I reuse some part of an old cabinet and low cost wood) are ideas to reuse some "trash".

For the noise I advise against the use of the dremel, I control my cnc to arduino via bluetooth because I can not stay in the same room: P, but dremel (clone) can raise 28000rpm with high power, low voltage motor have less power.

But next thing to do is an article about "trash".

Wow, I have seen other attempts at explaining PCB with CNC but none explained it as well and comprehensively as you have. Thank you!!

CNC PCB has been on my list for a long time maybe now it is getting closer.

Ralph

1 reply

Thanks, when I have time I try to do some video (whit my bad english) to explain better the process.

Great overview and of process and way to use off the shelf components to build CNC. Neat how you can make an Arduino basically from an Arduino other than the electronic components themselves of course.

1 reply

At least, I have that thought after watching this that using the Arduino as an ISP to program the copy of the Arduino used in the design. Price of Arduino isn't so much though and may be more cost effective to save time and buy another for specific use. I wound up downloading Fritzing again and copied over, upgraded and downloaded the latest libraries. Am going to actually use now. Thanks for sharing and inspiring! Grazie per l'ispirazione!

I should have read this 2 months ago. I have students finishing up their PCBs they are making from Frizing > FlatCAM > milling on Carvey CNC machine. I learned the hard way like you said, extra thick traces! I could not find the jumper in Fritzing, now I see! Did not realize you can set the hole size on via either, that would have helped.

1 reply

The process is not difficult but some trick help.

If you have had feedback from your students, tell me if there are parts that should be explored or explained better, perhaps adding some videos.

very nice instructable. I’m working on a CNC right now so this will become useful in the future. Thanks for sharing.

1 reply

Thanks, I hope this inscructable help you to overcome the problems I encountered.