I am now entertaining offers to sell off the gantry table featured here. I am looking to start a new cnc project, and I will no longer have any need for this machine. I can only hope it goes to a good home!
I have also added translation links to the top of the web. I have noticed that I am getting some visits from non-english speaking people. Welcome! (Translate: [ar] [de] [fr] [it] [ja] [ko] [pt] [ru] [spa] [zh-CN] [zh-TW] )
For the past couple years I have been toying with the idea of making a small home CNC machine for various projects I come across. The main purpose will be pattern making for my foundry work inclusive of rapid prototyping. The secondary purpose is general art and play. Imagine a giant wood carving etch a sketch!
Since I am a Linux user, the first thing I started to play with was EMC. I was not completely impressed when I started playing with it, but I figured I could make it work. EMC2 came out a number of months later and really seemed to fill in the gaps of what the original EMC was missing. I learned my way around the config files, and started teaching myself g-code. There are only so many simulations you can run before it comes time to move on.
Looking through endless realms of steppers and servos and drivers sorta put me off for awhile (especially the price.) A friend of mine was kind enough to send me a couple steppers to get me interested again. I came across a website where a guy hooked up two mini steppers to an etch-a-sketch indexed them via EMC2, and drove them with a simple circuit. Got me confident that I too could rig up a simple driver to run the steppers. Simple it was. So simple it shouldn't have worked, and should have fired up in my face! (I got lucky.) With some help of some other friends, and a few electronics books, I managed to design a simple current controlled circuit to drive a stepper with EMC2 to do all of the indexing. Parts were cheap, and the prototype worked. Problem... it just wasn't reliable.
Instead of spending more time and money to get the circuit right, I decided to go commercial... at least half way. I ordered a 4 axis HobbyCNC board (~$350). The board comes with the required electronic components. I spent an evening soldering the components up and put a power source together. I had already configured EMC2 while I was waiting for the components to come in the mail, so it was almost plug and play! It was very nice listing to the steppers hiss from the current chopper and then listening to them sing as they ran though the g-code.
In the mist of all of the workings I spent a weekend designing a gantry/table in SolidWorks. I spent a lot of time after that refining it to make construction easy. Most of it is my own design, but there are so many hobby CNC gantries/table out there it was hard not to copy aspects that have been tried and proved. Basically said... the machine design is not completely original in concept, but it is my design from ground up.
In general I decided on MDF for the main construction material. I chose 1.5" EMT for the rails. EMT is manufactured in such a way to be fairly accurate on the OD. I also ran some deflection calculations on the rails and decided the results to be tolerable for a wood router design. The linear bearings are all 8" long JGRO style. Total work area ~20"x24"x5". I have plans to add a 4th axis but will wait till the first 3 axis are working. I can then utilize the machine to create the parts for the 4th axis.
I had a professional licensing exam at the end of April 2007 so a couple months before hand I put the cnc stuff aside and put all of my efforts into my preparation.
Ordered some 1.5" EMT conduit for the rails from a local Grainger. I also purchase an adjustable hole cutter to help me cut tight holes for the rails to go through. After cutting about 30 holes in scrap wood, I finally found a process to adjust the cutter "close enough."
20' of EMT Rails arrived today. Total cost about $40. Spent some more scrap on adjusting the hole cutter.
Picked up a sheet of 3/4" MDF ($20). I really don't have the ability to handle that size of sheet myself on a little shop smith table saw. My dad had a skill saw and guides to help rip down the MDF into manageable pieces. What a dusty mess. (What is so great about this MDF??!) And yeah... played with the hole cutter again.
Spent a little bit of time making sure that the Shop Smith table saw was accurate. Cut the parts for the table base. Made a bit of dust too. Ran over to my dads house and borrowed a pipe cutter to cut some of the EMT to length. Not a bad start!
Got to work today only to find out no one could log into the computers. I spent a couple of hours trying to hack my way in, and only managed to be able to read my emails. Decided I would take an hour off and run out to the hardware store. I purchased a bunch of mini c-clamps, a 3/4" router bit, and a aluminum yard stick (strait edge). I spent a bit of time last night trying to figure out how to true up all of the struts on the table base. I was also trying to figure out how to cut the rails supports into the side of the table. Using a router just wasn't going to work. Almost got side tracked with the grape vines for sale. Went back to work, and computers came back up a little while later.
Got home and decided to try my hand at a cove cut for the rails supports. I had plenty of scrap around to practice with. I found out quickly that a finishing blade just wasn't going to do it... so the cross cut was the way to go. I managed to get an angle set up by eyeballing it that I was fairly happy with. After half a dozen scrap pieces, I rigged up a more rigid guide from scrap aluminum and some of the c-clamps I had purchased earlier. (Knew those would come in handy!) I decided to try a carbide toothed cross cut. The coves in each side support took about 5 passes to get to the depth I was trying to accomplish. All in all about 2 hours of fiddling around and a mountain of MDF dust. *cough cough* !
Placed a bid on ebay for 100 sealed skate bearings (608-2RS). I was looking for cam followers, but I do not want to wait for the price to be right. Let see if I win.
Yup... won the auction for the bearings (~$38). Went to Lowes today to pick up some aluminum angle to make the linear bearings. (Called first to see if they had the 1.25"x1.25" - 1/8" that I was looking for.) Noticed they also sold 1.5" EMT... cheaper than what I paid for it :-\. Found the 1.25" angle... but it was listed as 1"?! Also picked up enough 5/16" - 1.5" bolts and nuts for the bearing fasteners. Looked around at fasteners suitable for MDF, and some spray adhesive to put some sand paper on my disk sander.
Wife helped me cut the aluminum angle to the 8" length. I spent some time study the bearing assembly and laid out some locations for drilling holes in the angle.
Got the disc sander setup so I could true up the struts on the table. As dusty as that MDF is.... it sure cleans up nice and smooth! That made me happy... so happy that I didn't curse when I shaved off a few hundredths from one of my digits!
After putzing around for a bit I finally decided on a way to true everything up on the table base assembly. I laid everything out and with the help of my trusty dusty (no joke) strait edge, a square, and some left over aluminum angle, I spent a couple hours gluing all the struts together. All and all I am happy with the way things have turned out. I should note that I have seen a 5 year old accomplish a better glue job.
No work to show for today. I was going to attempt to rip down the 4x4 sheet, but I really do not have the capacity for it, nor could I do it safely by myself. I did spend some time figuring out the rest of the bearing assembly. I also think I can finish the rest of the machine with 8" wide cuts. I got a bit sidetracked looking at other designs... but I need to stay the course. Plenty of time for building other machines after this one is done. I wonder when the bearings will arrive.
Started work on the vertical gantry and the bearing assembly blocks. Ripping down the rest of the 4x8 sheet was a bit difficult, but I had a helper who made the job go quick. I also made a few scrap pieces to practice making bearing assembly blocks with.
Bearings arrived today! I took some time to roll them across the table and anything else I could try them on. Even though the entire machine has been modeled to scale, I still am surprised but the size of the pieces from time to time... the bearings looked small.
I dont have my bearing spacers made yet, but I took some time to drill out one of the aluminum angles, and attached a stack of bearings for a quick test. I was happy with how the bearing moved on the rails. Still need to figure out what to use for the spacers.
Made the spacers for the bearing assem today. Marked off some spots on the aluminum angle to drill. Went to Fred's shop to see if he had any ideas for spacers. We ended up turning down a bar on a lathe, cutting it to rough length on a band saw... facing off the end, and then drilling and reaming the center hole. After 25 pieces were made, we ran the lot of them through the surface grinder to get them to length. Turned out pretty darn good.
I got home and finished drilling and reaming the aluminum angles. Assembled them together and ran them over the rails a few times. So far so good.
I got out the hole cutter... double and triple check the lay out and hole size... even cut a few holes in scrap. Cut the holes into the gantry verticals. Tried to run the rail through only to find out that the holes were too small. Guess its time to get out the sand paper.
After the mothers day events... I couldn't keep away from the garage. I got out a fresh piece of sand paper and went to town on making the vert gant holes larger. Only took about 10 minutes and the rails fit in just fine. From end to end I have about +/- .003 of play between the two rails in place. All in all, I am happy with how the holes worked.
I decided I had a bit of extra time to start on the bearing assembly blocks so I reconfigured the Shop Smith for table saw mode, and set the fence to cut to length. Flipped the switch and all I heard was a loud humming sound from the motor.... and then the breaker tripped. I unplugged everything and started to move the machine back into drill press mode when the rails started slipping out. I spent the next 15 minutes re-adjusting the rails and double and triple checking to make sure everything was locked tight.
Now on to the motor. I removed it from the machine and took it apart to see what was going in. It was plugged tight with about 50 years of wood dust. After cleaning it out and checking for a short, I wiped down the bearings and tightened it all together. I plugged it in and flipped the switch... motor purred nicely again!
I put everything back together and and rechecked everything and finally got the block cut out. Made a few extra as "just in case pieces." I set up the router table and got the height of the bit and the distance from the fence pretty darn close to what I needed. Cut a channel in all of the blocks... re-adjusted the table to where I thought would be good, and cut a test piece. When I placed the aluminum angle in... it was too loose, and I also noticed that the nuts on the back where a bit longer than I had drawn. I will need to gouge out a bit of material to give the nuts some space.
I tweaked the fence in a tiny bit to tighten things up. They are very tight... I might need to hit them with a bit of sand paper or a file to ease things up a bit. Over all I am happy with how they roll on the rails. The texture of the rails makes them a bit noisy... but it is something I can live with for now.
I had a couple hours off from work this afternoon, so I spent some time picking at the overall design. I found a couple design problems that were missed when I decided to up everything to 3/4" thick material. I think I was able to fix most of the issues. I have a few more details to work out, and I am attempted to construct the Z-box out of aluminum angle instead of MDF.... but no need to decide right now.
After I got tired of design work, I spent some time working on the Z-rails supports. Cut some pieces to length and then setup the table saw for cutting some rabbets. I hope the rabbets will make final fit together go a bit smoother. I also spent some time using the hole cutter again to create a place for the rails to rest. I purposely left the hole cutter to cut the small diameter so that I could sand the holes for a tight fit.
I cut the last lengths of rails and fit the z support box together. Its hefty for sure... I don't think the weight will be an issue, but I wish it was a bit lighter. Maybe I can cut out some of the unneeded material.
Cut and fitted the bearing supports for the vertical gantry rails. As planned, I will need to screw and glue the assembly together, and tighten the bearings to the rails with adjustment screws. There is a lot of mass sliding on those rails, but they slide very easy. Acceleration may need to be low on this machine in order to avoid jolting the machine.
Old computer sitting out in the garage needed to have EMC installed. The machine was a give-away from a friend at work who listed the specs as a 900 MHz 128 MB ram.... more than enough to run a machine such as this one. I attempted to install the default EMC2 method, and could not do it. To make a long story short, it was a 450 MHz with 64 MB of ram. :-\.
I was going to stick Gentoo on the machine and compile everything from scratch but I remembered a light-weight ubuntu distro named XUbunutu. For ease of EMC2 installation, I downloaded the Alternative 6.06.1 version (dapper drake). The alternative install worked nicely... funny enough X started up with a mouse running in a wheel on the screen... fitting as the computer seems to run on hamster power. I spent about 6 hours cutting the fat from the already light weight disto. I installed a network card, and got EMC2 installed. I transferred over the config files and tweaked them a tiny bit for the machine.
I am not really excited about this computer. Lots of latency... so much latency that I may not be able to run my driver and steppers at their physically capable speeds. Not a complete waste of weekend, but I would have liked to made some progress on the gantry.
It hasnt really been 10 days since I worked on the gantry. I have just been to lazy to write about it as I go. I took an afternoon off from work this week, and purchased some nuts & bolts, paint, fuel line, threaded rod, and a bunch of other little tiny things that totaled to $50. I forgot some drill bits, so later that night I went to a closer hardware store to grab some and noticed that the nuts and bolts were about 4 times cheaper. Ill take back the other materials to Lowes when I get a chance. All in all it will save me about $15.
I have glued up and painted the table. Drilled a bunch of misc holes for threaded rod bearings, and started to strategically place dry wall screws in various locations. I also tried out some adjustment screws using t-nuts hammered into the mdf. I think they will work, but I need to make sure they don't vibrate out of place. Its coming together, but I have a plan of attack for tomorrow.
Long day of good solid progress. I started the morning by drilling holes in the aluminum angle to allow them bearing assembly to be bolted to the various structures. I attached them to the X carriage box and tried it out. Bolting them on defiantly stabilized the box.
I added some support blocks to the Y gantry, and bolted on the bearings. The first test fit worked ok, but I could not snug in the bearings tight enough with the short adjustment screws. I removed some material from the under-gantry supports, and shortened them by an 1/8". This did the trick nicely. I clamped a yard stick to the X carriage and placed it on the table. From right to left, the table slopes about 0.03" From front to back, the table is fairly uniform. I think I can adjust the right side a bit higher by shimming between the bearing assembly and the support block.
I installed the x and y drives screws, but realized I cut them a bit longer than I needed to. The lock nuts should work nicely to keep the screw in place. I really need to place some stiffening supports on the sides of the Y gantry... but this was expected from the beginning. I board will also get attached to the back of the Y gantry for added stability.
The Y gantry rides very smooth and free on the rails. The X carriage rides ok, but it is not as smooth. I am not exactly sure why at this time, but none the less it is tolerable. It may have to do with the weight on the Y bearings.
A friend helped me yesterday to cut out some stepper mounts from tubular steel. I only cut out two, because I didnt think I would be able to use the 3rd for the Z axis. Turns out It would have worked just fine. When I got home from the shop, I drilled some more holes to attach the mount to the gantry. I also brought home a dial gauge to help tweak the gantry a bit.
Today I finally added the cross support between the two gantry rails. It made a huge difference in the stability of the gantry and the deflection of the rails. I spent a lot of time adjusting the drive screws. Using lock nuts made this task difficult. I also decided on a way to attach the drive nuts to the gantry and carriage. Again... I dobut this method is original, but it works and was not hard to construct. The Y axis still needs a bit of adjustment on the nut, but I think the X axis is spot on.
My wife helped me haul the machine into the house as I was getting tired of working in a damp garage, and didnt want to take the electronics out there yet. (Its been raining all weekend.) the width of the gantry is just slightly to big to comfortably fit it thought a standard door way, or down our stairs. So after we managed to squeeze it into the house, I disassembled it, and took it took it to the basement in pieces. Basically I just removed the gantry.
After putting it back together, I jerry rigged up a connection from the driver to the steppers, and jerry rigged a pen to the carriage, I fired away with the default program EMC2 has loaded. The letter E began to draw ever so nicely.. but then started not to look right, and the MC also appeared in the wrong place. Turns out I had forgotten to tighten the hose clamp on the X axis! Everything was also mirrored upside down, so I need to switch the polarity of the Y stepper.
I ended the evening by drawing out my name, and a hosta leaf shape that I had handy. The Y axis has some sticky points that I need to adjust for but the stepper plowed right through it without loosing step. I am happy with the progress, and have lots of tweaking ahead of me!
My friend cut out another stepper mount for me today, and I picked it up at lunch. I drilled and tapped all the mounting holes when I got home. I also tapped the drive nut to get it ready for the final axis. I started working on the z box, and made a bit of progress, but was not able to finish it. I spent the rest of the night tweaking the machine (took a few videos too!) I managed to get the machine to run at a consistent 35 IPMs. I hope that when I build the new power source, I get a bit of extra speed. I switched from 1/8th stepping to 1/4 stepping. I seem to be getting better movement from the machine.
Finished up the z box. It is heavy. I also experimented with some different configuration settings. The extra weight doe not seem to slow the machine down any, but I am curious to see how well the stepper moves the z box around.
I added the screw to the z box tonight. Took me much longer to do, than to write about it. I need to refine cable connections to the steppers tomorrow, and start thinking about a simple convenient way to attach the tool holder to the front plate of the z box.
After dinner I headed off to the local hardware store to see if I couldn't get some ideas for making the tool holder. First stop... plumbing. I was looking for hose clamps but I bumped right into to pipe mounts. Typical me, I forgot to measure the rotary tool before I left home, so I picked a size that looked right, and then grabbed some hose clamps just for fun. I picked up a few extra nuts and bolts and $4 later I ended up back home.
Sure enough I manged to grab the right size pipe mount, and just happened to have the perfect size piece of scrap laying around. Without much thought I started drilling holes, making saw dust. 30 minutes later I ended up with a decent tool mount and a rotary tool attached.
I worked on the machine a bit to take care of some minor details, and then I started to solder the steppers to the extension cables. I tested each axis as it was completed. I was nice to see the Z box move on its own for the first time! After making a few imaginary cuts, I grabbed a piece of scrap from the garage, and taped it to the table. I flipped on the tool switch and watched the program fly! Definitely had the wrong tool... but I could not find the right collet for the tool I should have used.
Now to find the right bits to use!
I have been playing around making miscellaneous cuts in scrap wood and plastic. I can't even remember how many times I have carved out my name in different fonts! I wrote up some code to convert an image into g-code. Its been done before, but I am working in making it web-based. The php converts the image to gray scale, and then assigns a relative height... black being the deepest, and white the closest to the surface. I took an image of the Shroud of Turin and ran it through the program, and then sent it to my machine. It took a couple hours, but all in all. I was happy with the results.
I took a job to produce some awards / signs for a local group before I had even started building my machine. Looking back, that probably was not the best idea, and I don't plan to do it again. With a couple weeks left before the job was scheduled to be complete, I figured it was time to deliver!
For the most part the machine performed well. I made the mistake of cutting the wrong direction a few times, but the material was forgiving. The customer should be happy.
I also learned a valuable lesson. Do not use WD-40 or oil as a lubricant on the all-thread and nuts. The machine was squeaking a bit, so I used the lubrication to help. The squeaking went away a bit, but about 30 minutes latter I started hearing some gritty noises coming from the screws. Then the Z axis locked up.
Turns out that metal shavings were forming from the screw, and the liquid lube didn't help to do anything by collect up all the particles and jam up the nut. After talking to a couple guys the recommendation was bees wax. I cleaned up the screws and nuts, and held bees wax to the screw as it turned. Squeaking disappeared, grinding stopped, and the entire movement was much smoother.
Seems I need to have made some updates much sooner, but this was just too cool to pass up... CNC music!
More music... 4 axis version. Something does not sound quite right... I think I need to check the A axis configs a bit. The max acceleration might be set a bit too low.