Glens CNC Shop
Glens CNC machine
Glens Home-Made CNC Machine!

This page tells all about my home-made CNC machine.

Oct 8, 2020
Here is an old video of my home-made CNC machine with Auto-Changer.

I started building/designing this machine about 10 years ago. The work is slow because I only work on it when I feel like it. Sometimes I do a lot, and sometimes it sit's there untouched for months. It had been sitting for a while and I decided to use it to make something. But it wouldn't work when I tried to use it. I had noticed that there were some intermittant connections on it some where, and now they were no longer intermittant, but just plain bad!

So I decided to rewire the whole machine. When I (re)built it and made the large table, I used a lot of different types and sizes of wire and now I am paying for it with poor performance. But now that I have decided to rewire it, I bought plenty of the proper wire to do it with. And now the rewiring is now complete and everything works great!

The early machine (before I made the large table) had a working area of about 13 inches square. It used stepper motors from old 8 inch floppy drives, and the stepper electronics were copied from a 5-1/4 inch floppy drive schematic. It used 1/4-20 all-thread rods for lead screws, it had a feed rate of about 20 inches per minute, and my first spindle was a flexible shaft dremel-type tool.

That is where I started at, and I have continued to learn and make improvements. I now have a working area of 30 x 30 inches, with some rather small stepper motors (I don't even know the torque rating, but they are rated for 2 amps, that should give you an idea of their power) that will get up to 250 inches per minute on the X and Y axis. The Z axis is still running an all-thread rod, and it only gets about 70 IPM.

I recently upgraded the power supply that operates the stepper motors. The old power supply was just a 10 amp 24 volt transformer with a bridge rectifier and a couple of big capacitors. It had no regulation at all, and the steppers would not operate faster than about 200 IPM. I had them set for 150 IPM and they worked well. After I installed the new power supply, I checked the stepper speeds again and I was able to get a little over 400 IPM before I began to have problems. I think I may be able to get 300 IPM as a workable speed. The new power supply is still in the testing phase, but it looks like it will work much better. I currently have the speeds set at 250 IPM.

I have also built an automatic router changer, aka auto Tool-Changer, and it works quite well. I currently have 3 routers, and plan to add a 4th. Each router can have a different bit and can be loaded whenever the program calls for it. Each tool will touch-off on a switch to check for the tool length. That makes setup much easier. You just touch-off X, Y and Z using any one tool and you are good to go.

The CNC controller uses a Dell Computer running "LinuxCNC" machine controller software.
This computer has two parallel ports. One port controls the CNC steppers and spindle,
the second port communicates with the Arduino to control the Tool-Changer.
Yeah, I know, the first question is "Why don't you use the USB to communicate with the Tool-Changer?"
Good question!
The fact is, I have limited programming skills, and I found it much easier to communicate
using the parallel port. It's something that I can do. Using the USB is completely
out of my abilities. I will say that I have recently began to understand using USB
with LinuxCNC a little better.

Currently I have an Android tablet connected to the Arduino's USB port to monitor and control
the Tool-Changer. If there is some sort of error with the Tool-Changer, the error can be
cleared using the tablet. For the most part, the Tool-Changer is completely controlled
by LinuxCNC. In normal use there is no need to use the tablet for anything.

The tool changer uses an Arduino Mega 2560 controller with software that I developed.
The Tool changer is controlled from the LinuxCNC system by GCode.
I have GCode subroutines that are called from/by GCode that will load the requested tool
by communicating with the Arduino, via the parallel port.

For example:
To load Tool # 1, you insert this single line of code into your gcode: o<l1> call
When LinuxCNC gets to this line of code, LinuxCNC will begin to communicate with
the Arduino. It will determine what tool is already loaded, if any, and if a different
tool is loaded, that tool is unloaded first and then the requested tool is loaded.

There are 6 different commands that operate the Tool-Changer:
o<l1> call -This loads tool #1.
o<l2> call -This loads tool #2.
o<l3> call -This loads tool #3.
o<l4> call -This loads tool #4. (This is currently not used).
o<u> call -This unloads the current tool.
o<clrerr> call -This will reset the parallel port to a known state.(Use after a Tool-Changer error)

I have been working on a 4th Axis for the CNC Machine. I want a rotary axis that will
let me turn table legs. I think I have it all worked out. I just got done checking the movement.
I have not cut anything yet, but it looks like it will be good.
It is a little on the small side, but I don't need anything big (yet!).
It has approximately 25 inches max. between centers, and a max diameter of 3-3/4 inches.
It will do what I currently want it to , and I can worry about making it bigger later.
Next up, I want to get some pictures, and a new video.

Oct 18, 2020

link to my "CNC downloads".