CNC Router

From VoidWarranties - Hackerspace Antwerp, Belgium
(Difference between revisions)
Jump to: navigation, search
(I also like to contribute to this project)
 
(26 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{Project
 
{{Project
 
|Current=Yes
 
|Current=Yes
|Category=Crafting
+
|Category=Infrastructure
|Logo=Router.jpg
+
|Logo=router.jpg
|Participants=User:Ivom, Jeffrey, Yashiko, Jobj, Yvanj,tomvdz, Tom,
+
|Participants=Jeffrey, Jobj, tomvdz, Tom, berz, warddr
|Short description=Figuring out requirements and workflow restrictions for a CNC router
+
|Locations=Den Bunker,  
 +
|Short description=building and operating a CNC router
 
}}
 
}}
=Requirements=
+
The goal of this project is to build a CNC router that can mill regular PCBs with non-SMD IC components, MDF, stryrofoam HDPE and nylon. The budget is around 1000 euro.
# Milling regular PCBs with non-SMD IC components should be possible with are fair margin
+
We ended up going for the [http://www.repairablemachines.com/ MiniCnc, made at TimeLab Gent]
# Bits for milling MDF, stryrofoam HDPE and nylon should be possible
+
# Sub 1000 euro budget limit, including a set of drill bits matching our initial goals
+
  
=5 crucial project ideas to pull this off=
+
== the CNC router ==
# cutting PCB circuit boards (resolution limits between two layers of 0.2 mm and 0.8 mm)
+
[[File:dremel_runout_pcb.jpg|thumb|dremel runout]]
# prototyping custom boxes for the Nanode and Arduino kits people own
+
The minimal distance between  tracks when milling PCBs is about 0.2 mm, according to the people at timelab Ghent.
# engraving nametags, labels, equipment
+
The maximal range is (X:173mm, Y:179mm).
## the Voidwarranties logo is the first to go: [http://barcode.tec-it.com/barcode-generator.aspx online barcode creator],
+
## transform the image to dxf
+
## mill it on acryl add some neon or LED-light
+
## mount it outside the josto-building
+
# cutting out mechanical parts for robottics.  
+
# for furniture restoration: 3D scanning woodcarvings and recreate missing pieces.
+
# making models, molds, spare parts wich could be hard and/or expensive to come by.
+
# miniature furniture for the doll house, then scale it by a factor 10 and, goodbye IKEA shopping horrors.
+
# de houten spatel van de space is serieus aan vervanging toe en mag gelijk van het VW logo voorzien worden. Als het werkt millen we er een 20-tal.
+
  
Oops that make 8 :)
+
At the moment the base plate is not parralel to the X,Y plane. There seems to be some glue residue on the base plate which we should sand off.
  
==Meta project level==
+
At the moment the accuracy is limited by the dremel, and the runout on its spindle. This can be seen when milling a point with a small diameter endmill,
# the shear pleasure of learning new skills and the satisfaction to make it
+
instead of a small hole, a tiny circle will be milled. Probably the accuracy can be increased with a better spindle (with ball bearing) like the KRESS 800 FME
# actually work and implement your design (-> insert education workshops here)
+
# researching the feasability to convert the cnc router to a touchsensor 3D scanner
+
Please add additional thoughts on [[Talk:CNC_Router|Talk page]]
+
  
