My First CNC Machine!


The XY table began as an interest in port programming under the IA32 Architecture. The breakout box was the first generation of port programming followed by a small stepper motor that could sink the allowable current of the port.

However, the power requirements for the larger steppers simply was not enough. I experimented with opto-isolators and high amperage Darlington transistors, but eventually decided that the isolators were not really needed once the proper transistors were used. I did, however, use a parallel port card instead of the port on the motherboard during the development phase since a card is much safer for experimenting on.

I finally settled on a Darlington Transistor array ULN2003 to handle the current amplification. This is a neat little IC package that is quite versatile and extremely high speed, a requirement that is crucial to tuning certain steppers. I may include some circuit diagrams eventually, but for now, I only have the XY Table pics.

The circuit was fairly easy to breadboard and I now have it on a perfboard in its own neat little box, complete with modular cable and power supply. You may notice that I use the ribbon cable on the table. This is because there will eventually be quite a few signals to deal with and the flat ribbon makes for excellent routing and connections when used with the cannabalized printer and PC parts.

The driver for the motors began as a simple interface where the user could tune different steppers for best operation in both single and dual excitation modes. This was fun to learn about while developing the software. Several versions were developed and I finally settled on a semi-robust driver that could be tuned both to different motors but also to different processor clock speeds. This is important because the delays that are needed to slow down the clock cycle speed are different on other machines and therefore affect the rate at which a pulse is sent to the motor. The software also allows the user to run pre-built coordinate files and I have hopes to come up with an OpenGL based quickCAD interface that will enable the user to draw and generate plot files for later drawing or hopefully cutting eventually.

The hardware was basically built from scratch, all except the motors and drive belts. The rest is the result of many hardware store and second-hand store trips to find the necessary parts and components. I built a lot of the table out of wood, which isn't my first choice, but it is easy to work with using simple hand tools and quite cheap.

UPDATE 2-10-2001

Major design flaw was detected in the hardware.

I can't draw circles because the rate of change between the x and y axis is non-linear. This is because I inadvertantly used two different steppers for x and y. So, I can't set the appropriate bits in one instruction to make both motors move simultaneously. This happens to do with the frequency at which the different motors respond to the clock pulse.

Oh well, it is fun to watch it draw interesting square shapes.

Here are some pics.