Wednesday, April 19, 2017

Finally a CNC machine

Honestly I don't enjoy the process of CNC-ing, it's a lot of computer work and setting up and waiting for it to cut. My full time job already has more computer hours than I enjoy. But I can't deny the importance of CNC in modern woodworking, and sometimes it can replace tedious repeated cuts and let you focus on the design part more.

I had some experience with CNC, in fact I converted a mini mill into a CNC mill before. The project itself was fun, but with a cutting envelop of about 8x10 inches, and a spindle of top speed at 2500 rpm, it's not suitable for woodworking, and I don't do much metal working at all. I sold it shortly after I build it.

I started planning a gantry style CNC years ago. This is going to be mainly for woodworking, can be also used for other materials, even soft metal. Here's my requirements:
- 4'x4' cutting capacity
- can cut wood, and plastic/composite.
- can cut aluminum
- user standard router as cutting tool
- easy to adjust/expend
- willing to fabricate component as long as it doesn't require a CNC
- fun to build

I first ruled out wood frame CNC, they are easy to build, but not rigid enough, and wood movement can be a problem. For metal framed CNC, use 80/20 like materials are pretty popular, amount them, CNCRouterParts are one of the most popular design/builds out there. it mostly use common available parts, and is pretty rigid. There are other builders that use CRP parts and design their own machines, Kronos robotics has a design called KRMx02 that use steel, aluminum and CRP parts and is much beefier than most other gantry style CNC and the cost is lower than CRP's own design.

I bought the design about two years ago, but not had a chance to build it. About a year ago, I bought all the metal rails needed to build the machine, and drilled/painted them. And since I don't have a place to put the machine, the project got pushed back.

Now I'm finding more and more need to use a CNC, either to do repeated cuts or experimenting design, I decided to clear out my shed in backyard and put it there.

Before I can clean out the shed, I need a place to put all the stuff that is in the shed. Mostly I put garden related stuff in the shed, fertilizer, garden tools, Christmas tree etc. The plan is to build a patio roof at the back of the shed and store garden related things there.

The wooden stand:
the footprint of the final machine is about 80x70, and weights a ton. I need to make some sort of stand for it. It needs to
- strong enough to hold the machine
- rigid enough so that when the machine is moving/cutting, it doesn't deflect. This is very important, when CNC is moving, the gantry is heavy, about 250lbs or so, and the the force on the stand is a lot, if the stand deflects, it will affect the precision of the machine.
- easy to level, the floor of the shed is not level, and I need to use the stand to level it.
- can be taken apart and put together, because I may decided to move the machine later.
- dampen the vibration of the machine

I settled on wooden stand, it's cheap, plenty strong and I plan to use bridle joint, so it should be rigid enough. Since it's a shop project, and rigidity is the main goal, I want to keep as much wood as possible. so I'm not going to plane and joint faces, and it turns out to be a big mistake. The dimension lumber, after dry changes so much, the thickness of the stock in my pile varies as much as 1/16, the gap in the final joint is huge, but after a lot of glue, it seems holding up just fine. I made each side of the frame separately and they are bolted together with leg bolts, so I can make them in the shop and transport them into the shed to assemble, and later on can be taken apart. Also the inside of the stand is wide open, I can add shelf later for lumber/material storage.

The main frame of the machine is build of 80/20 aluminum. This material is not cheap, fortunately I got five 3x3 beam from work for free, and those are exactly what I need for the table bed. I purchased the rest from 80/20 ebay store. I also ordered all the hardware like bolts, nuts etc online. When I got the delivery, I was shocked that the hardware was more than 20Kg.

The cut on the aluminum parts needs to be relatively square and clean. Aluminum are soft enough that I can cut them on my miter saw with a metal cutting blade on reduced speed. The result is surprisingly good, even on the solid 4x2 block.

It is very much like building an adult Lego toy, everything screw, bolt or click together. The process is very meditative and I really enjoy it. There are some glitch, since some hole I drilled does not align. I have hole that are off as much as 1/8 inch, but thanks for the design that have factored in the possible error that is inevitable drill by hand , I still able to put it together.

The two Y beams are one of the beefiest part of the build. Since they don't need to move like X beam does, they can be heavy. They are build from 3x6 80/20 profiles and raised by another 3 inches by two 3x3x1/4 angle iron sandwiching a 3 inch section of the 3x6 80/20. On top of the 3x6 beam is the CRS act as the rail for the bearings to ride on. The high Y beams means the X beam can be build low relative to the rail, so it maintains as much rigidity as possible. To square the Y beams, I adjusted it so the diagonal distance is the same.

