CNCCMV2: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
(link to related articles)
 
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Action Plan=
=Intro=


*Conceptual Design
[[CNCCMV2/Overview | CNC Circuit Mill V2 (CNCCMV2): Overview]]


*Specific Design
=Design=


*Sourcing
[[CNC Circuit Mill/V2 Design Rationale | Design Rationale]]


*Manufacturing
[[CNCCMV2/CAD | Part Files]]


*Testing
=Build Instructions=


*Documentation During All of the Above
[[CNCCMV2/Build_Rationale | Build Rationale]]


=Design Rationale=
[[CNCCMV2/Sourcing | Sourcing]]


[http://opensourceecology.org/wiki/CNC_Circuit_Mill/V2_Design_Rationale Thought Process]
[[CNCCMV2/Structure | Structure]]


=CAD Assembly: CNCube (In Progress)=
[[CNCCMV2/Electronics | Electronics]]


[[Image: cncubep2.jpg|500px]]
[[CNCCMV2/Software | Software]]


[[File: cncubep2.stp]]
=Modularity and Scaling=


=CAD Assembly: XY Frame=
[[CNCCMV2/Modularity | Modularity]]


[[Image: XYFrame.jpg|500px]]
[[CNCCMV2/Scaling | Scaling]]


=CAD Assembly: Platform=
=Operation and Maintenance=


[[Image: Platform.jpg|500px]]
[[CNCCMV2/Usage | Operation]]


=CAD Assembly: Z Frame=
[[CNCCMV2/Maintenance | Maintenance]]


[[Image: ZFrame.jpg|500px]]
See also:
 
* [[CNC Circuit Mill]]
=Connexions Modules=
* [[CNCCM]]
 
* [[User:Lennywayne | CNC router]]
[http://cnx.org/content/m43337/latest/ What is a CNC Circuit Mill?]
 
[http://cnx.org/content/m43342/latest/ How to Use the CNC Circuit Mill]
 
[http://cnx.org/content/m43353/latest/ How to Design a CNC Circuit Mill]
 
[http://cnx.org/content/m43355/latest/ Getting Git on Linux]
 
[http://cnx.org/content/m43354/latest/ Getting Ruby on Linux]
 
[http://cnx.org/content/m43356/latest/ Getting Arduino IDE]
 
[http://cnx.org/content/m43365/latest/ Making the Arduino IDE Work on Linux]
 
[http://cnx.org/content/m43393/latest/ Getting and Using Kicad]
 
[http://cnx.org/content/m43397/latest/ Getting pcb2gcode]
 
=Key Performance Specifications=
 
*X Axis Travel Range = 20cm
 
*Y Axis Travel Range = 20cm
 
*Z Axis Travel Range = 5cm
 
*Step Motor Torque at 12VDC = 3.2kg-cm
 
*Spindle Max Rotation Speed = 22600rpm no-load
 
*Spindle Motor Torque at 24VDC = 88.5g-cm at max efficiency
 
*Workpiece Holding Mechanism = Linear Bolt and Tensioning Nut
 
*For Prototype II, define goals based on study of industry standards. Include desired precision + accuracy + speed.
**Minimum step size for each axis plus variance
**Repeatability of motion (drift) (determined by going to certain locations a large number of times)
**Minimum spacing between traces (determined by minimum allowable size of bit + precision)
**Minimum trace size possible
**Goal: repeatability is as good as step size - ie, all inaccuracy is negligible compared to step size, and zero backlash at all practical milling speeds.
**Define practical milling speed range based on substrate
 
=Key Design Specifications=
 
*Step Motor Axis Drive
 
*Rotary-to-Linear Motion Converting Stainless Steel Leadscrew and Wear-compensating Leadscrew Nut
 
*Anti-friction Bronze Sleeve Bearings
 
*Precision Stainless Steel Axis-Supporting Shafts
 
*Versatile Holding Platform with Magnets
 
*Brushed DC Motor Spindle Drive
 
*Precision Stainless Steel Spindle Shaft
 
*Computer to Microcontroller to Stepper Driver Electronics Pathway
 
*Gcode Streamer to Gcode Interpreter Software Pathway
 
=Cost=
 
*Cost values in USD. In practice, some items must be purchased in greater quantity than necessary; the following values are equalized to the correct quantities. List excludes tools and shipping.
 
*Cube Frame Metal =
 
*Axes Structure Metal =
 
*Metal Shafts = 124
 
*Leadscrews and Leadscrew Nuts = 240
 
*Bearings = 65
 
*Fasteners = 70
 
*Control and Drive Electronics = 130
 
*Power Supply = 35
 
*Software = Open Source
 
*'''Total = '''
 
=Sourcing=
 
*Spreadsheet File
 
LINK HERE
 
*Prototyping Spreadsheet
 
<html><iframe width='1200' height='300' frameborder='0' src='
 
https://docs.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0AlpsBarfpPkzdFk5aDY3dHM0eEhfZHNkWVppdV9EelE&output=html
 
'></iframe>
</html><br/>
 
*To edit or download the spreadsheet, click on the following link.
 
https://docs.google.com/spreadsheet/ccc?key=0AlpsBarfpPkzdFk5aDY3dHM0eEhfZHNkWVppdV9EelE
 
=Structure: XY Frame Angle=
 
[[Image: XYFrameAngle.jpg]]
 
[[File: XYFrameAngle.stp]]
 
=Structure: X Frame Mount Angle=
 
[[Image: XFrameMountAngle.jpg]]
 
[[File: XFrameMountAngle.stp]]
 
=Structure: XY Frame Mount Angle=
 
[[Image: XYFrameMountAngle.jpg]]
 
[[File: XYFrameMountAngle.stp]]
 
=Structure: Y Frame Mount Angle=
 
[[Image: YFrameMountAngle1.jpg]]
 
[[File: YFrameMountAngle1.stp]]
 
=Structure: Sleeve Bearing=
 
[[Image: SleeveBearingFab.jpg]]
 
[[File: SleeveBearingSTEP.stp]]
 
=Structure: YZ Plate=
 
[[Image: YZPlate.jpg]]
 
[[File: YZPlate.stp]]
 
=Structure: Move Angle=
 
[[Image: MoveAngle.jpg]]
 
[[File: MoveAngle.stp]]
 
=Structure: Move Nut Angle=
 
[[Image: MoveNutAngle.jpg]]
 
[[File: MoveNutAngle.stp]]
 
=Structure: Mount Angle=
 
[[Image: MountAngle.jpg]]
 
[[FIle: MountAngle.stp]]
 
=Structure: Mount Stepper Angle=
 
[[Image: MountStepperAngle.jpg]]
 
[[File: MountStepperAngle.stp]]
 
=Structure: Shaft Collar=
 
[[Image: ShaftCollar.jpg]]
 
[[File: ShaftCollar.stp]]
 
=Electronics=
 
=Soldering Stepper Driver Pins=
 
*Insert the short end of the male headers into the stepper driver board from the bottom, then pressfit the headers into the small breadboard for holding.
 
*Apply flux to all header connections
 
*Apply solder to the tip of the soldering iron
 
*Solder header connections at opposite corners of the stepper driver board for stability, reapplying solder to and cleaning the soldering iron tip as necessary; repeat for the remaining header connections.
 
=Soldering Connectors=
 
=Wiring=
 
[[Image: Electronics.jpg]]
 
=Software=
 
=Ubuntu 10.04 LTS 32-Bit=
 
[http://opensourceecology.org/wiki/Git Get Git]
 
[http://opensourceecology.org/wiki/ArduinoIDE Get Arduino IDE]
 
[http://opensourceecology.org/wiki/Ruby Get Ruby]
 
[http://opensourceecology.org/wiki/GRBL Get GRBL]
 
[http://opensourceecology.org/wiki/Gctrl Get Gctrl]
 
[http://opensourceecology.org/wiki/Processing Get Processing]
 
=Moving RXTX files=
 
*Navigate to the Arduino IDE folder>lib.
 
*Copy RXTXcomm.jar
 
[[Image: arduinorxtx.png]]
 
*Navigate to the Processing folder>modes>java>libraries>serial>library
 
*Paste RXTXcomm.jar, replacing the existing version
 
[[Image: processinglibrary.png]]
 
*Navigate to the Arduino IDE folder>lib
 
*Copy librxtxSerial.so
 
[[Image: arduinolibrxtx.png]]
 
*Navigate to the Processing folder>modes>java>libraries>serial>library>Linux32
 
*Paste librxtxSerial.so, replacing the existing version
 
[[Image: processinglibrxtx.png]]
 
=Modifying Gctrl=
 
*Open the Gctrl folder
 
[[Image: gctrlfolder.png]]
 
*Open gctrl.pde in gedit
 
*Change a part of the code as annotated in the following:
 
Serial port = null; //change starts
 
String portname = "/dev/ttyACM0"; // Linux, Arduino Uno
 
//change ends
 
boolean streaming = false;
 
[[Image: gctrlnewcode.png]]
 
=Modifying GRBL Files=
 
*Navigate to the GRBL folder
 
[[Image: grblfolder.png]]
 
*Open "Makefile" in gedit
 
*Edit the PROGRAMMER line as:
 
PROGRAMMER = -c stk500v1 -P /dev/ttyACM0 -b 115200
 
[[Image: grblmakefileedit.png]]
 
=Flashing GRBL=
 
*Open Terminal and navigate to the GRBL folder (ex. by using the "ls" and "cd" commands)
 
[[Image: terminalgrbl.png]]
 
*In Terminal, type:
 
make clean
 
[[Image: grblmakeclean.png]]
 
*In Terminal, type:
 
make
 
[[Image:grblmake.png]]
 
*Connect the Arduino Uno to the computer via USB cable
 
*In Terminal, type:
 
make flash
 
*Disconnect the Arduino Uno
 
=Running Gctrl=
 
*Navigate to the Processing folder
 
[[Image: ProcessingFolder.png]]
 
*Open and run Processing, setting the sketchbook folder as the folder in which the gctrl folder exists
 
[[Image: RunProcessing.png]]
 
*In Processing, open gctrl using File>Sketchbook>
 
[[Image: OpenGctrl.png]]
 
*Connect the Arduino Uno to the computer via USB cable
 
*In Processing, run gctrl using Sketch>Run
 
[[Image: RunGctrl.png]]
 
*Now the Gctrl GUI window should pop up
 
[[Image: GctrlGUI.png]]
 
*Note: For certain functions of gctrl, press and hold down the key for the popup windows to populate.
 
=Determining GRBL Configuration Changes Required=
 
*Go to the following webpage:
 
http://dank.bengler.no/-/page/show/5474_configuringgrbl?ref=mst
 
=Modifying GRBL Settings=
 
*Navigate to the Arduino IDE folder
 
[[Image: ArduinoFolder.png]]
 
*Double-click "Arduino" then click "run" in the popup window
 
[[Image: RunArduino.png]]
 
*Note: you may want to create a quick launcher for the Arduino IDE
 
*Connect the Arduino Uno to the computer via USB cable
 
*In Arduino IDE, open Tools>Serial Monitor
 
*Note: the Serial Monitor window should pop up and you should see the following:
 
Grbl 0.6b
 
'$' to dump current settings
 
*In the Serial Monitor, change the left drop-down setting to the following:
 
Both NL & CR
 
*In the Serial Monitor, type the following in the command line:
 
$
 
*Note: you should now see the following:
 
$0 = 157.480 (steps/mm x)
 
$1 = 157.480 (steps/mm y)
 
$2 = 157.480 (steps/mm z)
 
$3 = 10 (microseconds step pulse)
 
$4 = 500.0 (mm/min default feed rate)
 
$5 = 600.0 (mm/min default seek rate)
 
$6 = 0.100 (mm/arc segment)
 
$7 = 0 (step port invert mask. binary = 0)
 
$8 = 25.0 (acceleration in mm/sec^2)
 
$9 = 225.0 (max instant cornering speed change in delta mm/min)
 
'$x=value' to set parameter or just '$' to dump current settings
 
 
*In the Serial Monitor, type commands as necessary in the following format, where "X" and "Y" are numbers:
 
$X = Y
 
=Design Modifications=
 
=Modularity=
 
*Different step motors and drive mechanisms can be mounted onto the axis support angles via mounting holes
 
*Different frames can be used, provided they have precise mounting holes for the axis support angles
 
*Different holding platforms can be used, provided they have mounting holes for the X axis moving angles
 
*Different spindle setups can be used, provided they have mounting holes for the Z axis moving angles
 
*Different stepper driver boards and power supplies can be used, provided they have compatible performance specifications within the electronics system
 
=Scaling=
 
*Scaling mainly consists of changing the size of the frame (to affect travel ranges) and the type of step motors (to affect travel rates)
 
*Other discrete components such as fasteners, leadscrews, and shafts need only be scaled if necessary for functionality or certain desired performance specifications
 
*The travel range calculation for the X axis:
 
(X Travel Range) = (Distance Between 2 Parallel Frame Angles Along Horizontal Plane) - (Length of Platform Along Axis)
 
*The travel range calculation for the Y axis:
 
(Y Travel Range) = (Distance Between 2 Parallel Frame Angles Along Vertical Plane) - (Length of Z Support Angles Along Axis)
 
=Usage=
 
*Circuit Schematic to Gcode File Toolchain
 
*See following link for list of electronic design suites:
 
http://en.wikipedia.org/wiki/Comparison_of_EDA_software
 
*PCB-Gcode Optimizer
 
http://cnc.goodbits.net/wiki/index.php5/Pcb-gcode_optimizer
 
http://www.millpcbs.com/index.php?option=com_content&view=article&id=10&Itemid=44
 
=Maintenance=
 
=Distributive Enterprise=
 
=GVCS Product Ecology=
 
[[Image:2b-Genfabecology.png|thumb|600px|CNC Circuit Mill [[Product Ecology]]]]
 
'''Uses'''
 
*Induction Furnace - Steel
 
*Aluminum Extractor - Aluminum
 
*Metal Roller - Fasteners, Metal Angles, and Flats
 
*Rod and Wire Mill - Wires, Shafts
 
*CNC Multimachine - Bearings, Leadscrews, Leadscrew Nuts
 
*Motors - XYZ Movement
 
*CNC Circuit Mill - Control Circuit Boards
 
*Universal Power Supply - Power
 
'''Creates'''
 
*Milled Circuit Boards
 
See [[Product Ecologies]] for more information.

Latest revision as of 02:04, 26 October 2012