So if I were really really concerned about accuracy and limiting skips, i’d just run at lower feeds to reduce load on the steppers?
Yes, and take the hardness of the material into account too. Using open-loop steppers, which means motors that you send commands to but have no way to check whether they did what they were told, works because steppers are a type of motor that are relatively reliable in doing what they do – until their limits are exceed, which not only means force, but also speed limits.
The next step in reliability would be closed-loop steppers. They have an encoder (usually a glass disk with marks on it that are read by a photo sensor) that reports back every movement to the driver, so if the motor does not execute the steps they way the driver received them from the CNC controller, the driver can try to repeat them and catch up the position, and should this fail, will report an alarm to the CNC controller which can then stop the program.
The highest step towards performance would be servomotors. They are closed-loop too, but they are not stepper motors anymore, but usually normal AC or DC brushless motors. They are used in the industry for reasons of performance (i.e. speed and force). The disadvantage of stepper motors, both open-loop and closed-loop, is that their torque decreases sharply with increasing speed.
But the servomotors need much more sophisticated control algorithms than stepper motors which have built-in output steps.
Skipping steps is the last of many reasons I’ve ruined expensive (and after getting smart making prototypes first) and cheap material. As for a comment of just reducing feeds and speeds as a cure, I’ve ruined material by going to slow and burning it. There are lots of reasons I’ve ruined material and bits.
That said and to get back to skipped steps, a couple of times it’s because I left a clamp on the table that got caught between the x gantry block and y foot. The only time I skipped steps cutting were when I did not cut square ends on cherry. The slope of the side meant a full width bit cut at bit width depth of cut stalled my little makita. That caused a brief stall and skipped steps.
In my mind, a huge benefit of closed loop is being able to return to exactly the same spot between restarts, power loss, over night shut downs, etc. probe xy once on a job and have precise repeatability.
I think it is a little overkill for the new Elite series machines needing to use closed loop steppers. If this was such a serious issue with stepper motors skipping steps all the time, on either belt or lead/ball screw machines, then every manufacturer of CNC, upright mills and lathes would be using them, and all of their advertisements would for sure make them a bullet point.
Depends on what you’re doing.
Had I known better, I would have sought out closed-loop stepper CNCs. As Mitch said, the repeatability is such a big deal that had I known better I would never have chosen the product I did (J-man X-50). As it is, I’m left improvising/adapting and spending the priceless commodity I hate spending most: time. I’d much rather just have bought once and cried once.
As for your point on marketing…sheesh I could critique that in soooo many ways (Lowest Common Denominator mentality, propagandizing to make the sale, one size fits all, etc., etc., etc.).
Don’t get me wrong, I’m glad I didn’t get a belt model CNC…I just didn’t know what I didn’t know for my intended use case. The shut down/start up repeatability alone is reason enough to never use open-loop steppers. Ever.
My opinion only…worth what you paid for it.
the shut down/start up repeatibility is not provided by the closed-loop steppers, but by
- a good homing repeatability, and also by
- a Controller that is able to let you continue a program that was paused even after a shut down and new start up.
To have an acceptable position repeatability, you need reliable homing repeatability.
The Buildbotics-derived Onefinity controller (as found on the Classical Series) uses “stall homing” to detect that the carriages on the axes have reached their home position, which is made possible by the stall detection capability of the TI DRV8711 stepper drivers that are inside the Onefinity and the Buildbotics Controllers. This means that the Onefinity CNC machine does not have sensors to detect that the motors have brought the carriages to their end position, but instead uses stall homing, which works this way: The Controller allows the motors to continue running even though they have already reached the end and they cannot move any further at all. The stall detection now works in such a way that when a stepper motor turns, it also acts as a current generator. This is called electromotive force. In the tiny pause where the stepper motor is not getting current from the controller’s step commands, the TI stepper driver measures the current generated by the motor through electromotive force. So as long as the motor is turning, such a current is coming, and when the motor hit the end of the travel and stalls, then this current generated by the motor stops, and the TI stepper driver this way detects that the motor is obviously no longer turning. This is stall detection, and this is the way stall homing works.
This corresponds to the philosophy of the Onefinity CNC to allow customers a low-threshold entry into the CNC, which among other things happens through a low price that is achieved by saving on some things.
The problem is, the process of stall homing is inaccurate, and that is why the so called homing repeatability is bad. First, it is inaccurate by principle, because it is a very indirect detection of the position of the axis carriage, and therefore the homing position is never exactly the same, and second, wood dust accumulates on the tubes, which is compressed with each homing operation, and so also changes the homing position over time (note that a simple coupling nut as suggested by Bill can circumvent the latter effect).
The good thing is, the Onefinity and Buildbotics allow limit sensors to be retrofitted like found on more professional CNC machines. There are connectors for them in the 25-pin I/O port and they are enabled on the Motors page. The best technology to use for this are inductive proximity sensors. It would look like this:
Here a user reports how excellent the homing repeatability is improved by retrofitting limit sensors.
This has nothing to do with open or closed loop steppers. The only thing closed loop steppers do is report back to the controller that it did in fact rotate the certain amount it was just told to. That’s it. And if the controller does not hear back from the stepper that it rotated the amount it was just instructed to, the controller attempts (emphasis on attempts) to correct for this on the fly. As @Aiph5u mentioned, the use of homing sensors will affect this homing process more than anything else as stall detection homing (a.k.a. “Stall Guard” or Sensorless Homing) is less accurate by about a factor of 10.
Coming from years of 3D printing, I am very familiar with extremely precise motion systems. The devices with the most accuracy, precision, and lowest standard deviation are the non-mechanical capacitive or inductive probes (with the inductive probes being better IMO) instead of physical mechanical switches. For bed leveling, I use an inductive probe almost identical to the one the Elite series uses for homing and mine is consistently accurate down to .002mm (.0001"). For homing the printer, I use simple mechanical switches which are more than acceptable at around .005 to .01mm resolution.
Lastly, most if not all of us are primarily working with wood. As far as I know, reliably and repeatably cutting wood down to a few thou (much less ten-thou) precision is simply not possible and not needed. This is why I don’t move the workpiece or turn off the machine if I have to come back to and go over something after waiting for some epoxy to dry. Also, as others have mentioned, backlash and slop in ALL CNC motion systems is going to be more of an issue to consider.
Completely familiar with EMF, right-hand rule, etc (even though it’s been years since EE101).
I would have thought the closed-loop stepper motors would’ve improved stall homing simply because the controller would realize and compensate back to the zero bound (rather than the stall homing I see that backs it off ~1mm from the perceived stall point).
I’m pursuing limit sensors next.
Closed loop and stall homing would likely be enough accuracy to do what I was talking about. Look at what we do with 1F-provided RS274/NGC code and their zero-block when we touch XYZ Zero and do that routine.
All I know is that I’ve already noticed how inaccurate the repeatability is. I’d be more than happy with being able to just tile a 4x8 (or 8x4 ) on a repeatable basis.
So far, so bad.
Adding proximity sensors to the Onefinity with the default controller was the best upgrade I did to mine, it enabled me to rehome the machine and apply work offsets precisely. X and Y for sure, Z is not as useful since tool changes affect the tool length and will require probing the Z height again. Adding the sensors was a slippery slope as it then enabled me to more easily go to a Masso controller which was the second best upgrade to the machine.
FWIW I spent about a month running on LinuxCNC between the BB controller and the Masso, it worked well but required a lot of fussing to get it working properly. Since I’m not the only person operating the OF it can’t remain a science experiment. I was looking for a low cost option which it was for me, I have a nearly unlimited supply of old computers from work along with a purchasing a Mesa card that cost about $150.
As far as missed steps with the default setup, I performed some testing when I first bought my OF with the default OF controller by having it move corner to corner hundreds of cycles at varying feed rates and at the end was still within .002" for me. That being said the weak point in the default setup are the molex connectors in the stepper motor wiring which over time through repeated movement could lead to poor connection and lost steps. Each stepper motor loop has 3 of these connections in it. If you find lost steps is an issue for you and want to squeeze all you can out of the default setup without breaking the bank to go new controller and closed loop I’d look at replacing the default wiring with shielded wiring and better/fewer connection points. (After you OEM warranty expires of course )
@ SurfinGump, That’s an excellent point!
Thanks everyone for the feedback. I’m not hugely concerned about having to restart a process due to a power loss or anything that wastes a bit of time. And I worked as a CNC operator in a mold shop for a few years, so I am well versed in tool and work offsets and correct setup for repeatability.
The only new variable I am trying to quantify is stepper loss and machine precision issues (obviously not a concern on $100K+ machines lol). Sounds like a “Classical” machine with a stiffy, spindle, and homing sensor upgrade (probably still less cost than the Elite) with all the correct feeds and speeds should get me to the level of precision I need.
Has anyone done the calculation of what a missed motor step works out to in the X, Y, and Z?
Ooooh, that’s a good question! But…how would you know how many steps have been missed?
…especially if the stepper drivers support microsteps
X axis > 10 mm lead ball screw > 200 steps per revolution (no microstep) > 20 steps(pulses)/mm
= 0.05 mm per step
Some articles suggest mechanical resolution of typical stepper to be +/- 5% non cumulative position error
so for a typical 1.8 degree stepper that is 0.18 degree error range - that would equal ~ 10 microsteps, and any more would not yield greater accuracy but would reduce the per step torque
Since most drives have 8 or 16 microstep options, lets pick 16
X axis > 10 mm lead ball screw > 3200 steps per revolution(200X16) > 320 steps(pulses)/mm
= 0.003125 mm per step
I have no idea how many steps are lost when the conditions cause it to happen - too many variables - but you can pick a number and see from the above calculations the result.
One thing you can do, if you control your own electronics, is increase the voltage used by choosing a more robust PSU. This would help at higher RPMs especially.
Sorry! We had the same idea
lol yeah, but you did it better
Just saying @Festdewalkita, I know someone looking for a J-man X-50 if you ever want to get rid of it… XD
I’m curious, what brand and/or type of sensors you used? Also, how you mounted them, and what you are pointing them at for triggering would be useful.
here you can see how different materials trigger the inductive proximity sensor Omron E2B which was available at my local CNC equipment supplier.
Some people also use microswitches but I would always prefer using inductive proximity sensors because the contacts will not wear out or attract dust.
The problem to solve anyway is how to attach them. As far as I know, everybody I know used 3D-printed parts, as Tom @TMToronto did as shown above. Thankfully Tom published the 3D files in this thread! An alternative would be milling them out of wood using a CNC (less plastic).
The ones I used are no longer available but were similar to these:
I specifically used a normally closed setup so if there was ever a failure of the wiring it would cause the machine to stop rather than crash into the end stops. Because they required 12-36v and the Onefinity controller operates at 3.3v I initially used a relay board I had between them but eventually moved to an optoisolator once I could get one to avoid the mechanical nature of a relay - both methods proved to be equally as accurate. Under normal operation the relay would be held closed by the normally closed proximity sensor and would open during the homing cycle which would break the circuit on the 3.3v side to the DB25 breakout board.
The basics of the mount looked like this, note the metal screw in the plate for the proximity sensor to detect. I can dig up the stl file for the mount, same one works on X and Y. I don’t have one for the Z, that was more “custom” and not something I’m proud of but it works