CNC for Mac
This project was started to bring CNC machining to my Macintosh desktop computer. For the past couple of years I have run a Linux box with EMC2 to control my mini-mill, and finally grew tired of relying on legacy hardware. EMC2 is rarely updated, klunky, and far from user friendly. I wanted to escape the clutches of this box and decided to go ahead a write a native application for OS X. To do this I had to implement a new hardware control box strategy, the key being a MIDI decoder. The MIDI decoder essentially replaces the parallel port. All communication with the computer and the control box happens via MIDI over USB.
prototype control box
This prototype control box contains an AC to DC 24 volt power supply, a DC-DC converter, the MD24 MIDI decoder board, 4 stepper motor driver / controller boards, a logic level 15 Amp relay board, 4 DIN ports for bipolar stepper motors, and an AC outlet for the spindle.
I chose stepper motor drivers with integrated step signaling so I could offload that work from the processor, plus I am lazy and did not want to write a step signal generator in software. Maybe in the future. The thing is, once the motor drivers are tuned, there is no need to change anything. There are advantages and disadvantages in doing it this way, but overall it is less of a headache for me. We'll see.
Interestingly enough, using MIDI allows me the ability to use other MIDI hardware to control the machine.
software
The software is in progress, but here are some screenshots as of April 15, 2010. The central display is using OpenGL to show the location of the spindle on the workpiece. The real glue in the software that makes most of this work is the VVMIDI framework.
Five axis control!
Slowly working on the g-code interpreter.