I made a CNC machine, a mill, CNC stands for Computed Numerically Controlled, so it’s a mill I can control with my computer. You already knew this of course.
So why would someone of my rockstar status and charisma take on such a nerdish task? Well when I first really saw one was a water-jet cutter on Discovery’s Orange County Chopper – TV show. I was thrilled, making stuff at home, awesome. Then the whole etsy and ponoko thing came along and as you know I tried the www.cutyourway.com service, but a week’s turnaround was a bit to much, and I got a blooded teeth and wanted more, and faster. Then I saw that you could make your own PCB’s with it by drilling away excessive copper instead of etching with chemicals and stuff.
Around the time I ordered my Pandora , my friend Göran Hane ordered one, I was supposed to use his (and help pay for it) but it hasn’t arrived to him yet. We have a bet as for who will get his first. He his CNC or me my Pandora. Anyway, sorry Göran.
So enough about the why and on to the how.
I did a lot of research, I looked at a lot of machines, _a lot_ but price, size and reliability really gave me only one choice, the Probotix v90. It’s big, it has great support if one should need it. It’s not made of steel and that put me of a bit in the beginning, because I was afraid that it would not be exact enough. But as far as I can tell, that is not a problem.
Shortly before ordering it though, I found out that one had to use a windows or Linux computer to control it, since it needed a parallel port from a stationary computer. Now I’m all mac at home. And I really didn’t want a stupid old big windows or Linux machine running again. Besides I tried out both emc2 and whatever the windows like program is called in virtualbox on my mac. They where both slow and ugly. Not something I’d want to run. And nothing I’d sacrifice my ability to say “I’m only running Mac’s at home”
So I turned (once again) to the Arduino, I found some gcode parsers (g-code is control language that you save stuff in as to control your machine). Normally the parsing and such is done on the computer, and then only sent as instructions to the motors. I then also re-discovered the makerbot. The makerbot works with extruding plastic, so that you can make small plastic parts. However, it works in 3 axis and it’s controlled by an Arduino. Great, I ordered 3 controllers (one for each axis) and 3 motors from the makerbot store.
While I was waiting for everything to arrive I started looking at the source code for different stuff, to save time when the stuff arrived. Everything arrived the afternoon before I went to the Norbergfestival. Wise from earlier experiences I let everything stay in their boxes. not even opening them a little. And when I came back I went back to work from vacation so I had to go to bed early on account of being tired. SO it took me a couple of day’s before I started.
The mechanic part of the CNC, the Probotix V90 took about 2 hours to put together, easy as Sunday morning. I did that in an afternoon. The motors and controllers where more tricky. putting together. Not the actual soldering or anything like that. Just that there where errors in the gcode setting up of the motors. And the imperial tester (a little arduino program that play’s the imperial march (from star-wars) on a stepper motor) did not work out of the box. I was afraid it was me, but it was the source. I did some workarounds with the timers and delay-times and such and I got it running. (hooray).
I’m missing one hump though. You have to use higher current to feed your motors with then the arduino can deliver. The makerbot uses an ATX power-supply for this. I took one from one of the old computer I have in the basement, but none would start. Turns out you have to modify them (or short circuit rather) to keep them running. That made me sweat a bit, since I’m rather afraid of everything above 9v. But it went well.
Then disaster struck. As I was fiddling around making software adjustments one solder came of, and it was for one of the motors. The controller for that engine started smoking and there where some sparks. The controller was completely dead. So I had to order a new one. Stupid mistake that cost me 30+35 dollars extra (not added in the table below)
In the two weeks I had before the new one came along I’ve managed to:
* Fine tune the arduino system so that it is completely as it should. or at least works like I want it to.
* Make an OS X program that feeds the arduino with gcodes (I tried replicatorg but it wouldn’t send stuff to the Arduino, I also tried to make a program in processing, but I could not find a text-field input UI component, so objective-c it was)
* I remade my processing sketch that I used to generate SVG’s for cutyourway to spit out gcode instead
* I made a path-finder from bitmap to gcode program so I can cut shapes
Why did I write those programs you ask? well, because I wanted them to do specific things. The inkscape svg-out plugins I found where really not all there, at least not in the functionality that I wanted. The best was the phlatprinter guy’s sketch-up plugins. But it was not very cunning on freehand-shapes. I programmed some ruby (or rather modified an existing script) so that it worked. But the svg co-ordinate system and all the transforms and matrix magic made my head hurt.
What am I then using to cut stuff with? well, a Dremel 300 and some drill bits, perhaps later I’ll get a better mill with higher RPM. I’ve actually already started to collect stuff to build a laser-cutter. MOHAHAHAHA, time to die Mr Bond!
I’m going to post all the programs with source one by one and with further instructions on how to use them, this blog is simply about why I built a CNC machine, and what it cost me, and what I learned. More detail later.
Here is a little table on about what I paid.