The next day, I got the delivery from cncrouterparts. It's like Christmas morning for me, everything was well packaged and all parts are made with high quality and care. It was really a joy when that parts are well made and all the holes line up perfectly. I put together all the carriages that night, each carriage has 6 bearings, 3 on each end. The 3 bearings pull the carriages tight against the rail from top, bottom and side.

To adjust the carriage so it can slide along the rails without binding and play took me another night, given the imperfection on the rail, it's almost impossible to make all 24 bearings in contact with the rail yet still make it glide smoothly. It's perfectly acceptable that along the length, there's couple spot that 1 or 2 bearing lift from the rail, as long as there's no play.

The next step is the put in X beam, this is a step that is very straightforward on paper, but when you factor in the physical weight and the location it needs to go, a simple step like this does not turn out to be easy at all. The X beam assembly weights about 60Kg, with no additional hand, it's very difficult to raise the beam in place and line up the holes.

With all axis assembled, it's time to add step motor and it's driving parts. The machine's x and y are pretty long, and they use pinion/rack drive. The Z axis use 5 star ACME lead screw drive. These are all very easy to assemble and adjust.

The the main part of the physical machine built, moving on the the electric part of the build.

The computer box:
I want to build a dedicated computer for CNC use, so it needs to:
- not too expensive, I plan to use Linuxcnc, it's free, powerful and doesn't need Windows as a OS.
- fast enough to run cnc
- has parallel port. I plan to use direct parallel port control.
- quite and fanless, so it can survive the dusty environment of a shop.
I picked a Intel Atom based mini box, and installed a Linuxcnc on it.

The driver box:
This box will house all parts to drive and control the step motors and all the sensors from cnc:
- switch power for the step motor
- step motor drive
- relay for router control
- wiring for sensor input like limit switch, homing switch or touch-off plate etc
- estop
I found an old metal power supply unit, gutted it and it's perfect for my need.

At this point, the machine is runnable, I can drive it by simply connect all step motors to the driver and connect the driver to the computer with a parallel cable. But without limit switch, e-stop in place, this can be dangerous. With a wrong command, I can run the machine off the rail and make it crashing down even hurt someone. So as much as I want to see it move, I forced myself to move on to install the limit switch and e-stop. With all that in place, the machine finally ran for the first time. I made the limit switch double as homing switch, so the machine will automatic home and after that, soft limit switch works pretty well. The initial test was ran at 1000ipm, and it worked fine. I was very pleased with the result.

But before I can do any further test, I want to organize the cables so they can't get caught between pinion and rack. The most common way to do that is with a E-chain. My initial plan was to make the e-chain with this machine. But that will take a lot of time, and the price of the e-chain as gone down a lot, so I purchase some e-chain off Amazon instead.

Although the machine is moving, without a table, I can't properly attach the stock and cut anything. The plan calls for all 80/20 1030 extruded aluminum table, but that's really expensive, about $600, and also you need to lay down a sacrificial board anyway. I decide to use MDF, and to make it stiff, I used two layers, the base layer is a full sheet, and the top layer is 3 inch strips of MDF with aluminum track in between. That way the clamp will pull on the aluminum track which is not connected to the top layer MDF, so there'MDF hopefully will stay flat. I also used metal insert to attach the 3 inch MDF. so they can be replaced. To attach the table to the machine, I use carriage bolt and U bolt plate to clamp to the cross beam every 6 inches.

I did couple test cut after hook up all the cables, expect this step to be smooth sail, instead I got a lot of lock up and binding on Y axis. Given I also got some warning of computer latency, I naturally turn my attention to jitter, so I redo the latency test and change my interval from 30k to 50k, but this problem is still there. I than thought maybe the machine is not break-in, so the binding is mechanical, so I write a simple G-code to move the machine around each axis for an hours or so, then before I can finish the break-in code, I sometimes got limit switch error on joint1, that means the limit switch is triggered on Y axis. I was really puzzled, and spend almost a week debugging this. Finally I figured it out, when I swap the motor connect on Y axis to X, the X start to lock up, this narrowed the issue down to one of the driver port is having issue on the G540. After I replaced the G540 board, all issue solved. The mystery part of why the limit switch on Y is triggered still puzzles me, my theory is that when the Y axis is locking up, it sends a strong shock over the Y rail, that shakes the limit switch, and cause it to trip.

At this point, the machine build is finished, I still have couple things to upgrade before it's ready to make some parts, the top of the list is dust collection, this thing is dusty! But that is for a later article.

Tape holder

Emma loves doing crafts, and tape if a tool she use a lot. I always want to make a cute tape holder for her. I prototyped with some ...