=Found products=
+
We added a LED to the carriage to illuminate the milling area.
* [http://www.cnc-sable.nl/sable-2015-p-21.html Sable 2015]
+
  
* [http://www.repairablemachines.com/ MiniCnc, made at TimeLab Gent]
+
== Software ==
 +
The CNC router controlled by sending it gcode. The sending of the gcode is done with replicatorG.
 +
Multiple programs can be used to generate gcode.
  
=Selection: MiniCnc, made at TimeLab Gent=  
+
===ReplicatorG===
[[File:Pcb.jpg|top|right|142px|caption]]
+
ReplicatorG will report about a feedrate of zero, this is normal acording to https://groups.google.com/group/ultimaker/browse_thread/thread/6892f2b14d11b361 and is caused by our CNC lacking a feedback mechanism.
 +
We are using replicatorG version 25.
 +
if starting replicatorG normally it will not be able to control /dev/ttyUSB0 to talk to our CNC. So you either have to start replicatorG as root or run
 +
sudo chmod 777 /dev/ttyUSB*
  
*Q: Minimal distance between  tracks when milling PCBs?
+
=== Cad.py ===
*A: About 0.2 mm
+
Cadpy can transform bitmaps to gcode. Beware that multiple versions of this tool exist, not all of which do work with our machine.
  
*Q: What host software is used to transform CAD designs to G-code?
+
=== Software we haven't checked out yet ===
*A: Replicatorg with skeinforge as plugin software and a custom http://www.repairablemachines.com/usingcadpy.html
+
* pycam looks promissing for milling out 3d objects and 2d engravings: [http://sourceforge.net/apps/mediawiki/pycam/index.php?title=Main_Page pycam]
 +
* Inkscape  gcodetools. See the void logo gcode made by Yvan: [http://dl.dropbox.com/u/15854305/VoidCNC/voidcnc.ngc gcode].
  
*Q: What kind of PCB design is up for testing
+
== Engraving ==
*A: find the answer with the picture on the right
+
[[File:CNCtux3.jpg|thumb]]
 +
To engrave a flat surface:
 +
* make a black and white png of what you want to mill
 +
* Input this in cad.py, adjust the width, height and depth of the engraving. Adjust the tool width and overlap.
 +
** If you want to engrave the outline: set contour to 1
 +
** If you want to mill out the whole black area: set contour to -1
 +
** fix the errors in the gcode outputted by cadpy manually
 +
** copy the gcode to replicatorG
 +
** put the CNC on the surface you want to engrave and callibrate the Z axis on multiple points to make sure the engraving surface is parallel to the X,Y plane
 +
** mill!
  
=Research by Jeff=
+
== Milling PCBs ==  
* I found some interesting links about milling PCB's:
+
[[File:CNC_PCB1.jpg|200px|thumb|right|test 1]]
** [http://www.probotix.com/pcb_milling/ Example of milled PCB + milling bit]
+
[[File:CNC_PCB2.jpg|200px|thumb|right|test 2 & 3]]
** [http://www.drewtronics.net/ other examples of milling bits]
+
[[File:CNC_PCB3.jpg|200px|thumb|right|test 4]]
** [http://www.precisebits.com/tutorials/pcb_mech_etch.htm Good tutorial with theoretical background]
+
[[File:pcb_new_bit.jpg|thumb|right|result with new bit]]
** [http://www.digitalplayground.be/ website of Kris Wauters who has a lot PCB milling experience]
+
 
 +
Some interesting links about milling PCB's:
 +
* [http://www.probotix.com/pcb_milling/ Example of milled PCB + milling bit]
 +
* [http://www.drewtronics.net/ other examples of milling bits]
 +
* [http://www.precisebits.com/tutorials/pcb_mech_etch.htm Good tutorial with theoretical background]
 +
* [http://www.digitalplayground.be/ website of Kris Wauters who has a lot PCB milling experience]
  
 
The last days we've discovered some problems when milling PCB's. The accuracy of the CNC router seems to be pretty good, however it seems that our current milling bits are not suitable to perform the job.
 
The last days we've discovered some problems when milling PCB's. The accuracy of the CNC router seems to be pretty good, however it seems that our current milling bits are not suitable to perform the job.
Line 61: Line 67:
 
The other fine milling bit could not deliver smooth tracks due to sharp edges.
 
The other fine milling bit could not deliver smooth tracks due to sharp edges.
  
Another problem is the production of fine dust (and noise). It's certainly not healthy to breath in small copper particles so we really need to make an isolated box asap.
+
Milling PCB's produces fine dust. A wooden box was made to prevent breathing in small copper particles.
  
Thanks to the great insights of Kris Wauters I suggest the following todo's:
+
Jeff bought better milling bits and straight PCB's:  
 +
* 5x [http://www.benl.ebay.be/itm/130382900388 Carbide PCB Engraving Bits CNC Router Tool 15° 0.1mm]
 +
* 5x [http://www.benl.ebay.be/itm/130382900384 Carbide PCB Engraving Bits CNC Router Tool 40° 0.1mm]
 +
* 5x [http://www.benl.ebay.be/itm/140392176375 Carbide PCB Engraving Bits CNC Router Tool 60° 0.2mm]
 +
* 10x [http://www.benl.ebay.be/itm/140709474359 FR4 PCB Copper Clad Laminate 10 x 160 x 100mm 1.6mm 1/1]
  
* Buy/order better milling bits (done - Jeff)
+
* Find a better way to fix the PCB's. The best way seems to be using double sided tape, egally applied to the bottom PCB surface. Then the PCB is attached to the flattened (by milling) MDF surface. The tape will help in straighten the PCB surface by pulling it against the MDF surface.
** 5x [http://www.benl.ebay.be/itm/130382900388 Carbide PCB Engraving Bits CNC Router Tool 15° 0.1mm]
+
** Buy strong double sided tape (not very thick)
** 5x [http://www.benl.ebay.be/itm/130382900384 Carbide PCB Engraving Bits CNC Router Tool 40° 0.1mm]
+
** 5x [http://www.benl.ebay.be/itm/140392176375 Carbide PCB Engraving Bits CNC Router Tool 60° 0.2mm]
+
 
+
* Buy/order new clean (and straight) PCB's (done - Jeff)
+
** 10x [http://www.benl.ebay.be/itm/140709474359 FR4 PCB Copper Clad Laminate 10 x 160 x 100mm 1.6mm 1/1]
+
  
 
* Make a flat bottom surface. Please notice that 'flat' is relative to the CNC machine & milling spindle (Dremel). So the best way to do this is placing the CNC router on a new MDF panel (18mm minimum) and mill about 1mm of the surface away. Then we are sure that the relative height/depth is the same for each possible coordinate. We need the following:
 
* Make a flat bottom surface. Please notice that 'flat' is relative to the CNC machine & milling spindle (Dremel). So the best way to do this is placing the CNC router on a new MDF panel (18mm minimum) and mill about 1mm of the surface away. Then we are sure that the relative height/depth is the same for each possible coordinate. We need the following:
 
** MDF panel (700 x 700 x 18 mm) (or thicker)
 
** MDF panel (700 x 700 x 18 mm) (or thicker)
 
** milling bit for MDF, flat top (10 a 20mm milling diameter)
 
** milling bit for MDF, flat top (10 a 20mm milling diameter)
 
* Find a better way to fix the PCB's. The best way seems to be using double sided tape, egally applied to the bottom PCB surface. Then the PCB is attached to the flattened (by milling) MDF surface. The tape will help in straighten the PCB surface by pulling it against the MDF surface.
 
** Buy strong double sided tape (not very thick)
 
 
* Design wooden box to place over the CNC router. The box should not be attached to CNC router itself, but I guess we can put it loosely on the MDF bottom plate. We can use small wooden beams on the bottom plate to assure that the box and the CNC router are always be placed on the same position.
 
** design box
 
** buy MDF plates
 
** buy wood glue
 
** buy wooden beams (10x10 or 15x15 mm)
 
** use plexiglass as lid? ("deksel")
 
** buy screws?
 
 
* design a panel to prevent dust from milling reach into electronics area
 
** measure and design panel (done - Jeff)
 
** create panel (planned - Jeff)
 
 
* use some kind of cleaning device to remove possible toxic dust
 
 
=progress log=
 
 
==29/02/2012==
 
ivom, tomvdz, sorry-forgot-your-name
 
 
*checked and fixed all wiring
 
*first attempt to draw a square
 
*the beast works!
 
 
==07/03/2012==
 
Tomvdz, Jeffrey,Ivom
 
 
*Installed the Dremel
 
*Calibration night:
 
*The square wasn't a square
 
*tweaking parameters in the machines/minicnc_rep25.xml file
 
*calibration done, error deviation is about .2mm
 
 
==14/03/2012==
 
Jeffrey, tomvdz, ivom
 
 
[[File:CNCmachine.jpg|200px|thumb|left|CNC router]]
 
  
 
*accuracy testing on pcb milling
 
*accuracy testing on pcb milling
Line 124: Line 89:
 
-accuracy: very fine to 1mm distance between lines
 
-accuracy: very fine to 1mm distance between lines
 
-no rough edges
 
-no rough edges
 
[[File:CNC_PCB1.jpg|200px|thumb|left|test 1]]
 
  
  
Line 133: Line 96:
 
-different depths: from 0.2mm to 0.4mm
 
-different depths: from 0.2mm to 0.4mm
 
-accuracy: +- 0.25mm, but edges are too rough and unclean
 
-accuracy: +- 0.25mm, but edges are too rough and unclean
 
[[File:CNC_PCB2.jpg|200px|thumb|left|test 2 & 3]]
 
 
[[File:CNC_PCB3.jpg|200px|thumb|left|test 4]]
 
  
 
* used G-code
 
* used G-code
Line 144: Line 103:
 
;G91 ; relative position, no opto-end stops...
 
;G91 ; relative position, no opto-end stops...
 
G92 X0 Y0 Z0 ;huidig pos = oorsprong
 
G92 X0 Y0 Z0 ;huidig pos = oorsprong
 
 
G00 Z05.000 ;boor omhoog
 
G00 Z05.000 ;boor omhoog
 
G1 X10 Y10 F66 ;begin pos 1ste lijn
 
G1 X10 Y10 F66 ;begin pos 1ste lijn
Line 174: Line 132:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==21/03/2012==
 
* Build a wooden case
 
* Build a seperator to insulate the electronics from dust
 
* measured the maximal range (X;173mm, Y:179mm)
 
* recalibrated the tension on the belt, the axis weren't true relative to one another
 
* tried to fix the third motor controller above the second one using 'draadstangen'
 
 
==24/03/2012==
 
* mounted the third motor controller using draadstangen
 
* tried to engrave tux in scrap wood, which failed miserably
 
* increased the tension on the belt
 
* while doing the former we adjusted the way the tension bolts are attached
 
* increased the voltage on the Y axis motor
 
* second try at engraving tux, gcode is at http://pastebin.com/g6gK413Y#
 
**got loats of errors about a feedrate of zero, this is normal acording to https://groups.google.com/group/ultimaker/browse_thread/thread/6892f2b14d11b361 becaus of no feedback mechanism
 
**We didn't have enough time to let it mill the whole image, but we still saw that the result was quite accurate, exept for some strange errors. These were error always faded in or out, indicating variance on the Z axis. We suspect that the mill doesn't wait for the drill bit to reach traveling height before moving to another X,Y coordinate.
 
**This is probably caused by errors in the gcode outputted by cad.py (version 16/5/11 kurt)
 
** The error seems to be a missing G01 statement when raising to travel height:
 
<syntaxhighlight lang=g-code>
 
G01 X47.4486 Y61.9125 Z-0.3000
 
Z1.0000
 
G00 X51.6819 Y72.4958 Z1.0000
 
G01 Z-0.3000
 
G01 X52.3875 Y72.4958 Z-0.3000
 
</syntaxhighlight>
 
 
==28/09/2012==
 
* Third attempt at engraving tux in scrap wood, gcode at http://pastebin.com/ee8g8e0T
 
* Gcode was produced by cad.py (16/05/11, kurt) and corrected by the sed line `sed 's/^ Z/G01 Z/'`
 
* Engraving details: used a 1mm diameter round milling bit; dremel set a speed 4; depth 0.7mm; distance between paths 0.5 times the tool width
 
* both the gcode and the machine worked fine, leading to satisfying results, however some lesser issues were apparent
 
** the engraving depth was deeper at one side than at the other, which means the base plate is not parralel to the X,Y plane. There seems to be some glue residue on the base plate which we should sand off, and test afterwards if both planes are parralel
 
** paths need to be closer together than 0.5 times the tool width to get an even engraved surface when using a round milling bit to get an even engraved surface (striping was visible
 
* photographs of the last 3 attempts were taken, and should be uploaded soon
 
 
[[File:CNCtux1.jpg|thumb]]
 
[[File:CNCtux2.jpg|thumb]]
 
[[File:CNCtux3.jpg|thumb]]
 
 
==04/04/2012==
 
* started a test run of the VW logo in foam. As the goal is to engrave it 300 mm wide the design was sliced in two. the left part was converted to gcode using cad.py and corrected with sed. We used a 1mm engraving bit. The left part took 94 minutes to engrave (and counting)
 
* we will need real endmills to do any serious work
 
* cad.py doesn't optimize the order in which the paths are engraved, which makes the engraving time a lot longer than it needs to be
 
* I looked into pycam, a tool which looks promissing for milling out 3d objects and 2d engravings: http://sourceforge.net/apps/mediawiki/pycam/index.php?title=Main_Page
 
* Found a nice guide made by a guy who makes robotics components in his garage. He mills out the parts, makes a silicone mold and then casts the parts in PU. Buildlog: http://www.flickr.com/photos/candy-bottoms/sets/72157625850569320/detail/ Guide: http://lcamtuf.coredump.cx/guerrilla_cnc1.shtml and http://lcamtuf.coredump.cx/guerrilla_cnc2.shtml
 
==11/04/2012==
 
Jeffrey, Ivo
 
 
* Finally I got my special CNC PCB milling bits from a Chinese Ebay vendor:
 
** 5 x 15° 0.1mm
 
** 5 x 40° 0.1mm
 
** 5 x 60° 0.2mm
 
* I also bought some new PCB's (these are really flat)
 
 
* I fixed the PCB on a MDF bottom plate with double sided tape
 
* I fixed the PCB on a MDF bottom plate with double sided tape
 
* I place the 60° 0.2mm bit in the Dremel
 
* I place the 60° 0.2mm bit in the Dremel
Line 234: Line 139:
 
** With the 15° 0.1mm bit we should be able to increase the depth easily
 
** With the 15° 0.1mm bit we should be able to increase the depth easily
 
* Edges are very smooth (best so far)
 
* Edges are very smooth (best so far)
* I noticed something interesting:
 
** The starting point (used for height/depth calibration) is not milled like I supposed
 
** Instead of a small dot / hole, a tiny circle was milled (see picture)
 
** This declares why the milled tracks are quite thick (relative to 0.2mm bit)
 
** This is probably due to runout ("speling") in the Dremel spindle
 
** Probably the accuracy can be increased with a better spindle (with ball bearing) like the KRESS 800 FME
 
[[File:dremel_runout_pcb.jpg|thumb|dremel runout]]
 
[[File:pcb_new_bit.jpg|thumb|result with new bit]]
 
  
==19/052012==
+
== Extrusion moulding ==  
TomVerlinden, Ivom
+
A nice guide made by a guy who makes robotics components in his garage. He mills out the parts, makes a silicone mold and then casts the parts in PU. Buildlog: [http://www.flickr.com/photos/candy-bottoms/sets/72157625850569320/detail/ buildlog], [http://lcamtuf.coredump.cx/guerrilla_cnc1.shtml part 1] and  [http://lcamtuf.coredump.cx/guerrilla_cnc2.shtml part 2] of the guide.
  
* Rust!!!! Bot seems defunct, greasing the rods on next installment.
+
==ToDo==
 +
* replace the plastic guiding bearings with some better metal bearings. One of the plastic ones has the tendency to stay behind
 +
* make .g (the extension for gcode) an accepted extension on the wiki so we can upload it here.
 +
* Create an emergency stop button. While there is a stop button in replicatorG, this doesn't immediately stop the CNC, which will first execute some cached instructions.
 +
* while the endmill is less than 1mm, it's path seems to be about 2mm to the naked eye. This greatly decreases our accuracy.
 +
* Try alternative versions of cadpy that don't require manual editing.
  
==23/05/2012==
+
==Possible future projects==
TomVerlinden, Ivom
+
* cutting PCB circuit boards (resolution limits between two layers of 0.2 mm and 0.8 mm)
 +
* prototyping custom boxes for the Nanode and Arduino kits people own
 +
* cutting out mechanical parts for robottics.
 +
* for furniture restoration: 3D scanning woodcarvings and recreate missing pieces.
 +
* making models, molds, spare parts wich could be hard and/or expensive to come by.
  
* Lubrication of the rods has fixed the bot, theoretically the rods could be replaced with BZR or INOX rods.
 
* Ran the 100x100mm square. There is a serious horizontal tilt on the flat surface. Fixing it on the next installment
 
  
==28/05/2012==
+
==Drilling holes in PCB (before etching)==
Ivom
+
[[File:PCB-drill-test1.jpg|200px|thumb|right|Drill 1]]
 +
[[File:PCB-drill-test1-2.jpg|200px|thumb|right|Drill 1-pic2]]
 +
* We did a quick test with a 1mm drill in MDF
 +
** It looks great
 +
<syntaxhighlight lang=g-code>
 +
(calibrate the Z axis to right above the pcb)
 +
G21 (units in mm)
 +
G90 (absolute position)
 +
G01 x0 Y0 Z5 (drill up to 5mm for safety while moving due to uneven surface)
 +
G01 x0 Y2.54 (move to the first coordinate)
 +
G01 Z-4 F100 (start drilling to -4mm)
 +
G00 Z5 (drill up to 5mm again)
 +
G01 x0 Y5.08
 +
G01 Z-4 F100
 +
G00 Z5
 +
G01 x0 Y7.62
 +
G01 Z-4 F100
 +
G00 Z5
 +
G01 x0 Y10.16
 +
G01 Z-4 F1
 +
G00 Z5
 +
G01 x0 Y12.7
 +
G01 Z-4 F100
 +
G00 Z5
 +
G01 x0 Y15.24
 +
G01 Z-4 F100
 +
G00 Z5
  
Een vierkant test: Test op horizontaal correct geschaald en of er nog wat mankeert aan de horizontale vlakheid....
+
</syntaxhighlight>
 
+
G21 ; millimeters of course!
+
G90 ; absolute position, no opto-end stops...
+
;G91 ; relative position, no opto-end stops...
+
G92 X0 Y0 Z0
+
+
G00 Z03.000
+
G1 X10 Y10 F50
+
G1 Z-0.7 F50
+
G1 X160 Y10 F50
+
G1 X160 Y160 F50
+
G1 X10 Y160 F50
+
G1 X10 Y10 F50
+
;tweede vierkant
+
G1 X110 Y10 F50
+
G1 X110 Y110 F50
+
G1 X10 Y110  F50
+
G1 X10 Y10 F50
+
+
G1 Z+1.0 F50
+
G1 X0 Y0 Z+1.0 F50
+
 
+
==27/06/2012==
+
 
+
*The logo of our space is made with openscad. (wip). In the future mill this in plexi.
+
*Link: https://docs.google.com/open?id=0B8ibs1SKi9S8YTRCbkpnc1kzSzg
+
 
+
==05/08/2012==
+
*CNC has no working hardware anymore.
+
*The idea of getting a working enviroment on a laptop is too far fetched.
+
*I've taken the cnc @ home, so i have more time to spend to get it working again.
+
*As soon there's a working setup, an image needs to be taken and exported to hardware in our space.
+
*I've installed a fresh version of 12.04 along with all it's updates.
+
*To be continued...
+
--[[User:Tom|Tom]] 13:50, 5 August 2012 (CEST)
+
 
+
==06/08/2012==
+
*The first attempt to get the cnc connected has succeeded.
+
*This is done with replicatorG version 25 and the xml provided by Kefcom and Hexman. (have to look at the two files and check for differences. If there are any)
+
*Further testing upon connection issues will go on through the day.
+
*If this is succesful, next up is uploading G-code and see if it works.
+
*Second attempt on connecting the cnc to replicatorG was unsuccesful
+
*Dmesg excerpt
+
 
+
**[ 1622.792039] usb 5-1: new low-speed USB device number 2 using uhci_hcd
+
**[ 1622.916033] usb 5-1: device descriptor read/64, error -71
+
**[ 1623.256038] usb 5-1: new low-speed USB device number 3 using uhci_hcd
+
**[ 1623.380032] usb 5-1: device descriptor read/64, error -71
+
**[ 1623.604031] usb 5-1: device descriptor read/64, error -71
+
**[ 1623.820035] usb 5-1: new low-speed USB device number 4 using uhci_hcd
+
**[ 1624.236029] usb 5-1: device not accepting address 4, error -71
+
**[ 1624.348034] usb 5-1: new low-speed USB device number 5 using uhci_hcd
+
**[ 1624.760045] usb 5-1: device not accepting address 5, error -71
+
**[ 1624.760060] hub 5-0:1.0: unable to enumerate USB device on port 1
+
 
+
*Contrary to the first succesfull attempt, /dev/ttyUSB0 was not created on the second attempt.
+
*This might lead to the conclusion that there's a faulty ftdi cable. (the cable is heating up rapidly)
+
*To be continued...
+
--[[User:Tom|Tom]] 16:28, 6 August 2012 (CEST)
+
 
+
==11/08/2012==
+
 
+
* [[YvanJ]] made a new Void logo CNC design [http://dl.dropbox.com/u/15854305/VoidCNC/voidcnc.ngc Download].
+
* [[YvanJ]] will bring it's FTDI cable.
+
 
+
==16/08==
+
 
+
*After a lengthy vacation, managed to achieve 2 ftdi cables. (thx to Yvan too)
+
*To Do: keep an eye on the temperature of the ftdi chip.
+
*      Check if the cnc is recognized (again).
+
*      Start with simple milling operations.
+
*      Take an image of the working set-up.
+
*      Export hard/software back to our space
+

Latest revision as of 01:00, 21 December 2013


CNC Router
What:
building and operating a CNC router
Router.jpg
Participants:
Jeffrey, Jobj, tomvdz, Tom, berz, warddr
Category:
Infrastructure
Locations:
Den Bunker

The goal of this project is to build a CNC router that can mill regular PCBs with non-SMD IC components, MDF, stryrofoam HDPE and nylon. The budget is around 1000 euro. We ended up going for the MiniCnc, made at TimeLab Gent

Contents

the CNC router

dremel runout

The minimal distance between tracks when milling PCBs is about 0.2 mm, according to the people at timelab Ghent. The maximal range is (X:173mm, Y:179mm).

At the moment the base plate is not parralel to the X,Y plane. There seems to be some glue residue on the base plate which we should sand off.

At the moment the accuracy is limited by the dremel, and the runout on its spindle. This can be seen when milling a point with a small diameter endmill, instead of a small hole, a tiny circle will be milled. Probably the accuracy can be increased with a better spindle (with ball bearing) like the KRESS 800 FME

We added a LED to the carriage to illuminate the milling area.

Software

The CNC router controlled by sending it gcode. The sending of the gcode is done with replicatorG. Multiple programs can be used to generate gcode.

ReplicatorG

ReplicatorG will report about a feedrate of zero, this is normal acording to https://groups.google.com/group/ultimaker/browse_thread/thread/6892f2b14d11b361 and is caused by our CNC lacking a feedback mechanism. We are using replicatorG version 25. if starting replicatorG normally it will not be able to control /dev/ttyUSB0 to talk to our CNC. So you either have to start replicatorG as root or run

sudo chmod 777 /dev/ttyUSB*

Cad.py

Cadpy can transform bitmaps to gcode. Beware that multiple versions of this tool exist, not all of which do work with our machine.

Software we haven't checked out yet

Engraving

CNCtux3.jpg

To engrave a flat surface:

Milling PCBs

test 1
test 2 & 3
test 4
result with new bit

Some interesting links about milling PCB's:

The last days we've discovered some problems when milling PCB's. The accuracy of the CNC router seems to be pretty good, however it seems that our current milling bits are not suitable to perform the job. The ball point milling bit gives smooth tracks without sharp edges, but the milling width is heavily influenced when the PCB surface isn't flat. The other fine milling bit could not deliver smooth tracks due to sharp edges.

Milling PCB's produces fine dust. A wooden box was made to prevent breathing in small copper particles.

Jeff bought better milling bits and straight PCB's:

-spheric milling bit, 1mm -speed F66 -depth -0.1mm (0.2mm will be fine too) -accuracy: very fine to 1mm distance between lines -no rough edges


-pointed drilling bit -speed F66 & F30 -different depths: from 0.2mm to 0.4mm -accuracy: +- 0.25mm, but edges are too rough and unclean

G21 ; millimeters of course!
G90 ; absolute position, no opto-end stops...
;G91 ; relative position, no opto-end stops...
G92 X0 Y0 Z0 ;huidig pos = oorsprong
G00 Z05.000 ;boor omhoog
G1 X10 Y10 F66 ;begin pos 1ste lijn
G1 Z-0.4 F66 ;boor omlaag
G1 X30 Y10 F30
G1 X30 Y20 F30
G1 X10 Y20 F30
G1 X10 Y27 F30
G1 X30 Y27 F30
G1 X30 Y32 F30
G1 X10 Y32 F30
G1 X10 Y34.54 F30
G1 X30 Y34.54 F30
G1 X30 Y37.08 F30
G1 X10 Y37.08 F30
G1 X10 Y38 F30
G1 X30 Y38 F30
G1 X30 Y38.75 F30
G1 X10 Y38.75 F30
G1 X10 Y39.25 F30
G1 X30 Y39.25 F30
G1 X30 Y39.5 F30
G1 X10 Y39.5 F30
 
;G1 X10 Y110 Z-1.0 F66
 
G1 Z+5.0 F66
G1 X0 Y0 Z+5.0 F66

Extrusion moulding

A nice guide made by a guy who makes robotics components in his garage. He mills out the parts, makes a silicone mold and then casts the parts in PU. Buildlog: buildlog, part 1 and part 2 of the guide.

ToDo

Possible future projects


Drilling holes in PCB (before etching)

Drill 1
Drill 1-pic2
(calibrate the Z axis to right above the pcb)
G21 (units in mm)
G90 (absolute position)
G01 x0 Y0 Z5 (drill up to 5mm for safety while moving due to uneven surface)
G01 x0 Y2.54 (move to the first coordinate)
G01 Z-4 F100 (start drilling to -4mm)
G00 Z5 (drill up to 5mm again)
G01 x0 Y5.08
G01 Z-4 F100
G00 Z5
G01 x0 Y7.62
G01 Z-4 F100
G00 Z5
G01 x0 Y10.16
G01 Z-4 F1
G00 Z5
G01 x0 Y12.7
G01 Z-4 F100
G00 Z5
G01 x0 Y15.24
G01 Z-4 F100
G00 Z5
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Content Creation
Belgian Spaces