After a lot of research, I chose a NUBM44 6W 450nm solid state laser. I was debating whether to use lower powered lasers that could produce a finer beam, but I wanted to try the higher power in case it could cut thicker materials or work at faster speeds. So far, I am happy with the choice. I am getting an engraved line that is 0.5mm wide in wood. That is fine enough for the work I envision doing with it.
I purchased the laser, driver, and heatsink all as a package. The driver has two wires for the power supply, and it has an on/off control line, but there was no wire provided. I would have to solder a wire to the driver board, which is inaccessible since the board was bonded inside of the heatsink. If I were to do it again, I would order the driver separately or ask to have a lead added for the control line.
My workaround was to connect a 12 vdc relay between the power supply and the laser driver. I wired the coil to the 12 vdc supply and Output 1 of the G540, pin 5 of the breakout. The switch contacts of the relay control the 12 vdc supply to the laser driver. I’m using M62 and M65 to switch the laser on/off in the g-code.
Here’s a video of my first project with the laser.
I haven’t had a need yet for an e-Stop switch, but I figured I should go ahead and install it before the need arises! I’m still amazed at how quickly I can model a part, create the CAM setup, and then create the part on the CNC machine. It took less than an hour to model the bracket, create the CAM setup and toolpaths, and produce a g-code file to bring out to my machine, all with Fusion 360. I cut the bracket from some scrap 0.25” plywood and mounted the switch on the front of the machine. One side of the switch was wired to pin 10 on the Gecko G540 breakout and the other side connected to ground on the power supply.
With the spoilboard surfaced, it was finally time to make those parts for the dust shoe that I designed a while back. My design integrates an exhaust deflector, but rather than deflect it out into the surrounding air, it deflects the router exhaust into the vacuum. The thought being that the vacuum might improve cooling through the router, and the additional velocity of air could improve the suction around the end mill. I also incorporated a magnetic removable brush so that I can easily switch between different lengths depending on the length of end mill installed. A little cam lever was added to the side of the mount to enable activation of the spindle lock button to change bits without removing the whole dust shoe. This was the design concept.
Since I have no idea how well this dust shoe will perform, I’m making a prototype first to test it out. In order to save on cost, I split the parts up into two 0.5” high sections and one 0.75” section. I first tried to cut parts out of MDF, but it was too weak and some of the smaller details broke off during milling. The 0.5” parts are cut from 0.5″ HDPE sheet and were epoxied together after being cut out. The brush holder and the 0.75” thick section that clamps onto the router are made from wood since that is what was available around the shop here in the proper thicknesses. Epoxy was used to hold the magnets in place and to attach the brush. Here is a quick video of the build and test fit.
Before making any more parts, the spoilboard needed to be surfaced. In order to use the 1-3/4” surfacing bit with a ½” shank, a new mount was needed to allow use of the DeWalt DW618 router. I quickly modified the CAD model of the existing mount, created the CAM setups, and cut out some new mounts from some scrap 3/4” Oak plywood. It is so nice to have a machine to make parts on now! The drill press was used to make the holes for the clamping bolts.
With the DW618 mounted, I surfaced the spoilboard by finding the lowest spot and setting the Z height right at the surface. I turned the router on and then manually jogged it around to surface the area.
I came up with an idea for a simple way to quickly hold things in place on the bed of the machine. This should work for any size object that I want to work with, in any position on the bed. I attached 2 T-tracks to the bed, outside the working area. Then I made a sled with 90 degree corners with another T-track mounted on it. This will hopefully allow easy clamping of any size stock at any location on the bed. I plan to use a few different styles of clamps and/or stop blocks to attach to the t-tracks. It will be easier to show pics than try to describe the setup and the many options it will allow:
On the other end of the bed, I attached a T-track with some low-profile cam clamps, that wedge the spoil board in place. I will eventually mount this t-track to the longer tracks, similar to the image above.
While attempting my first cuts with the machine, I learned how much pulling force an upcut end mill has. I will need some clamps to hold down my spoilboards/fixtures. In addition to the material being pulled up towards the router during cutting, the wedges I used (only hand tight) vibrated loose and the stock moved during cutting.
Switching gears from the dust shoe components that I had planned to cut out, I modeled some clamps in Fusion 360 based on a few designs I had seen. Here is video I made showing the first successful project with this machine and the finished clamps that it produced! Still not having clamps for this operation, I hammered wedges in place to get them very tight and I also used longer screws to hold the stock down more securely. Everything worked out well.
I added a spoil board and am just finishing up a design for a dust shoe. I hope to cut the dust shoe parts out on the machine shortly.
I finally got around to uploading a video of the machine performing a run through the air. This was one of the example files that came pre-loaded with LinuxCNC. It is cutting a 3D profile of a penguin (the LinuxCNC logo). I didn’t change any settings or edit anything in the G-code, just ran the file as it was.
The workbench that I have the machine sitting on is pretty wobbly when the machine starts accelerating quickly, but the the machine itself is very solid.
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.