Touching off easily
A new drive
Recently, I bought a spindle upgrade. I now switched to a 3-phase induction motor with forced air cooling that requires a Variable Frequency Drive so I can set different speeds. The system takes the same analogue 0-10V signal as my previous motor. For the numerical controller it looks the same with one exception: The VFD can now create an emergency stop signal if something goes wrong.
As you can imagine, the new spindle subsystem is by far more complex than the old one. I had to buy, wire, and setup a dedicated electric control box.
So why testing?
With higher complexity comes higher risk of failure. There are more electrical and mechanical parts involved that each can behave incorrectly or even be destroyed if connected improperly. As I am just a human being who makes mistakes, I’d better not jump in at the deep end. So, while wiring everything up, I wondered how such a system should be systematically tested.
I borrowed the different test scopes from my job in the software industry. I think they fit in quite well:
- Unit: Test that verifies behavior of a component of the system in isolation. All external influences are removed or mocked away. Example: Check if the blower turns if supplied with its nominal voltage.
- Integration: These tests integrate different components that provide a common functionality. Example: Verify that spindle cooling works with delayed shutdown.
- Subsystem: Test that verifies the correct interaction of all components within a subsystem. Example: The spindle speed changes when feeding the analogue input of the VFD with different voltages.
- System (End2End): Tests that verify a system from the end-user perspective. Example: When pressing the emergency off switch of the CNC, does the VFD bring the spindle to a halt safely?
From my experience, it makes sense to perform tests at the earliest possible point in time. After the spindle was delivered, I was able to check right away whether all bearings were smooth-running, if the fan would turn when voltage was applied, and see whether the motor windings were within expected resistance range, and so on. I could do these unit-level tests even before I started building or wiring the control box.
Unit test: Spindle cooling fan
This might save a lot of troubleshooting when something doesn’t seem to work correctly during comissioning. And if you find something this early, you can directly get in touch with the manufacturer of the affected component to request an exchange while not being blocked on the other end.
The four levels of testing are my verification strategy here. I try to have many simple and quick early test on unit level, and just a few complex system tests that each involve a multitude of preparation and test steps, being executed just once upon initial startup when the build is complete.
When you look at the concept of the test pyramid that is used a lot in software testing, it may be applicable for hardware tests as well to some extent, maybe with a different number of layers and varying names for the levels of integration.
I don’t usually write test plans for hobby projects because the systems I design are rarely as complex as this. Plus, most of them do not require dangerous voltages to operate unlike this one.
To better visualize the system, I drew a layout of all components with the most important inputs and outputs.
From that image, I derived a test plan. I tried to cover each component’s interactions with each other, ending up in more unit than system test cases.
Unit test: Supply +24V rail OK
Here I checked whether the cooling fan power supply operates correctly.
Unit test: Time delay setting OK
With this test I verify that the cooling fan relay configuration and activation work as expected. For the purpose of this test, I selected shorter delay times than in the later application.
Integration test: VFD initial operation
The variable frequency drive is able to turn the spindle in the correct direction of rotation at different speeds.
Of course, there were many more hardware-based tests that I didn’t mention in the above plan. Things like is the spindle correctly aligned to the Z-axis? Have I fastened all clamps with the appopriate torque? Are all connectors inserted and locked?
Before trying to run through material on the CNC I performed all the tests and actually found one issue on the system level: I had a pinning error in the spindle speed analogue output of the numerical controller’s signal harness so that the spindle motor system wouldn’t start despite the run signal being present.
This just took minutes to figure out because I had subsystem-tested the VFD before (Test case: “Reacts to speed command”), knowing that it cannot be the culprit.
In case you plan on adding a VFD-controlled spindle motor to your machine, please find my full test plan below.
But please take this plan with a grain of salt and note the usual disclaimer:
⚠️ Risk of electric shock. ⚠️
This kind of system should only be built or worked on by professionals. Especially avoid touching live parts or VFD components before the VFD’s bleeder resistors have had enough time to discharge the intermediate circuit’s bulk capacitors.
Strategy and how to
engrave and cut
the struggle to successful builds
Faster Engrave Algo
for CNC: Decision aid
Decision aid, Pros & Cons
3D signs - tutorial
Job preparation and quick demo
of an audio amplifier
From investigation to problem solution
From Pixel to Vector graphics
Symptoms of insufficient spindle power
Beginner CNC issue: Speeds/Feeds
Automatic Z-referencing, Tool length, Tool changes
EdingCNC Settings & Variables
Software/Hardware setup & kinematics
Assembling Sorotec’s Basicline 0607
Switch box setup
Entry-point and questions
Circuit & Application examples
USB-PD power supply explained
Can I use a Metabo/CAS battery for my system?
How to set protective voltage & current limits
Current inrush limiters explained
Electronics knowledge: TVS diodes
Or how to kill your circuits
How to properly talk to VideoLan’s VLC player
Prototype build, issues, improvement ideas for Revision2
How To: First steps with FreeCAD
Professionalizing circuits for AnywhereAmps
AnywhereAmp Alpha’s simple single-supply preamp
Design, folding, stability, amplifiers
Evolving the mobile, foldable instrument combo
Fix ‘ERROR: favicon not found’
Export the instructions from Markdown to PDF! but how?
Why some images display OK locally but won’t on Github
How to make ToC sticky
How to solve issues with disappearing posts
Configure: landing page’s header image, Navigation