Vous êtes sur la page 1sur 14

7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.

io

Step 1
Printing the parts:
Please use a slicer that supports calibrating holes properly. I
use KisSlicer for slicing, there is a free version available that
supports printing one type of part at a time. You may print
multiple of them at once but only the same part. I love it
because it allows me to print 15 mm holes at exactly 15mm
so that I can press my linear bearings into the holes and
don't need any additional thing but a vice to fix them in place
for the lifetime of the part. It's also just $42 or so and its
generally really good and requires more attention by 3D
printer owners!
Since you can do what you want and PLA and especially
ABS will always warp at least a little bit, I designed the parts
with warping in mind. I added tension releasing cuts where
possible and all functional surfaces are facing away from the
print bed. Therefore, you have to press the brass nuts in on
the TOP side of your prints and never on the one that was
flat on print bed. I changed the design of the X-axis (going
from left to right when you look from the front) so that the
next person to print these parts puts the brass nut on the
onside of the X-axis because that side is more likely to be
flat and 90 degrees than the print bed side.
Since the parts are pretty large, the print of each takes many
hours. Between 8 and 11 hours in my case at 0.2 mm layer
height and 33% infill.

Step 2
Laser cutting the wooden enclosure:
This proved to be a challenge on my K40 laser cutter. I
bought this super cheap $5 a sheet plywood from home
depot and hoped that I could cut it well because I did it
before. But I was wrong. Cutting multiple parts in one go
seems to heat up a component within the laser so that the
cutting power goes down. At first randomly, later
permanently so that the system needs a cool down phase.
Even changing the final focus lens to a 38.4 mm lens to get
more power in one spot did only improve the situation but
not completely eliminate the issue that some parts just wont
cut after cutting a few before. It works, but it doesn't work
well. I suggest to honer your local maker space and ask to
use their laser cutter for a tip. They will cut all the parts in no
time, you get the precision you want and you get to know
some very nice people!
I glued the parts together using wood glue. It is very easy so
do since you can just lay them side by side and apply a bead
of glue. Fold the parts and add M3 x 12mm screws and M3
nuts. Tighten the screws but please don't over-tighten them.
The wood will crack and it's not necessary. The screws are
more an accessory to get the mill into shape and to support
the glue while drying.

Step 3

https://hackaday.io/project/25356/instructions 1/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

Building it up:
I highly suggest to order the hardened steel linear rods cut to
the proper length! They are... VERY hard. Using a hacksaw
to cut them will cost you more time and money than just
ordering them at the proper length. I used an angle grinder
with a thin 1 mm cutter to cut them and even that took some
time at a proper workshop. Most ebayers except these
requests because they have to cut them anyways.
Putting the rest together should be pretty straight forward.

Step 4
grbl on an Arduino Mega256 and a RAMPS 1.4:
grbl is the standard for arduino based CNC machines. I
highly recommend it. I use a modified version on my laser
and now on my PCB mill. To get it to work on the RAMPS
1.4 board for simplicity and because it was part of this cheap
kit I bought, I suggest using grbl for Cyclone and configure it
using my config:

$0=10 (step pulse, usec)


