Project: The Beast (DIY CNC machine project)
April 17, 2009
Meet the Beast!
(eh please ignore the junk around it)
Big fat Note: This guy is not the best design ever done, I'm sure it can be done in other ways too, it is more of a proof of concept and if it will be good for something (I mean actually usable or not), remains to be seen when I finish it. This is so because nothing has been calculated or planned beforehand, all you see is created straight from my head with lots of eyballing technique and mostly based on intuition and common sense.
I'm not sure if such a machine can actually be classified as a robot so I'm not going to post it as a robot project for now, it is not done anyway yet so there is time.
I have decided to build such a beast for pure fun and because I hope the in the end (if I actually get it to work correctly) it could be actually useful to cut parts for other projects (read robots :D).
The machine is actually pretty simple, it is created of wood conglomerate I had laing around, which in my country is called "pal"and it is used to make furniture (I think it also called mdf but I'm not sure it is the same thing).
It is composed of a base plate which also acts as the X axis, on which the Y axis moves. The Z axis is mounted on the Y axis and moves along with it.
To allow movement as frictionless as possible the axes are mounted on L shaped aluminum rails and supported by bearings (the pictures will speak for themselves). This setup also ensures minimum unwanted movement for the axes.
(it an ugly cutting job I know ...)
The axes are moved using long screws which trough rotation push or pull the axes along the rails. (Again I think a picture is worth more then words).
The machine is to be controlled by an Arduino interpreting G-Code received trough serial connection from the PC. I chose to create my own motor drivers since driving 3 stepper motors and maybe the cutting tool would have eaten all the IO pins available on the AtMega 168 the Arduino uses, and the software would have been the killer of this project.
So I have created the following setup:
- the Arduino will drive the motors trough I2C as a master device
- each axis will be driven by it's own driver taking commands from the Arduino.
The motor controllers are built using l298 as the motor driver and an Attiny2313 to act as a slave on the I2C bus and control the driver.
Using this setup I still have a lot of IO available on the Arduino (maybe for a LCD screen or a keypad) and the software is as simple as it gets.
The motor controller and the stepper motor to be used
I will use a modified version of the RepRap software on the Arduino. On the motor controllers I have used an I2C library found on avrfreaks.net and code to control the stepper which is written by myself. All software is written in avr-c/c++.
The Arduino part is yet to be written/modified, I think the motor controller part is almost done (still a few bugs to iron out).
5: Current status
As you can see in the pictures, the mechanical part is 2/3 done I still have to create the Z axis toghether with the tool holder.
The electronics are done for the two axes toghether with the Arduino (single side version), I still need to make one more motor controller fro the Z axis, or two if I decide to have control over the cutting tool too.
Update 19, Apr:
I have managed to build the third motor controller last evening. Added controller test video :D
Update 20, Apr:
Well since the electronics part seems to work great, today I've done the a lot of modifications on the RepRap firmware for the Arduino and finished the coding for the controllers.
I'm pretty happy with the motor controlling part, it looks like I have actually a much better resolution than my poor math calculations gave me: 115 steps per millimeter instead of 48! Don't know why this is so yet, but it is great and I won't bother to find out:D
On the G-code side there is still some work to be done ... It might be not such a great idea after all, mostly because there is no complete toolchain to work with under Linux and I just won't will use windows. I'll see more about that this week .. .
I'll also have to start working on the Z axis (something I have succesfully evaded till now), I still have no clue on the design yet.
Update 29 April:
Little update, been working for a while at the Z axis, made two versions none really satisfactory, found a design flaw and ranted over the imprecision of my cutting skills:P For now my time to work on this is very limited, hope I will be able to do some more on this Z axis thing over the next two weeks.