Posted on

CNC Router Max Speed and Acceleration Testing

Once the main core of the electronics were installed and working, it was time to test and tune the speed and acceleration values.

First, the acceleration is set to a low value (750 mm/sec/sec) and then speed is gradually increased, testing each axis individually and also in concert with the others until the motors start stalling or missing steps. Another item that might limit max speed is if the ball screws start whipping.

With the Leadshine AM822 drivers, if the motors stall or lose steps the drive will set a fault and stop motion immediately. That makes it easy to detect when there is an issue and quickly find the maximum speeds.

In this case, the maximum speed on a single axis was 40000 mm/min or 1575 inches/minute (ipm). It was slightly less when driving X and Y together: 38000 mm/min (1500 ipm). 

Here’s a quick video showing this maximum speed, which was achieved not only using a Raspberry Pi to control the machine, but operating the Pi wirelessly over remote desktop from a laptop computer. It’s possible it would have run faster with a NUC computer running LinuxCNC.

The next step in tuning is to slow the speed down to around 50-75% of the maximum and then find the maximum acceleration that can be used without faulting the drives.

The operational limits for maximum velocity and acceleration will be set significantly below the maximum to leave a safety buffer. On a machine this size, there is no need to ever go faster than 500-750 ipm for rapid moves. Most cutting feed rates will be under 350 inches per minute, based on the recommended cutting speed and chip loads for the material and tool being used.

Posted on

2.2 kW Spindle Upgrade

Along with the electronics upgrade, a 2.2 kW Huanyang VFD and water cooled spindle has been installed in place of the previous DeWalt routers I had been using (both the DW618 and DWP611). The VFD is connected to LinuxCNC to enable it to be controlled automatically by the G code when files are run on the machine.

I’ve read many (sometimes conflicting) opinions about water cooled vs air cooled and 110 vac vs 220 vac spindle motors. So, going forward I will be testing each of the above for myself.

I’m starting with the Huanyang HY series VFD. This specific model is for 110 vac input and 110 vac 3 phase output. The spindle is a 2.2 kW 110 vac 3 phase 400 Hz motor with water cooling. The cooling pump is a submersible aquarium style pump that is being controlled from LinuxCNC to automatically turn on and off when needed.

I tested out two methods of controlling the VFD. The first method is using the Mesa 7i76e, which has a dedicated terminal block for analog spindle control. The second method is RS-485 control direct from the PC to VFD.

All the details are documented in an article on controlling a Huanyang VFD and spindle from Linux CNC 2.8.

Posted on

LinuxCNC Setup and Connecting I/O

After getting the Raspberry Pi 4 running with LinuxCNC and talking to the Mesa 7i76e board, it was time to wire up the inputs and outputs and configure LinuxCNC for them.

I added disconnects to all the wiring coming from the CNC machine. These will mate with either the new electronics box or the previous Gecko G540 and PC setup. Then I ran wiring internally from the electronics box disconnects to the Mesa 7i76e inputs and outputs. I am documenting all of the connections and will publish it soon.

I am currently using inputs for combination home/limit switches on each axis and the emergency stop switch. Outputs are setup for controlling compressed air and the solid state laser. Compressed air is used for laser assist, chip evacuation, and mist coolant. More inputs and outputs will be wired up later.

For now, I’ve written up the steps I took to configure LinuxCNC 2.8 for the Torsion CNC Router, using Leadshine Drivers and Mesa 7i76e board.

Posted on

Laser Installed for Engraving and Cutting

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.

Posted on

Emergency Stop Switch Installed

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.

cnc e-stop switch

Posted on

DWP611 Dust Shoe Prototype

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.

DWP611 CNC Dust Shoe Rendering

DWP611 CNC Dust Shoe Top View

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.

Posted on

New Mount for DeWalt DW618 router

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.
DW618 Router and mount

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.

Posted on

Workholding and First Cuts

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:

Workholding T-tracks

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.

Posted on

Added Spoilboard and First Video!

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.

 

Posted on

First Time Running the CNC Router

Now that the machine is fully assembled, I could connect all the wiring, power up the machine, and drive it around a bit!

Complete DIY CNC Router

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.