CNCCMV2: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
(link to related articles)
 
(120 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=CAD of Mobile Bed Design (In Progress)=
=Intro=


[[Image: cncubep2.jpg]]
[[CNCCMV2/Overview | CNC Circuit Mill V2 (CNCCMV2): Overview]]


[[File: cncubep2.stp]]
=Design=


=CAD of Mobile Gantry Design (In Progress)=
[[CNC Circuit Mill/V2 Design Rationale | Design Rationale]]


[[Image: cncgantry.jpg]]
[[CNCCMV2/CAD | Part Files]]


=Connexions Modules=
=Build Instructions=


[http://cnx.org/content/m43337/latest/ What is a CNC Circuit Mill?]
[[CNCCMV2/Build_Rationale | Build Rationale]]


[http://cnx.org/content/m43342/latest/ How to Use the CNC Circuit Mill]
[[CNCCMV2/Sourcing | Sourcing]]


[http://cnx.org/content/m43353/latest/ How to Design a CNC Circuit Mill]
[[CNCCMV2/Structure | Structure]]


[http://cnx.org/content/m43355/latest/ Getting Git on Linux]
[[CNCCMV2/Electronics | Electronics]]


[http://cnx.org/content/m43354/latest/ Getting Ruby on Linux]
[[CNCCMV2/Software | Software]]


[http://cnx.org/content/m43356/latest/ Getting Arduino IDE]
=Modularity and Scaling=


[http://cnx.org/content/m43365/latest/ Making the Arduino IDE Work on Linux]
[[CNCCMV2/Modularity | Modularity]]


[http://cnx.org/content/m43393/latest/ Getting and Using Kicad]
[[CNCCMV2/Scaling | Scaling]]


[http://cnx.org/content/m43397/latest/ Getting pcb2gcode]
=Operation and Maintenance=


=Key Performance Specifications=
[[CNCCMV2/Usage | Operation]]


*X Axis Travel Range = 20cm
[[CNCCMV2/Maintenance | Maintenance]]


*Y Axis Travel Range = 20cm
See also:
 
* [[CNC Circuit Mill]]
*Z Axis Travel Range = 5cm
* [[CNCCM]]
 
* [[User:Lennywayne | CNC router]]
*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 = '''
 
=X-Axis Frame Design Rationale=
 
*Start by assuming that the x-axis frame needs to support a pair of precision shafts and allow mounting of the working platform and stepper motor with leadscrew.
 
*The working platform has to be some sort of flat sheet or plate.
 
*Some sort of rectangular support structure seems a good start, with a total part count of 5.
 
*Here is an visual example using 1 plate and 4 rectangular bars:
 
[[Image:RectBar.jpg|500px]]
 
*This is rigid, but bulky and does not easily allow the gantry to be mounted. We notice that a lot of material is still being used despite the low part count. Keep in mind that part count and material volume, future design implications, and ease-of-manufacturing must all be considered separate, though interrelated factors in effective design.
 
*If we use only 2 rectangular bars (for supporting the precision shafts), then we can save on material volume by using 2 angles as structural supports.
 
*Here is an visual example using 1 plate, 2 rectangular bars, and 2 angles:
 
[[Image:2Angle.jpg|500px]]
 
*This is relatively volume-efficient, with plenty of open space at the side for gantry mounting. The major concern with this design is that the resistance to force vectors is heavily dependent on the angle supports, which significantly lose mechanical advantage as the rectangular bars get taller. Low-profile setups will be best for this design.
 
*Here is another take on the 1 plate, 2 rectangular bar, 2 angle setup. What if the angles were to mount the precision shafts instead of the rectangular bars?
 
[[Image:2MainAngle.jpg|500px]]
 
*The major concern with this design is that the setup is relatively vulnerable against force vectors along the horizontal plane (only the plate is well-mounted for resisting those vectors). Again, low-profile setups will be best.
 
=Spindle Design Rationale=
 
=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
 
=Build Process=
 
=+1=
 
=Structure=
 
*400mm x 1.5" x 1.5" x 0.125" Steel Angle (14)
 
*140mm x 1.5" x 1.5" x 0.125 Aluminum Angle (12)
 
*35mm x 1.5" x 1.5" x 0.125 Aluminum Angle (3)
 
*Single Point Template
 
[[Image: SinglePointTemplate.jpg]]
 
*Double Point Template
 
[[Image: DoublePointTemplate.jpg]]
 
*Frame Template
 
[[Image: FrameTemplate.jpg]]
 
*Axis Template
 
[[Image: AxisTemplate.jpg]]
 
*Mount Template
 
[[Image: MountTemplate.jpg]]
 
=Electronics=
 
=+1=
 
=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]]
 
=-1=
 
=Software=
 
=+1=
 
=Ubuntu 10.04 LTS 32-Bit=
 
=+1=
 
=Getting Git=
 
*Open Terminal and type:
 
sudo apt-get install git-core
 
[[Image: gitcore.png]]
 
=Getting Arduino Integrated Development Environment=
 
*Go to this webpage:
 
http://arduino.cc/hu/Main/Software
 
*Download the Linux 32-bit version of Arduino IDE to a directory of your choosing
 
[[Image: arduino32bit.png|800px]]
 
[[Image: openarduino.png|500px]]
 
[[Image: extractarduino.png|500px]]
 
=Compatibilizing Arduino IDE=
 
*The following steps are a summary of the information in this webpage:
 
http://www.pluggy.me.uk/arduino-ubuntu/
 
*Open System>Administration>Synaptic Package Manager, then type your password
 
*In Synaptic Package Manager, search for jre, then mark for installation the item with the following name:
 
Openjdk-6-jre
 
*Note: marking these items will bring up other packages also to be marked. Click "mark" during these times.
 
*In Synaptic Package Manager, search for gcc-avr, then mark for installation the item with the following name:
 
gcc-avr
 
*In Synaptic Package Manager, search for avr-libc, then mark for installation the item with the following name:
 
avr-libc
 
*In Synaptic Package Manager, click "Apply"
 
*Restart your computer
 
=Getting RUBY Programming Language=
 
*Open Terminal and type:
 
sudo apt-get install ruby1.9.1
 
[[Image: ruby.png]]
 
*Restart the computer for the changes to take place
 
=Getting GRBL Files=
 
*Open Terminal and type:
 
git clone https://github.com/damellis/grbl.git grbl
 
[[Image: grbl.png]]
 
=Getting Gctrl=
 
*Open Terminal and type:
 
git clone https://github.com/damellis/gctrl.git gctrl
 
[[Image: gctrl.png]]
 
=Getting Processing=
 
*Go to this webpage:
 
http://processing.org/download/
 
*Download the latest version of Processing to a directory of your choosing
 
[[Image: downloadprocessing.png|800px]]
 
=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
 
=-3=
 
=Design Modifications=
 
=+1=
 
=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)
 
=-1=
 
=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=
 
=+1=
 
=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.
 
=-1=

Latest revision as of 02:04, 26 October 2012