$1=127 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=7 (dir port invert mask:00000110)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=1 (probe pin invert, bool)
$10=31 (status report mask:00011111)
$11=31.000 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$20=0 (soft limits, bool)
$21=1 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=1 (homing dir invert mask:00000000
$24=50.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=0.000 (homing pull-off, mm)
$100=800.000 (x, step/mm)
$101=800.000 (y, step/mm)
$102=3200.000 (z, step/mm)
$110=600.000 (x max rate, mm/min)
$111=600.000 (y max rate, mm/min)
$112=300.000 (z max rate, mm/min)
$120=100.000 (x accel, mm/sec^2)
https://hackaday.io/project/25356/instructions 2/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

$120=100.000 (x accel, mm/sec^2)


$121=100.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=162.000 (x max travel, mm)
$131=107.000 (y max travel, mm)
$132=30.000 (z max travel, mm)

$N0=G92X160Y107 (Sets coordinate system after homing - In current v


$N1=G0X0Y0 (Moves to new home after fresh homing)

Wire up your endstops to MIN even though grbl searches in


the positive space for MAX endstops. This is an issue with
the Cyclone port for RAMPS 1.4. If your stepper motors are
running in the wrong direction using this config, please turn
your stepper motor connectors on your RAMS board around.
If you change the config you might end up in a weird state
and you will need multiple values, not just direction invert.

Step 5
Wiring up the relay for the spindle:
The relay needs 5V because it wants I/O TTL level for
switching. You can use D9 which controls the RAMS 1.4
extruder fan usually BUT you need to wire the relay directly
to the D9 pin. It is located on the top row on the left if you
look at the board with the power and USB connector on the
left side as can be seen here.
The cool thing is that M3 and M4 for spindle ON and spindle
OFF works out of the box without any additional changes.
So solder that wire directly to Arduino digital pin D9 and you
have full ON/OFF spindle control!

Step 6

https://hackaday.io/project/25356/instructions 3/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

Wiring up 110V:
Don't be stupid, please don't hurt or kill yourself! If you never
worked with land line power, ASK SOMEONE WITH
EXPERIENCE to do it or to help you! I'm not responsible for
anything that happened to you or your stuff while wiring up
the power to the switch, the power supply, the spindle relay
and the switched power outlet on the side! Specifically,
whenever you open the power backpack, pull the plug!
Therefore, I won't go into details on how to wire this up. I
want you to understand what's going on so you should
research what is necessary.
Just this:
Power to switch
Power to power supply
Power to relay
Power to power plug
12V from power supply to both RAMPS inputs (not
actually required to use both because the second input
is for a heated bed and the extruder on a 3D printer)
That is essentially it. I highly suggest covering every open
screw terminal that's usually hidden in a wall (remember, we
use the cheapest possible wall mounted switches and wall
plugs here) with electronics isolation tape, heat shrink or
similar.

Step 7
Milling the Mill Bed Top Fence:
EDIT: For your sake, I added a wizard to the
grblController software to make this step very easy. Fire
up grblController, connect, go to the Mill Alignment
Fence tab and follow the instructions:

https://hackaday.io/project/25356/instructions 4/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

Milling the top fence that you just glued to the bed is
important to have an absolutely parallel reference to the X-
axis of the machine. You COULD go without it if you plan on
only mill single sided PCBs, so you may consider this your
first upgrade to the machine. Even though you just put it
together. And the upgrade came with the package for free.
And you already know that double sided is much cooler
anyhow. I know, it isn't. But then the yoke wouldn't work.
Put in an outline mill bit like one of these.
Manually move the X-axis from one side to the other side
and check where the mill bit is closest to the fence. You will
already see, it's not 100% parallel that way. The reason we
need to know where the bit is closest is so that we a) don't
run into a wall or remove too much material and break the
mill bit all of a sudden, and b) because on that side we need
to mill more material off.
In my case it was fairy good but not perfect. So I created a
simple gCode file that runs 5 mm deep in multiple straight
lines, going lower in Z every time.

(Metric Mode)
G21
(Absolute Coordinates)
G90
S30000
G0 Z12.7000
G1 X0 Y0 Z0 F360
M3

G1 Z-0.5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-1 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-1.5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-2 F144
https://hackaday.io/project/25356/instructions 5/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io
G1 Z-2 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-2.5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-3 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-3.5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-4 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-4.5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G1 Z-5.5 F144
G1 Y162 F360
G1 Z1 F360
G1 Y0 F1000

G0 X0 Y0 Z12.7000 F360

M4
M2

As you can see, it's pretty straight forward.


I moved my mill bit as close as I dared against the fence, put
it on top of the fence in Z, so that it can actually mill 5 mm
down in Z and hit start. The reason why it goes 5.5 mm
down is that I didn't care about a little straight line at the
bottom of the fence but I DO care of there are some
leftovers that the mill bit didn't mill properly. It is of utmost
https://hackaday.io/project/25356/instructions 6/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io
leftovers that the mill bit didn't mill properly. It is of utmost
importance that you can align your PCB perfectly flat to the
fence. Particles, dirt uneveness is unacceptable for double
sided PCB milling!
If you see that your mill bit is not actually milling the fence
everywhere along the way, please repeat the process after
manually adjusting the Y-axis a bit to get closer to the fence /
into the fence a little more.
If you followed the steps, you should now have a parallel mill
bed fence that is perfectly parallel to your X-axis.
Congratulations!

Step 8

https://hackaday.io/project/25356/instructions 7/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

Calibrating the X-Axis:


