CNC Circuit Mill Prototype 1 Complete

The OSE CNC Circuit Mill Prototype I is now complete. While there are many CNC circuit mill designs available on the internet, ours aims to maximize modularity, scalability, and simplicity, and ease of fabrication – while adhering to OSE Specifications. Here is the assembled device:

This is sample stepping motion:


We will use the circuit mill to produce circuits needed in the Global Village Construction Set – such as the CEB Press Controller which we etched previously with hit-and-miss success. In order to mill circuits successfully, several bug corrections need to happen on the circuit mill.

It turns out that achieving simplicity of mechanical design is hellishly difficult because of the precision requirements. The alignment procedure is not trivial, and requires accuracy and a jig. The goal is to streamline this process so that a build is manageable and repeatable. See the build on the wiki.

The process of milling circuits begins with a circuit design. Convert the circuit idea into a circuit schematic using an appropriate editor, then convert the schematic into a PCB (Printed Circuit Board) file in Gerber format. Using pcb2gcode or the like, transform the PCB file into a gcode  file, which mainly consists of a series of coordinates. Using a program such as gctrl or the like, stream that gcode file to a microcontroller board (such as the Arduino Uno) that is flashed with GRBL, which is a gcode interpreter. GRBL converts the gcode coordinates into step and direction signals for the step motor drivers to process and accordingly energize the coils of the actual step motors.

The step motors are coupled to leadscrews that convert rotary motion into linear motion through leadscrew nuts; 3 axes of such a system allow XYZ movement of a rotating spindle and milling bit relative to a copper clad board. Our design features x motion on the bottom carriage, and y and z motion on the vertical carriage. The rotating bit mills certain copper sections away, leaving a circuit board upon completion. Drill holes into and solder components on the board to finalize the assembly of the circuit board.

Prototype 1 of the CNC Circuit Mill began with an exploration into software and electronics. Having Arduino compatibility in mind, I initially discovered GRBL, the gcode interpreter that could be flashed into the Arduino Uno microcontroller; and A4988 stepper driver carriers, the electronics that could receive step and direction signals and accordingly energize step motors. Upon establishing a reasonable step motor, DC motor, and power supply to finish what remained of the electronics, software followed.

Here are the prototype electronics:

Software at this point was missing the method of flashing GRBL into the Arduino Uno board, as well as a control interface with which to stream gcode from the computer into the board. With much help from Jeff Crews, GRBL was successfully flashed into the Arduino, gctrl discovered as a means of streaming gcode, and the gctrl-to-GRBL system compatibilized. For others to avoid the great hassles associated with the software system, the whole process is documented on the OSE wiki (currently only in text and tested with Ubuntu 10.04 LTS 32-bit).

A simple, functional circuit-to-gcode toolchain has been elusive. If anyone knows of any such workable toolchain, please contact me at ykang404(at)gmail(dot)com

Moving onto the actual structure, the frame was initially comprised of steel angles and flat bars for structure, but the components were too heavy and half of the frame had to be redesigned to be smaller and remade using aluminum alloy.

The premise of the frame was that a cube structure made of metal angles would provide rigidity as well as ease of maintenance from being able to lie on any of its 6 “faces”. A major improvement for prototype 2 is the separation of the cubeframe and the precision axes support angles in order to compatibilize the use of datum edges with the current design. To explain – the cubeframe metal angles are long but the holding platform metal angles are short; hence, because the lengths are different, I need 2 templates for axis fabrication- one short and one long. Instead of making 2 templates, which risks misalignment, just making each axis have the same length of metal angles ensures the need for only 1 template.

The precision stainless steel (SS) shafts were slightly too large to fit in the sleeve bearings and ball bearings, so the sleeve bearings were reamed and spindle shaft turned.

The mounting method for the sleeve bearings to the metal angles have to be improved, because currently the screw and nut combination only makes partial contact with the sleeve bearing flange.

Another major improvement to be had is shortening the length of the spindle shaft and compensating for this by lowering the Z axis. The reason is simply to improve the stability of the spindle during high-speed rotation.

Concerns arose from the high thermal draw from the step motors as a result of overvolting; variable VDC testing is warranted to set the right compromise between power and duty cycle (better axes movement and spindle speed with higher voltage, but faster overheating concerns, and vice-versa).

A proper platform to mount copper clad boards is required for ergonomic usage of the machine. Currently, copper clad boards must be held by tape over the H-shaped platform.

And finally, now that a reasonable understanding of the cnc circuit mill functionality has been established, documentation will be stepping up for the next version of the CNC Circuit Mill.

In short- plenty to do for prototype 2.


  1. James Bunny

    Great work! I can’t wait to see it live. 🙂

  2. Peter

    I’m having difficulties watching the video. Maybe a typo in the URL? This seems to be the correct link:

    Thank you for this mind-boggling project!

  3. […] CNC Circuit Mill Prototype 1 Complete | Factor E Farm Blog […]

  4. John Stoner

    I dunno, I have traumatic memories of the Darwin Reprap I tried to build. The cube design is not so friendly, very hard to align and keep true. I’ve heard there were very few working Darwins.

    I’m much happier with the Prusa. The triangular design is much more rigid, and easier to assemble besides. Why not learn from the Reprap project’s mistakes?

  5. Alex Fielder

    WRT (alternative) Software to drive the CNC machine, have you checked out ? 🙂

  6. Rollout Plan – Open Source Ecology

    […] Circuit Mill – Yoonseo Kang is the project lead on this at Factor e Farm, Prototype 1 is complete. Prototype 2 is in research […]

Leave a Comment

Your email address will not be published. Required fields are marked *