CNCCMV2
Categorization Key
- "+1" means increasing category level by one; "-1" means decreasing category level by one.
- For example, the following shortlist means that "Wrenches" are categorized under "Tools", and that "Materials" is a category of the same level as "Tools"
Tools
+1
Wrenches
-1
Materials
- For example, the following shortlist means that "Screws" are categorized under "Metal" under "Fasteners" under "Materials"
Materials
+1
Fasteners
+1
Metal
+1
Screws
-3
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.