Now that the machine is fully assembled, I could connect all the wiring, power up the machine, and drive it around a bit!
I didn’t mention in prior posts, but in between other steps while waiting for glue and/or epoxy to dry I worked on the electronics. I soldered together the serial connectors and resistors for the steppers, wired up the power supply, then connected everything to the Gecko G540 and an old PC. I installed Linux CNC on the PC and ran through the setup wizard. I was able to run the steppers and test everything out on the bench before they were installed on the router.
I started the machine checkout by driving each axis back and forth manually, checking the travel to ensure the actual travel matched the commanded distance. It did not match at first and I believe had to go back and change the microstep settings. With the distance corrected, I slowly increased speed and nervously continued to drive each axis back and forth, faster and faster. I homed each axis and set up conservative soft limits so I wouldn’t accidentally run the machine off the end of an axis. Everything looked good, and I was able to get up to the maximum speed, as limited by Linux CNC, based on the conservative latency settings I had entered. This was about 12500 mm/min or about 500 ipm. I may try increasing the maximum step rate settings (lowering my conservative jitter setting), but for now this is plenty fast. Per my design calculations, it should be able to run significantly faster.
With everything working well in manual mode, I loaded one of the sample files that came in Linux CNC and ran some test “cuts” through the air. First 2D, then some 3D profiling. That was really exciting to see the machine running around for the first time on its own! I had to call my wife out to the workshop to watch it with me, and lucky for me, she was equally excited to see it finally running!
My first “real” test was to install a pencil in the router collet and manually draw a square on a piece of paper, using the built-in set-distance jogs. I measured the sides of the square and compared the cross corner measurements to check accuracy and squareness of the machine. The distances looked dead on, but the squareness may be out by a few thousandths. I’ll have to make some proper cuts to be able to measure it more accurately.
Before I make any cuts, I want to install drag chains, a dust boot, the e-stop switch and perhaps some limit switches.
The stepper/ball screw/support assemblies were ready to be attached to the machine. I used some K clamps across the width of the machine to use as supports to lay the assemblies on while I worked on aligning them properly.
First, I determined the front-back positioning. Moving the gantry to one end of travel, and the ball nut to the same end of its travel, I aligned the center of the ball nut coupler with the center point between the X linear bearing blocks. Then I clamped the assembly in place on that end. Moving the gantry and ball nut to the other end of their travel, I aligned the ball nut coupler with the center of the linear bearing blocks and measured the extra travel available on the ball screw. I split this measurement in half to allow equal space on both ends. I readjusted the position accordingly on both ends and clamped in place again.
To get the vertical alignment correct, I mounted the wooden piece to the ball nut coupler that would attach to the gantry. I moved one end up to the gantry, readjusting the k-clamp to set the new height, re-clamped the assembly, and then moved the ball nut and gantry back to the other end and repeated.
With everything in place and aligned, I unclamped one end at a time, applied wood glue, and re-clamped.
I then repeated the whole process for the second X axis drive assembly on the other side of the machine. After the glue was dry and I reconfirmed the alignment was still correct, I glued the pieces in place that attach the ball nut couplers to the gantry.
With the gantry mounted and the rails bonded in place, I was able to fine tune the X axis rail alignment. I loosened the linear bearings on one rail and attached a dial indicator to the gantry at that same end, reading to the reference edge of the profile rail. I ran the gantry back and forth to see how far out it was across the whole range of motion. Most of the rail was within +/- 0.001” parallel to the opposite rail. Toward the end there was a 6 inch section that was out by 8-10 thousandths. I loosened those rail mounting bolts and applied some pressure on the rail by hand to bring it back to zero before re-tightening the rail. After rechecking the whole rail it still needed some minor adjustments. After a few rounds of this I am happy with the straightness. Next up will be mounting the X axis drive assemblies.
After placing the linear guide blocks on the X rails, I placed the gantry on top of them and proceeded to align everything. I spent a lot of time aligning the X axis rails. This included making sure they were parallel with each other and also that they were perpendicular to the Y axis rails on the gantry. I clamped together a few 24” squares to get the rails parallel and then placed some 1-2-3 blocks on top of them to check that the Y axis rails were perpendicular. I clamped the rails in place as I went to keep the alignment correct. Once I was happy with everything, I marked out where the linear bearings should be mounted to the gantry. I drilled the gantry and mounted the linear bearings, then installed the gantry on the rails again. I forgot to mention that I had previously found the balance point of the gantry using a thin piece of wood running the long way under the gantry. I marked that balance point on the base of the gantry on both ends and that became the center point between the two linear bearings.
The alignment was double and triple checked prior to bonding the rails in place with the System Three adhesive epoxy. I still have some adjustment available in the rails to make fine adjustments with a dial indicator. I had previously used a chemical etch on these pieces of bar stock, but the epoxy should be applied very soon after the etching to get a good bond. I had let too much time pass and since I am experimenting and learning here, I decided to use the “wipe down with acetone” method for this to evaluate how the bond holds up compared to the other axes where I used the etching and sanding methods.
After building the first side, I just repeated the operations for the second side. I had cut all the plywood at once in the beginning to make sure the dimensions were identical, using the same saw setup. Next step was to drill and tap all the holes in the aluminum bar stock for the long X rail mounts. I followed the same process as detailed earlier to make sure the rails were straight and aligned properly.
I made plywood stepper motor mounts and bearing support mounts, all from the same birch plywood stock that I’ve been using for everything on the machine. Here you can see the left and right sides of the frame, along with the rails placed on top. The ball screw assemblies are in the center, but they will be mounted to the outer portion of the frame sides.
Here is a picture of the completely assembled Z axis attached to the Y axis. The only parts missing are the linear bearings that will be mounted to the bottom of the gantry.
It’s looking like a CNC machine!
With the Z and Y Axis components almost complete, I couldn’t wait to get the X frame components built up. I cut all the plywood pieces on the tablesaw, then figured out what angle to cut out the MDF webs. Once I made one that fit well, I used the waste piece with a stop on my cross cut sled to quickly cut out the rest of the webs:
I assembled these in place on the machine base and once again glued everything up and used a lot of clamps. The waste pieces from the MDF webs came in handy again to make a squared up clamping surface.
The next bit of progress on the machine was back to working on completing the Z and Y axis components. I spent some time in Fusion 360 learning to create drawings from the components in my model. This allowed me to print out a scale drawing to use as a template for quickly and accurately placing all of the holes in the following part. An 8.5″ x 11″ sheet of paper just fit all the holes for this piece.
In order to get the ball nut coupler to be flush with the Y carriage, I used a router table and a hand chisel to lower the plywood carriage slightly:
The final task on this part was to make the Z stepper mount out of plywood. I glued it together and clamped it to dry overnight.
Although I left enough space for the epoxy to form a meniscus at the edges, I decided I wanted to get the rails right up to the edges, per the original design. I used a shoulder plane while the epoxy was only partially hardened and it planed down beautifully to remove the meniscus along the outer edges. After the leveling epoxy was completely cured I bonded the aluminum rail mounts (with rails still installed) into place on the gantry, using an adhesive epoxy. I think I forgot to mention earlier during the Z Axis buildup, that all the aluminum bar stock was chemically etched prior to epoxying them to the plywood, in order to get the best bond. On one set of rails, I sanded the bonding surface with 120 grit prior to etching; another recommended method for better bonds. I’ll see how each method holds up and perhaps do some more formal testing of different bonding methods in the future.
To help align the rails, I placed identical length aluminum bar stock in between the rails at each end, where the ball screw supports will be mounted. Then I built part of the Y carriage and installed it on the rails, to hold them in alignment at the center.
Once the epoxy cured I put a dial indicator on one set of guide bearings and measured the error all along the length of the opposite rail. I loosened one to three rail mount screws at a time and made fine adjustments to the rail until I had no more than +/- 0.0005” error throughout the full length.
With the epoxy leveling complete on the gantry face, it was time to prepare the Y Axis profile rails and their aluminum bar stock mounts.
When I had mounted the Z Axis rails, I clamped the rails against a straight edge and then used an automatic center punch to mark all the hole positions on the aluminum bar stock. Then I removed the rail and drilled all the holes on the drill press. That turned out to be less than ideal since the center punch was smaller in diameter than the rail mount holes and I wasn’t perfectly centered with each hole. Luckily there was enough play around the M4 screws to correct these minor errors, but I needed a better method for the Y Axis.
Again, I clamped a straight edge against the registration surface on the side of the profile rail, then aligned that with the aluminum bar stock and clamped the bar stock together with the rail. Rather than using the small diameter spring-loaded center punch to mark each hole, I found a drill bit that exactly matched the diameter of the holes in the profile rail. I inserted this bit in each hole and gave it a good tap with a hammer, leaving a mark at the center of each hole. This allowed me to drill all the holes more accurately at the drill press. I still ended up with some slight errors from my less than perfect alignment of the drill bit with the marks on the bar stock. For the second Y axis rail I tried yet another method…third time is a charm!
Leaving the rail/bar assembly clamped together, I brought the whole assembly to the drill press. I aligned the first hole on one end with the drill bit and could easily see when it was centered. I drilled the first hole, then tapped it and put a screw in. Next I drilled and tapped the hole on the opposite end and put a screw in. Followed up with one in the center, gradually removing clamps as I went. Now I could drill all the holes without having to mark anything. This method was much faster and more accurate as well. With the holes drilled and the rail still attached, the rail acted as a guide for the tap to ensure it was vertical. The tapping operation went much faster this way as well.
I didn’t take a lot of pictures of this whole process, but here are a few shots of the work and progress:
Rails laid in place on the gantry for fit check:
After planing the gantry, I realized that the front face, where I intended to mount the Y axis rails, is no longer perpendicular to the base. Since I was planning on using epoxy for the rail mounts anyway, I figured I could just use epoxy for leveling the front side of the gantry.
With the gantry on its back, I made sure the gantry bottom was perpendicular to the machine base, since that is where the X Axis bearing guides will be mounted. To minimize the use of expensive epoxy, I made a dam out of 1/2″ plywood covered with blue painters tape, which releases easily from epoxy, then sealed at the edges with clay. This dam allows the epoxy to flow only to the areas where the rail mounts and the ball screw bearing support mounts will sit for the Y-axis, with extra room allowed for the meniscus of the epoxy at all edges.
Once the epoxy was mixed with hardener, I poured a small amount into another container and mixed in a little acetone to thin it out. I didn’t want to thin the whole batch because acetone can change the strength properties of the cured epoxy. I poured the non-thinned epoxy throughout the area and let it settle for a few minutes, and then poured the thinned epoxy over the top to achieve a very flat surface.
Remember, all of this work is driven by the fact that I didn’t start with a perfectly flat work surface. If the gantry had been properly square, I would have just attached my rail mounts and bearing supports directly to the wood face of the gantry. However, it is a good learning experience and I’m glad to have been able to test out the epoxy leveling method in case I want to use it for my next machine.