I finally got around to connecting a touch-off plate and setting up LinuxCNC with a probe screen and a Z touch-off button.
Until now, I’ve always set up the workpiece coordinates on the machine manually. I usually used the “piece of paper method”, jogging the tool to the edges of the stock and sliding a piece of paper between the tool and the stock. Then I would click the Touch Off button and enter the proper offset to where the center point of my cutting tool was.
A probe routine can be used to detect the X, Y, and Z zero coordinates after you mount a part or piece of raw stock material on the CNC router bed. This sets the work offsets (e.g. G54) so the machine knows where the part is mounted on the bed and can command all the moves in the G code program relative to the zero point of the part, as was defined in the CAM programming.
This electronics box was designed to accommodate the electronics components used for the recent upgrade. In the past, there was no electronics cabinet used. All of the components were just sitting on a shelf below the CNC router and all of the wiring was run directly from the machine to each component. With this new setup, there are disconnects on all of the wiring to allow easier service and upgrades to components.
The box layout was designed to separate the signal wiring and power wiring to minimize electromagnetic interference (EMI). The VFD is kept outside of the cabinet since it is a major EMI producer and I want easy access in case I would like to control it manually. All of the I/O and stepper signal wiring is on the top part of the enclosure, and exits the box through the top group of connectors. The power wiring and supplies are all located in the bottom part of the enclosure and run through the lower group of connectors. There is a buffer of more than 4 inches (10 cm) between signal and power wiring.
The layout also accounts for cooling and airflow. Cool air enters through a filter at the bottom of the front panel. Heat will rise off the heat sinks on the motor drivers, generating vertical airflow, leading to the exhaust fan that pulls air out of the top of the rear panel. The box will stand up in a vertical orientation.
The carbon fiber was made in-house, then the panels were machined with the Torsion CNC router, including engraving the text and graphics on the back panel.
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.
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.
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.