CNCCMV2: Difference between revisions
Line 90: | Line 90: | ||
=Build Process= | =Build Process= | ||
=+1= | |||
=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= | |||
=-1= | |||
=Software= | |||
=+1= | |||
=Ubuntu 10.04 LTS 32-Bit= | |||
=+1= | |||
=Getting Git= | |||
*Open Terminal and type: | |||
sudo apt-get install git-core | |||
=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 | |||
=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 | |||
*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 | |||
=Getting Gctrl= | |||
*Open Terminal and type: | |||
git clone https://github.com/damellis/gctrl.git gctrl | |||
=Getting Processing= | |||
*Go to this webpage: | |||
http://processing.org/download/ | |||
*Download the latest version of Processing to a directory of your choosing | |||
=Moving RXTX files= | |||
*Navigate to the Arduino IDE folder>lib. | |||
*Copy RXTXcomm.jar | |||
*Navigate to the Processing folder>modes>java>libraries>serial>library | |||
*Paste RXTXcomm.jar, replacing the existing version | |||
*Navigate to the Arduino IDE folder>lib | |||
*Copy librxtxSerial.so | |||
*Navigate to the Processing folder>modes>java>libraries>serial>library>Linux32 | |||
*Paste librxtxSerial.so, replacing the existing version | |||
=Modifying Gctrl= | |||
*Open the Gctrl folder | |||
*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; | |||
=Modifying GRBL Files= | |||
*Navigate to the GRBL folder | |||
*Open "Makefile" in gedit | |||
*Edit the PROGRAMMER line as: | |||
PROGRAMMER = -c stk500v1 -P /dev/ttyACM0 -b 115200 | |||
=Flashing GRBL= | |||
*Open Terminal and navigate to the GRBL folder (ex. by using the "ls" and "cd" commands) | |||
*In Terminal, type: | |||
make clean | |||
make | |||
*Connect the Arduino Uno to the computer via USB cable | |||
*In Terminal, type: | |||
make flash | |||
*Disconnect the Arduino Uno | |||
=Running GRBL= | |||
*Navigate to the Processing folder | |||
*Open and run Processing, setting the sketchbook folder as the folder in which the gctrl folder exists | |||
*In Processing, open gctrl using File>Sketchbook> | |||
*Connect the Arduino Uno to the computer via USB cable | |||
*In Processing, run gctrl using Sketch>Run | |||
*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 | |||
*Double-click "Arduino" then click "run" in the popup window | |||
*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= | =Design Modifications= |
Revision as of 19:45, 17 February 2012
Overview
- The CNC Circuit Mill Version 2 is designed for superior ease of sourcing, fabrication, assembly, and disassembly, combined with high performance, scalability, modularity, and lifetime design- all at low cost.
Key Specifications
+1
Performance
- 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
Design
- Stock Steel Cube-shaped External Structure
- Stock Aluminum Angle-based Internal Structure
- 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 Fastener-based Holding Platform
- 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
- Stock Metal = under 150 USD
- Leadscrews and Leadscrew Nuts = under 250 USD
- Precision Shafts = under 150 USD
- Bearings = under 100 USD
- Fasteners = under 70 USD
- Electronics = under 300 USD
- Software = Open Source
-1
Further Performance Specifications
Design Rationale
Sourcing
- Spreadsheet File
LINK HERE
- Prototyping Spreadsheet
- To edit or download the spreadsheet, click on the following link.
https://docs.google.com/spreadsheet/ccc?key=0AlpsBarfpPkzdFk5aDY3dHM0eEhfZHNkWVppdV9EelE
Build Process
+1
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
-1
Software
+1
Ubuntu 10.04 LTS 32-Bit
+1
Getting Git
- Open Terminal and type:
sudo apt-get install git-core
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
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
- 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
Getting Gctrl
- Open Terminal and type:
git clone https://github.com/damellis/gctrl.git gctrl
Getting Processing
- Go to this webpage:
http://processing.org/download/
- Download the latest version of Processing to a directory of your choosing
Moving RXTX files
- Navigate to the Arduino IDE folder>lib.
- Copy RXTXcomm.jar
- Navigate to the Processing folder>modes>java>libraries>serial>library
- Paste RXTXcomm.jar, replacing the existing version
- Navigate to the Arduino IDE folder>lib
- Copy librxtxSerial.so
- Navigate to the Processing folder>modes>java>libraries>serial>library>Linux32
- Paste librxtxSerial.so, replacing the existing version
Modifying Gctrl
- Open the Gctrl folder
- 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;
Modifying GRBL Files
- Navigate to the GRBL folder
- Open "Makefile" in gedit
- Edit the PROGRAMMER line as:
PROGRAMMER = -c stk500v1 -P /dev/ttyACM0 -b 115200
Flashing GRBL
- Open Terminal and navigate to the GRBL folder (ex. by using the "ls" and "cd" commands)
- In Terminal, type:
make clean
make
- Connect the Arduino Uno to the computer via USB cable
- In Terminal, type:
make flash
- Disconnect the Arduino Uno
Running GRBL
- Navigate to the Processing folder
- Open and run Processing, setting the sketchbook folder as the folder in which the gctrl folder exists
- In Processing, open gctrl using File>Sketchbook>
- Connect the Arduino Uno to the computer via USB cable
- In Processing, run gctrl using Sketch>Run
- 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
- Double-click "Arduino" then click "run" in the popup window
- 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

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.