From Open Source Ecology
Jump to: navigation, search

Assessment of Prototype I

  • Jogging: Success on all 3 axes. Press-and-hold function does not work well after a time due to exponential rate command repeat mechanism.
  • GRBL Setting Changes: Success. All settings changeable through Arduino IDE.
  • CNC Control: Partial Success, toolchain for generating Gcode was not used due to lack of access to such a tool chain. Sample gcode (independently generated) file tested; resulted in movement of 3 axes, independent and together. Gcode generation toolchain and its usage documentation required. Timing: est. 2 weeks, task managed by Daniel. Settings and gcode-gctrl integration require shakedown. Timing: est. 3 days.
  • Frame (12 members + 2 side members): Success. Rigid. Ease of manufacturing - with jig, and frame pieces precut, and template already made + drilling station prepared - est. time of fabrication: under 2 hours of hole drillings, and under 1 hour for assembly using M5 screws, washers, and nuts. Next steps: redesign as separate from axes components. Timing: est. 2-3 days.
    • Improvement suggestion: incorporate clamp-down of drive axis, all 3, for radical hypermodularity and ease of fabrication

  • Drive axis structure: Partial Success. Half-way redesign prompted two-template usage, leading to misalignment. Next steps: redesign with datum edge template, single template per axis. Timing: est. 1 day.
    • Explore clamp-down mechanism
  • Spindle: Partial Success. Spindle shaft too long. Stable rotation with milling bit tested. Motor shaft misaligned upon coupling-only testing. Next steps: source new motor, cut spindle shaft to shorter length and ensure stability of ball bearing mounting.
    • First: assess motor-only shaft rotation without any coupler or spindle shaft. Determination: motor shaft does not wobble visibly upon rotation
  • Bearing Mounting Method: Partial Success. Lopsided fastening of sleeve bearing. Next steps: use redesigned mounting mechanism with small and large washers for rigid fastening with near-full contact of head on surfaces.

  • Platform: Partial Success. Holding requires tape and non-full stability of workpiece due to narrow flat bar. Next steps: redesign platform for stability and with non-consumable holding mechanism. Timing: est. 2 days.
  • Electronics: Partial Success. Step motors get hot as overvolted from 12 to 24V. Step driver or GRBL'd Arduino having issues with high step rates - may be irrelevant concern for practical range of speed (slow) required. Step rates configurable to avoid this issue.
    • Work point: get assistance from any SnapLock people??? Attend SnapLock workshop? Does SnapLock work at all?
    • Next step: variable voltage power supply; troubleshoot stepper speed issues if any during gcode-gctrl shakedown
  • Software: Success. GRBL and gctrl (a GUI code that runs within Processing, allows you to stream gcode files to Arduino and do manual jogs) compatibility established. Integration with hardware established. Next steps: establish and document circuit-to-gcode toolchain. Proposed solution path: use a popular OS circuit editor such as gEDA or Kicad to generate Gerber files. Gerber files are then coverted to production machine specific language, via any suitable, open source PCB gerber file to gcode converter - which will be adopted to the OSE CNC Circuit Mill.

  • Sourcing: Partial Success. Bearing-shaft incompatibilities existed. Reaming/turning necessary. Fasteners ran out. Next steps and timing: P2 Sourcing 1 week (est cost <300)
    • 24 bushings took less than 1 hour with drill bit on drill press, holding them with a vice
  • Manufacturing: Success. Templates work well for precision. Minilathe-made couplings suffice. Bandsaw cuts are fast and accurate enough. Timing: P2 Build 2 weeks once materials are sourced. ETA for return to FeF: March 20. Parts arrive at FeF by March 20.
  • Systematic Shakedown: Partial success. No gcode generation toolchain. Misalignment and spindle instability. Timing: Define process going from concept circuit to finished board in 1 week.

Yoonseo Work Plan By March 20

  • 1-2 weeks by March 20 taken to document, design, source new parts, review design
  • Document new design on wiki under CNCCMV2
    • Initial manufacturing instructions
    • Design of: platform, separating axis components from frame, spindle
  • Parts sourcing: main cost is variable voltage power supply
  • Prior to review, generate the fully accurate Sketchup + Design Rationale
  • Analyze industry standards to obtain desired performance specifications from CNCCMV2
  • Review of new design:
    • Sketchup pictures of x, y and z precision drive + spindle + platform
    • Blog post prior to build after confirmation of successful re-entry to the USA
    • Send design for review to Nophead, Open Manufacturing, Twitter, Facebook, Multimachine group, EMC, RepRap forums, CNC Forum under Open Source Design Center, Electronics, and Hobby Projects; identify 2 more related forums from the industry

