Controlling a big CNC mill with Duet?



  • Im interested in better understanding how Duet handles motion planning. Is there documentation somewhere that explains this? Another question, probably for David is that its to my understanding that closed loop control (with encoder feedback) is at some stage of development. Can you summarize how that will work and the types of hardware that will be supported i.e. types of encoders and resolution (quadrature?)? I have already built 2, 3d printers and a micro milling machine using Duet 2. I have also owned the same Haas VF2 Vertical Machining Center for the last 20 years. Mechanically the machine is in good shape but because of its age it is no longer supported by the manufacturer. I was thinking about using a Duet and installing nema 34 steppers with encoders (no feedback to the control) or some other stepper/servo, servo or similar with encoder feedback (to the control) I may not be ready to do this till early next year but I would like to start planning now. Thoughts?



  • I've been considering closed loop on and off, but I keep coming back to that if the chip load(?) is correct then there is no need for it, and I think a setup that would maintain the chip load if the motion system couldn't keep up would just drive the cost. So my conclusion is that knowing my stepper and learning to work within its limitations is the best approach for my budget.

    Even just detecting skipped steps to pause the job isn't something i'm likely to try as the odds are the work or the tool is already done for at that time. But again, its mostly because, in theory, I should be able to learn to avoid it.


  • administrators

    The prototype closed loop boards should have approximately the same current rating as Duet 3 main and expansion boards, which is 4.5A RMC/6.3A peak. However, we can't confirm that until we have done thermal tests. The max nominal input voltage is 48V. Supported encoder interface are two types of magnetic rotary encoder (but we will probably drop support for one of them) and quadrature encoders.

    I have a high-torque Nema 34 motor with built-in quadrature encoder to test with.



  • @dc42 said in Controlling a big CNC mill with Duet?:

    The max nominal input voltage is 48V.

    this alone is making things interesting 😍



  • @bearer if you use a 1XD expansion board and an external driver like a DM860 which has an optocoupler, it's possible to use 80 volt already (not sharing power supply, but dedicated). The Duet3 CAN gives us a lot of flexibility.



  • @JoergS5 said in Controlling a big CNC mill with Duet?:

    @bearer if you use a 1XD expansion board and an external driver like a DM860 which has an optocoupler, it's possible to use 80 volt already (not sharing power supply, but dedicated). The Duet3 CAN gives us a lot of flexibility.

    well, yes, but if using external stepper drivers then I'd stick with linuxcnc for now - or possibly use the Duex port on a old Duet2 with broken stepper drivers; even a new Duet2 is the same cost as 3x 1XD, still needing the 6HC mainboard so thats a very $$$ solution even if highly flexible. (I'm guessing we'll see the community drive development for Sammy C21 and similar board with more than 1 external driver, that might make it more interesting to go the Duet3 route, but it'll be a while I recon)



  • @bearer I have very similar thoughts about Sammy. What is needed is an integration of the external driver and Sammy connected devices into M122 report or general speaking a tight integration of all devices into statistics, debug and object model, no matter where the drivers and steppers come from.
    At CNC I go with LinuxCNC at the moment with Mesa hardware.



  • @JoergS5 said in Controlling a big CNC mill with Duet?:

    At CNC I go with LinuxCNC at the moment with Mesa hardware.

    Owning both a Duet controlled 3D printer and multiple LinuxCNC controlled metal working machines I would say the same if the intent is to replace the electronics of an 'industrial milling machine'. Moving the axis motors is only one part of the story, on top of that you probably have a spindle VFD to deal with, a toolchanger with it's assortment of motors, switches and encoders, hydraulics, etcetera. The LinuxCNC/Mesa ecosystem is better suited to that than Duet is at this moment.

    @bearer said in Controlling a big CNC mill with Duet?:

    I've been considering closed loop on and off, but I keep coming back to that if the chip load(?) is correct then there is no need for it

    True. But with regular closed-loop steppers such as the Leadshine ones you can reach much higher rapid speeds (torque falloff vs rpm is less severe), and lost motion detection is reliable (which it isn't for drives looking only at the motor BEMF. That only works 'most of the times').

    If it is a piece of MDF you are milling a failed workpiece due to lost steps might not be the end of the world, but if it is a high-value or very-rare part needing some modification you definitely don't want unnoticed lost motion. Endmills may load up due to lack of cooling causing lost motion in XY with open-loop steppers, drilling might overload the Z-axis, etcetera. Machine should definitely and reliably stop whenever that happens to prevent more damage.



  • This would be a complete elimination of the original control system including the brushed servo motors. I would have to control the VFD for the 7.5hp spindle motor. The VFD is a standalone unit. Since this machine will just be hobby use (to build more 3d printer and small CNC mill parts) the tool changer control could come at a later date, replacing its in/out and position (currently a Geneva wheel) drive motors with steppers. I have factory documentation for the ATC sequence so I would just need to do the hard part and make it work. .
    I did look a Linux but the comfort level I have is with Duet so I wouldn't need to learn a new system just for this machine and I can build upon the experience I already have. All my previous and future self made machines will be Duet. Since the control side is where my competence is lowest I would like to stay here. Plus support is good and maybe this can make a small contribution to the development effort.
    Because of power requirements external drivers would be a must.
    I still need to sit down and see what limitations this will cause relative to how much I want to spend for drives, motors and the power supply for them. The Y axis needs to accelerate an estimated 300kg X axis saddle, motion drive components and table. A cheap 9 nm nema 34 stepper would produce 800 kg of thrust force down low and only a couple hundred at higher speeds. That may not be enough so may need to look at Clearpath or similar
    I am willing to give up fast rapids but I want to maintain the resolution that it has now which is a 2000cpr encoder and 6mm lead ball screws = .003mm if I understand the encoder function correctly. Thats why my initial question was about the encoder.
    I didnt ask but hopefully the encoder integration in to the Duet would also have Z channel capability which would allow precise homing and potential safeguard opportunities. With the forces involved safety should be a concern.
    Still a lot to be sorted here for sure.



  • @3DPMicro there is a project folder https://github.com/Duet3D/Duet3Expansion/tree/master/src/ClosedLoop
    where one can see which direction closed loop support goes - !! I guess !!. If you want to buy an encoder, I would take the mentioned AS5047D eg. which has 2000 and 2048 as maximum resolution per rotation. There are even youtube videos how to install them.

    I will try to implement my AMT212 when its time. That's the advantage of Open Source. When there is one working encoder, using it as template is a good start.



  • Thanks for the info @JoergS5 and thank you to everyone else for the input. I will continue to research this while keeping my fingers crossed the Haas control keeps going but....that day will come though when it wont



  • @3DPMicro , re: comfort

    I've configured LinuxCNC for a few machines, and they all (even the first) went smoother & faster than my attempt to configure duet for a small "CNC-like" use... And the duet only had two axes. (In summary, Linux CNC had a much faster learning curve.)

    Second, Linux CNC has backlash compensation; duet does not. If you want to hold any decent tolerances (from a CNC perspective), you need it.



  • @tenaja the stock Haas control has backlash compensation but it's set to a zero value from the factory. I am in the process of refurbishing the x and y axis i.e. reballing the screws and an over all cleaning and maintenance. I used to have +-.0001" of backlash when I first got it almost 2 decades ago and it had since loosened to +- .001". Pretty sure I can get it back or close to that tenth. With your past linux projects were you driving servos? If so I would like to get some input from you regarding that. The one thing that is concerning me about the Duet is the proceseccing power. The resolution of the factory control is 8k steps per rev. I don't think the Duet was ever intended for and application like this or even half that at 4000 steps which would be adequate



  • @3DPMicro said in Controlling a big CNC mill with Duet?:

    8k steps per rev

    steps pr rev isn't as relevant before you take the lead/pitch of the screw in account and get stes pr mm, but I suspect you'll be north of the sensible limit in any case yes.



  • @3DPMicro
    I would tackle the Haas with Linux CNC and Mesa board. The forum is very helpful. Everything I've done with it was stepper based, but lots of guys did servos.

    This forum is also helpful, but I put these boards in machines that are more appropriate for it. To be honest, Linux CNC was far simpler to configure on non-printer applications... It's so printer oriented that you have to jump through hoops to do cnc things. But, sometimes a tiny board is more appropriate (portable machine), and worth the learning curve to configure.


Log in to reply