To be documented. Sorry guys. I wrote the text already but
the Logitech software for my keyboard assigned the reload
function to a button right next to the left CTRL key and guess
what. Hackaday.io reloaded and my text was gone. I will get
back to this tomorrow, I guess.
Ok, let's try this again.
The reason why this step is super important for everyone
who wants to work with double sided PCBs on this mill is
misaligned holes can cause short circuits on one of the
sides. For example when a via or any through hole part has
a rather small restring the misalignment can cause the
restring to rip open and bend against the surrounding ground
plane. It also looks cleaner if this is properly calibrated. But
hey, it's not hard.
I added a wizard to the my version of the grblController to go
through the calibration process. Please fire up grblController,
connect, home the machine and follow the instructions in the
calibration tab:

Step 9
Milling a PCB:
You have come this far, that is both admirable and awesome
https://hackaday.io/project/25356/instructions 8/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io
You have come this far, that is both admirable and awesome
and I thank you for following along!
But that also means you need to get the settings and
instructions now to be able to mill your first PCB
successfully. In other words, this log entry might become a
little wordy but I will try to keep it as short as possible since
I'm not a fan of reading 20 pages to get the bottom of a
simple step myself.
Fire up eagle and load your board design
Move your entire board slightly away from 0,0 which
should be at the bottom left. This is important because
otherwise the mill will eventually end up running into
negative space on the TOP layer and that is definitely
NOT what you want. We want to keep things simple.
Move it away by 5 mm in X and Y.
Use the info tool and move your outlines from the layer
48 Document to the layer 46 Milling. This will enable
the pcb-gcode script to find your outline and generate
your milling path for the outer contour of the PCB.
Please keep in mind that the end mill will run exactly in
the center of the mill line. There is no outer offset
based on the diameter of the endmill being calculated
by pcb-gcode! You have to design that into your board
layout yourself!
At the top of eagle you find your command text field.
Type "run pcb-gcode-setup" and hit enter.
Change all fields to the following settings if the settings
I have provided in the pcb-gcode patch archive didn't
do that for you already:

The new item that I added so that your outlines can be


milled without destrying your endmill is on the right. Num
Slices is the number of layers for cutting the outline. So at
-1.8 mm cutting depth this results in {-0.3 mm, -0.6 mm, -0.9
mm, -1.2 mm, -1.5 mm, -1.8 mm} different cut depths.
https://hackaday.io/project/25356/instructions 9/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io
mm, -1.2 mm, -1.5 mm, -1.8 mm} different cut depths.
Since the board in my example didn't need a bottom side, I
deactivated the bottom layer features. However, I think the
following should be selected for a dual layer board:

1. Generate top outlines (there is a bug in this menu: If


the top outlines are not selected, the top.etch file will
not be generated. I might hunt that bug down later...).
We will ignore the top.mill file!
2. Generate top drills (we want to drill first)
3. Generate bottom outlines (this is your mill file for
cutting the outline of the board. We need to do that
LAST!).
4. The bottom.etch file will be generated automatically.

Please note: I have deactivated Show Preview because it


annoyed me after a while. When you know what the result
should be, you can deactivate it. It speeds up the process
significantly - not that it's very slow in the first place...

The machine uses the speeds that OtherMill suggests for


milling FR1 copper clad board. That is by no means super
fast but it looks impressive enough. My endmill holds up to
that speed and I'm fairly confident that my 10 mill bits will
last quite a long time for their huge $9 investment (for all
ten).

https://hackaday.io/project/25356/instructions 10/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

Select the grbl-cyclone.pp file and go to the next tab.

That's it! Hit Accept and make my board.