Development Information

CNCube Conceptual Design

Bill of Materials


  • Prototyping Spreadsheet

2 Process

3 Picture Repository




























3 Structure

4 Cutting Metal

4 6061 Aluminum Round Bar 15mm OD

  • 40mm (x5 total quantity = 200mm total length)

5 Quantity Organization

  • 3: Step Motor-to-Leadscrew Couplings
  • 1: Spindle Motor-to-Spindle Shaft Coupling
  • 1: Spindle Shaft-to-Milling Bit Coupling

4 6061 Aluminum Round Bar 25mm OD

15mm (x12 total quantity = 180mm total length)

5 Quantity Organization

  • 4: X Axis Shaft Collars
  • 4: Y Axis Shaft Collars
  • 4: Z Axis Shaft Collars

4 Steel Equal Angle 1.5"AB, 0.125" thick

400mm (x14 total quantity = 5600mm total length)

Quantity Organization

  • 6: Simple Cube Angles
  • 4: Y Mounting Angles
  • 1: X Axis Step Angle
  • 1: X Axis End Angle
  • 1: Y Axis Step Angle
  • 1: Y Axis End Angle

4 6061 Aluminum Alloy Equal Angle 1.5"AB, 0.125" thk,

  • 35mm (x3 total quantity = 105mm total length)

5 Quantity Organization


  • 140mm (x4 total quantity = 560mm total length)

5 Quantity Organization


  • 170mm (x4 total quantity = 680mm total length)

5 Quantity Organization

4 Steel Flat Bar 0.125" x 1.5"

  • 100mm (x3 total quantity = 300mm total length)

5 Quantity Organization

  • 140mm (x2 total quantity = 280mm total length)

5 Quantity Organization

3 Perpendicular Alignment Template

3 Rigidity Alignment Template

3 Wide Axis Template

3 Narrow Axis Template

3 Rigidity Template

3 Cube Angles

3 Platform Angles

3 Platform Flat Bar

3 Y-Z Wide Axis Angles

3 Y-Z Narrow Axis Angles + Z-Spindle Narrow Axis Angles

3 Z-Spindle Flat Bar

3 Z-Spindle Holding Angles

3 Cube Assembly

3 Y-Z Assembly

3 Z-Spindle Assembly

2 Electronics

2 Detailed Software Guide

3 Ubuntu 10.04 LTS 32-Bit

4 Getting Git

  • Open Terminal and type:

sudo apt-get install git-core

4 Getting Arduino Integrated Development Environment

  • Go to this webpage:

  • Download the Linux 32-bit version of Arduino IDE to a directory of your choosing

4 Compatibilizing Arduino IDE

  • The following steps are a summary of the information in this webpage:

  • 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:


  • 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:


  • In Synaptic Package Manager, search for avr-libc, then mark for installation the item with the following name:


  • In Synaptic Package Manager, click "Apply"
  • Restart your computer

4 Getting RUBY Programming Language

  • Open Terminal and type:

sudo apt-get install ruby1.9.1

  • Restart the computer for the changes to take place

4 Getting GRBL Files

  • Open Terminal and type:

git clone grbl

4 Getting Gctrl

  • Open Terminal and type:

git clone gctrl

4 Getting Processing

  • Go to this webpage:

  • Download the latest version of Processing to a directory of your choosing

4 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
  • Navigate to the Processing folder>modes>java>libraries>serial>library>Linux32
  • Paste, replacing the existing version

4 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;

4 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

4 Flashing GRBL

  • Open Terminal and navigate to the GRBL folder (ex. by using the "ls" and "cd" commands)
  • In Terminal, type:

make clean


  • Connect the Arduino Uno to the computer via USB cable
  • In Terminal, type:

make flash

  • Disconnect the Arduino Uno

4 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.

4 Determining GRBL Configuration Changes Required

  • Go to the following webpage:

4 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