Duet 2/3 for CNC vs other controllers
-
@DaBit thank you for an interesting reflection on what I assume has been your journey into low cost CNC and the motion control limitations and issues. There is an ongoing shift away from 'industrial' closed loop AC servo drives for light duty machines because of cost. We see Leadshine respond to that with various hybrids of stepper and servo. These are quite good ideas - combine the low cost of laminated pole stepper motors and the ability to avoid a backlash-inducing gearhead or reduction gearing, with refined drives and 4000 tic/rev position feedback. Add step/direction interfacing which still dominates the low end of CNC and automation. And provide local fault monitoring for overtemperature/rotor blocking/undervoltage. This avoids servo tuning, the cost of high bandwidth encoder counting/decoding at the motion controller (Duet card), resonance-free motion, class-leading cost/axis and (it is claimed by Leadshine) sometimes also faster settling times in point to point motion.
@dc42 If Duet 3 is headed into CNC motion control, the codebase will evolve over time, but D I/O optoisolation (via optional CNC-specific tool boards) and CNC compatible signal interfaces and - in time - axis position registers with 6 MHz input channel bandwidth will have to appear. If the ambition is to go beyond hobby-level machines.
What I'd like to see in the near term is a refined step/dir interface for CNC drives and +/- 10Vdc optoisolated D I/O, including example integrations of a few popular drives from Gecko, Leadshine and the like. Implementing this as a compact CAN connected 2-axis toolboard would be a good cost-containment strategy, not least because of the beneficial effect on wiring and connectorisation costs which are frequently substantial.
-
@Tony-Owens said in Duet 2/3 for CNC vs other controllers:
What I'd like to see in the near term is a refined step/dir interface for CNC drives and +/- 10Vdc optoisolated D I/O
Why 10V? All the external drivers I've seen say that 5V is sufficient. Are there higher end ones that need 10V? And don't these drivers all have optoisolators built into them already?
-
@dc42 said in Duet 2/3 for CNC vs other controllers:
@Tony-Owens said in Duet 2/3 for CNC vs other controllers:
What I'd like to see in the near term is a refined step/dir interface for CNC drives and +/- 10Vdc optoisolated D I/O
Why 10V? All the external drivers I've seen say that 5V is sufficient. Are there higher end ones that need 10V? And don't these drivers all have optoisolators built into them already?
I'm driving Gecko with 3.3V. They are driving Nema23s at 70V
-
@DaBit thank you for an interesting reflection on what I assume has been your journey into low cost CNC and the motion control limitations and issues.
Personally I converted a BF20 (G0704) mill to CNC, designed and built my own CNC-mill, converted an Emco lathe to CNC and designed&built my 3D printer. On top of that I have helped out many people with machines varying in size, 'professional-ness' and control.
I started out with LinuxCNC, and sticked with it. The flexibility offered to make things work the way I want them to work is unparallelled. The 'smart PC, dumb hardware' concept is powerful, especially when combined with the ease of LinuxCNC HAL.
On my CNC-machine I am running a mix of -10..10V analog servo's and steppers, 1um resolution linear scales for compensation of positioning errors and a Danfoss VLT5008 inverter controlled over RS485, a small compensation for the angle between Z and Y not being exactly 90 degrees, etcetera. No way I could have done all that with Mach3/4, EdingCNC, PlanetCNC, or Duet.
User interface is a second thing. In LinuxCNC it is very easy to add a panel for control of your vision camera, probe, flux capacitor, whatever.
There is an ongoing shift away from 'industrial' closed loop AC servo drives for light duty machines because of cost. We see Leadshine respond to that with various hybrids of stepper and servo. These are quite good ideas - combine the low cost of laminated pole stepper motors and the ability to avoid a backlash-inducing gearhead or reduction gearing, with refined drives and 4000 tic/rev position feedback. Add step/direction interfacing which still dominates the low end of CNC and automation.
My personal opinion is that step/dir is a less than optimal choice for servo control. A servo driven by step/dir is always running with a positioning error since it is always behind. A missed step (no communication channel is error-free) is never corrected. Actually, the control has no idea at all what the actuators are doing.
With my (analog-driven, torque-mode) servo's I can feed-forward acceleration and speed. The trajectory planner knows that it wants to accelerate or decelerate an axis, which can be translated into an instantaneous request for extra torque. Makes accurately following the programmed path so much easier. Keeping the stepper-driven Z position synchronous with the servo-driven XY within 10um was a royal pain in the ass; stepper motors need to build up a load angle for a given torque, and you cannot send a multi-MHz stepping pulse train into the average drive to quickly build up load angle.
Closed-loop steppers (those were not available at that time anyway) do not solve this; many of them function as open-loop drives as long as the positioning error is smaller than 2 steps or so. -
@dc42 You are right David. I was thinking about analog industrial DAQ signal levels for some reason, not digital signals. Automation digital I/O signals were traditionally 24Vdc PNP in Europe, designed to interface to current-sinking controllers (tool board or Duet), because 24Vdc is the common power supply for most low voltage control gear.
I know that CMOS has pushed down the required logic levels of I/O signalling in some equipment.
In any case, what would be best would be to:- avoid the need for voltage level-shifting by the user of the tool board
- provide I/O protection (of the controller, not the driver)
- avoid the need for providing filtration or snubbing capacitors etc
- to stick with the bootlace ferrules and screw terminals that are still common for field wiring in the industrial controls industry.
Obviously what I'm getting at here is the difference in mentality around issues of reliability and availability in the CNC and automation world compared with consumtronics gear. In a situation where a machine is 'printing money' for the user, installation and maintenance has to be slight and slick!
-
@DaBit Your comments about the limitations of open-loop drives of whatever sort, and the consequences of a mis-sent step (EMI/RFI?) are absolutely true and limit what cheap CNC/automation systems can do. Proper servo's are obviously more ideal in highly dynamic applications. But they have a cost and complexity premium, and for a large class of apps are unnecessary.
I'm very impressed at the range of machine projects you have been involved with. When it comes to flexibility and capability I'm sure LinuxCNC is the best approach short of high end motion controllers (Trio, Galil, Delta Tau) and proprietary CNC packaged systems from Siemens and Fanuc -
If you are going to use external motor drives of whatever sort I don't see much benefit in using a Duet. Duet cannot interface things as inverter drives and 24VDC-fed proximity switches conveniently, and it lacks serious EMI protection on the inputs.
A $200 Mesa 7i76E is a very capable and robust I/O board for use with LinuxCNC and step/dir drives, Eding/UCCNC/PlanetCNC/Mach3/Mach4 hardware is priced similar or less. Hard to compete with that, and the software is designed from day one to control CNC machines.
Sure, those need a PC to run, but you need one to run a Duet also. CNC-machining is a bit more work than level bed-load filament-preheat-print. Which is the exact reason why I am quite happy with my 3D printer; so little work to create a part.As an all-in-one package for the lower end CNC-mills it is useful, although I don't think that DWC is the most ideal UI and there is still no convenient connection to a motor speed regulator or inverter.
In that case, you can pick the surrounding components so they work well with Duet. Use 3d-printer endswitches and probes instead of the usual 24V stuff, for example. In that case, not much need for additional 24V-capable I/O and 0-10V/4-20mA inputs. -
@DaBit said in Duet 2/3 for CNC vs other controllers:
A $200 Mesa 7i76E is a very capable and robust I/O board for use with LinuxCNC and step/dir drives, Eding/UCCNC/PlanetCNC/Mach3/Mach4 hardware is priced similar or less. Hard to compete with that, and the software is designed from day one to control CNC machines.
Sure, those need a PC to run,Actually, PlanetCNC doesn't need a PC (and would not work with Mach or LinuxCNC or anything where the parser and motion planner is in the PC). Since the parser, motion planner, etc, is on the board, it just needs something to run a UI. That can be Windows, Linux, or Raspberry Pi. The Pi in particular can be fanless and with the right screen/keyboard/mouse (or emulation, like a touchscreen) it makes a great HMI in a home or small business shop setting. Good balance of function v price.
-
@Danal ...have you tried the Ooznest user interface on the Duet?... it's CNC oriented. I found that, and because the framework they made it with is my day job, I'll be playing with it as my next cnc update, super looking forward to it.
-
I have not. Next time I mess with CNC, I will give it a look
Thanks!
-
@theKM Do you mean the WorkBee Control? https://learn.ooznest.co.uk/Guide/How+To+Use+WorkBee+Control/22?lang=en
It's a customised version of the Duet Web Control. It does show more CNC specific information, though.Ian
-
@droftarts does that work with the duet 3
-
@chichirod Did you ever find an answer to this question? Because I have a cnc machine and a duet 3 on my hands without any experience in either....
-
@chichirod @Tsolsi I don't think the workbee control has been updated for Duet3 and RRF3 yet, but it is in the works.
-
@Phaedrux I've been trying to configure in the RRF configuration tool but I get stuck in missing one of the stepper motor drivers.. Not sure how to add the "ghost driver" or how one would call it, the one on the other side that copies the other one exactly. (yes I'm that new)