Now, you should have a range of files in your project folder.
filename.top.etch.gcode
filename.top.drill.gcode
filename.top.mill.gcode (ignore forever)
filename.bot.etch.gcode
filename.bot.drill.gcode (ignore forever)
filename.bot.mill.gcode
We do not want to drill twice. If there is a tiny misalignment
in your PCB machine, you will not drill into a hole but slightly
off the center of that hole. It is very likely, that your drill bit
will snap and we don't want that! Specifically, if it ends up in
your eye!
Preparation of the PCB:
Make sure the PCB is flat. If not, use some gentle force to
flatten it. When it is flat enough, use double sided tape and
apply it with even distance throughout the area you expect
the machine to mill. More doesn't hurt but it would be good
to be able to remove the PCB from the mill bed after milling
without destroying neither the PCB nor the bed.
Apply the PCB to the top left corner of the mill bed for the
https://hackaday.io/project/25356/instructions 11/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io
Apply the PCB to the top left corner of the mill bed for the
top side and make sure you have it aligned properly and
totally parallel and flat to the top mill bed alignment fence.
This step is important!
Fire up grblController with my modifications and connect to
the mill. Go to the PCB Milling tab and home the machine.
Otherwise it won't do anything but lock you out.
==============================================
==================
After homing, make a dry run in thin air without Z-probing
and without any endmill attached. Make sure the system
works properly before you even attempt to mill a board!
Make sure your Proxxon actually spins up when milling
should start.
==============================================
==================
Then, attach your V-shaped endmill and connect the probing
wires to the PCB and the endmill. I press the one wire with a
crocodile clamp onto the copper clad board and I attach the
other wire with a crocodile clamp to the end mill. MAKE
SURE YOU HAVE PROPER CONNECTIONS or you will
break your endmill. I suggest testing it first by just touching
your endmill with the second wire from the PCB to check if
the machine stops instantly during the probing run. Check
your wiring if it doesn't do that! Remember, the pin must be
pulled to ground because it uses the internal pullup of the
micro controller and it looks for a low signal on the I/O.
Confirm that the wires are connected using the check box
and hit the Probe Z0 button. Z-axis moves, gently touches
the surfaces and stops. Be prepared to emergency
shutdown the mill during the first couple of Z-probes... It's
probably a good idea to use even slower feedrates.
All done, let's get to business:
Load up your top.etch.gcode file.
Remove all your probing wires.
Hit Start!
Milling begins now, the spindle turns on and you should see
the system running through the PCB. Wait until done.
Move the spindle to safety and remove the v-shaped endmill
and replace it with the drillbit of your choice!
Load top.drill.gcode and repeat the Z-Probing step. Be
careful to actually have a proper connection. The drill bit will
just break instantly of you don't.
It is wise to run the Home X and Y command first by
pressing the button because you attached a new tool and it
is likely that something moved in the process.
After successful Z-probing, hit Start again and wait until
finish!
Move the spindle to safety and remove the drill bit and
replace it with the v-shaped endmill!
Remove the PCB, clean the print bed and free it from any
remaining double sided tape. Since it is wood in my case, I
scrape it off instead of using chemicals. If the bed is not
properly flat, you will run into problems with etching now.
Apply the double sided tape on the TOP side of the board
https://hackaday.io/project/25356/instructions 12/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io
Apply the double sided tape on the TOP side of the board
you just etched successfully and glue the board to the TOP
RIGHT edge of the mill bed such that the old top left corner
of the copper clad board is now in the top right alignment
corner of the bed facing down.
==============================================
==================
At this point, I'm going to assume you have calibrated your
X-Offset already!
If not, a drilled hole on the top side must line up perfectly
with a drilled hole on the bottom side. In my case the offset
was 160.3 mm in X and it should not be vastly different on
your system. Maybe by 0.5mm but not more. That should
give you at least an acceptable test PCB for starters. If
you're planning on using DIP and though hole parts. Test it
and calibrate it using one or two holes only! Drill a hole
manually at X=60, Y=5 and then move to the bottom
coordinate system and drill X=-60 Y=5 and it should line up
perfectly!
==============================================
=================
Load the bot.etch.gcode file from your PCB project directory.
HOME THE MACHINE!
Hit the Set Bottom Side Coordinate System After Fresh
Homing button (WARNING: This will move the end mill
to the new X0 position in the other corner. Make sure
the path between X0 on the left and the new X0 on the
right is free of obstacles or your endmill will break! I will
add a checkbox for this later to make it safer and more
idiot proof)
Attach probe wires
Probe for Z0
Hit Start!
Wait until finished.
Repeat with bot.mill.gcode but please attach you mill bit to
the Proxxon spindle.
Attach probe wires
Probe for Z0
Hit Start!
Wait until finished.
Please keep in mind that the end mill will run exactly in the
center of the mill line. There is no outer offset being
calculated by pcb-gcode! You have to design that into your
board layout yourself!
After all this you should have a board done. So much text! If
you do it twice, you won't need any of this anymore because
it's actually just pressing three buttons and changing some
end mills and it's done. Takes no time to do but the learning
curve is rather steep.
Congratulations! You have successfully milled your first
double sided board with drilling holes and milling the
outlines!
Thanks for reading all of this and I hope it helps you to get
started!

https://hackaday.io/project/25356/instructions 13/14
7/3/2017 Instructions | Sub $200 PCB Mill that doesn't suck! | Hackaday.io

https://hackaday.io/project/25356/instructions 14/14

Vous aimerez peut-être aussi