CNC Machine for PCB manufacture

Published Aug 30, 2021
 5 hours to build
 Intermediate

CNC machine for development of low-cost PCB's projects

display image

Components Used

Arduino UNO
Arduino UNO
1
DRV8830 Low-Voltage Motor Driver
DRV8830 is a low-voltage H-Bridge motor driver with a serial interface.
3
Stepper Motor NEMA 17
Stepper Motors .5A Single Shaft 0.9 Deg NEMA 17
3
12V DC Fan LED Fansink- Cooling Module
12V DC Fan LED Fansink- Cooling Module
1
12V SMPS
Switching Power Supplies AC-DC 35W LOW COST
1
Emergency Stop Switches
Emergency Stop Switches / E-Stop Switches TE1 E-Stops
1
Limit Switches
Limit Switches Short Hinge 10A Roller
6
Proxxon MF70
Manual miller of high precision
1
CNC arduino shield
Shield for CNC machine
1
Description

Hardware setup

First, we have to build all the basic mechanical parts of the miller al put in each axis one of the stepper motors, then we have to attach two end-stop switches for each axis, one at the beginning of the rail, and the other at the end of the rail, and repeat this step for each axis, in this case, my miller machine only have 3 axis X, Y, and Z, and I used 6 end-stop switches and 3 stepper motors.

 

Once we finished all the mechanical construction (It's the hardest step), we have to join each stepper motor with one driver on the Arduino shield, and each end-stop switch with the Arduino shield as follows. Remember to follow the labels in drivers to connect X, Y, and Z-axis, and the same for the end-stop switches, they have labels such as X+ and X- to set the first (at beginning of the trail) and second (at the end on the trail) switch.

Basic Schematic

After wiring, we have to put the stepper drivers, but first, we have to calibrate the potentiometer in each little board, and we have to follow the datasheet, these case I'm using the drv8825 (link datasheet: https://www.ti.com/lit/ds/symlink/drv8825.pdf?ts=1630260587096&ref_url=https%253A%252F%252Fwww.google.com%252F) and we have to adjust the potentiometer until have:

$$V_{max} = I_{max}(8 * R)$$

We have to replace this equation with the parameters of our stepper motor and driver. And then we have to put one driver for the axis in the CNC shield.

 

Finally, we have to connect our CNC shield to our Arduino UNO and also connect our power supply.

Final hardware setup

As you can see in the picture, we can connect a fan to the power supply and put it around of shield to avoid high temperatures.

Software Setup

First, we have to upload the firmware for the Arduino UNO, and I use the Grbl V1.1 CNC firmware because it is open-source and many companies support its development.

To upload the firmware, we only have to download the GitHub library and paste it on the Arduino libraries (as a common library) and open the default example it has and upload it to your board.

grblUpload example file

With the firmware ready we have to get an app to make the interface between the machine and us, and for this work, I decided to use UGS, It is another open-source project and also works for any operative system, in my case I use Linux and it a good solution. 

UGS

Now we have everything ready and we only have to make our test with our  G-codes. 

G-code

To create my codes for test my CNC machine I use Inkscape for random drawings and KiCad with FlatCAM

PBC on Kicad
G-code on FlatCAM

Results

Whit this first test our results were amazing, it wasn't perfect but the quality was enough to solder the components of PCB.

Milling Process
Final result

Other Tests

Making a Homer key chain

Milling Process
Final result

Making a PCB Through Hole

Milling Process
Final Result
With components and solder mask (top side)
With components and solder mask (bottom side)

 

Downloads

G code to test Download
Comments
Ad