VFD integration: M3, M4, M5 Macros and RPM measurement
-
@dc42 i think M452 like that would work -- add an option for dwell time (how much it should wait after m# command issued before proceeding to the next line -- spindle needs time to get to speed before cutting or stop cutting and be safe to handle), and you got it. reverse forward is handled like -- floating if forward, close means reverse.
-
@kazolar said in VFD integration: M3, M4, M5 Macros and RPM measurement:
@dc42 there needs to be a way to stop movement when a machine hits hardware limits. There isn't in current firmware.
Yes there is. Surely you know about M581, https://duet3d.dozuki.com/Wiki/Gcode?#Section_M581_Configure_external_trigger ? Trigger 0 was specifically provided for this purpose.
-
0 trigger requires you to reset the machine manually it should work the same way as the eStop on the web UI or the panelDue -- there is no option to do that presently -- I added that for me, and it works great - -
-
@dc42 other controllers treat hitting an eStop the same you treat it with panelDue -- auto reset -- you can even reboot in a (end stop triggered condition, but reboot not force me to manually reset the hardware)
-
@kazolar said in VFD integration: M3, M4, M5 Macros and RPM measurement:
0 trigger requires you to reset the machine manually it should work the same way as the eStop on the web UI or the panelDue -- there is no option to do that presently -- I added that for me, and it works great - -
You can reset the machine via DWC - recent versions even invite you to do that via a Reset Machine button when they detect that the machine has been halted by emergency stop.
You can also reset the machine by sending M999 from PanelDue. Put it in a macro if you like.
-
@dc42 I made about 20 minutes worth of code changes, and now I am finishing up the wiring. I will probably need more code changes to the firmware to allow for spindle coolant - I want to add a fogbuster to my mill. I have the key safety stuff addressed with M# macros and hardware limit handling pretty similarly how my other 2 CNCs handle them -- it's such a convenience while using the big CNC to tap an end switch when a cut goes bad and have it stop everything and then have the machine stop immediately and reset the controller.
-
@dc42 M999 waits 1 second before stopping movement -- a lot of bad stuff can happen in 1 second.
-
@kazolar said in VFD integration: M3, M4, M5 Macros and RPM measurement:
@dc42 M999 waits 1 second before stopping movement -- a lot of bad stuff can happen in 1 second.
You misunderstand me. AFTER doing an emergency stop, you can send M999 to reset the machine.
-
no I cannot -- I tried -- the controller is frozen, webui is unresponsive -- all my M113 does is do emergency stop and software reset in one command
-
@dc42 i dont have the paneldue connected yet -- i will add that after I do the pendant mod and figure out where I want the screen to go -- probably somewhere outside where the coolant and chips would be.
-
@kazolar said in VFD integration: M3, M4, M5 Macros and RPM measurement:
no I cannot -- I tried -- the controller is frozen, webui is unresponsive -- all my M113 does is do emergency stop and software reset in one command
Perhaps you are running an old version of DWC?
-
@dc42 i don't see that -- it just says waiting to connect. I have 3.02 previously, now have 3.1.1 with my code changes
-
@dc42 i did not update the dwc -- since I plan to moving to the ooznest dwc anyway.
-
That's what happens when I send M112 from PanelDue. Running DWC 3.1.1. I can reset it by pressing that Reset button, or by sending M999 from PanelDue. Or by using the reset button of course.
-
@dc42 I'm sure my dwc is older, but again -- I doubt that's supported in the ooznest workbee dwc anyway -- and I intend to move to that to get a better CNC web UI
-
@kazolar said in VFD integration: M3, M4, M5 Macros and RPM measurement:
@dc42 I'm sure my dwc is older, but again -- I doubt that's support in the ooznest workbee dwc anyway -- and I intend to move to that to get a better CNC web UI
I understand that Ooznest is porting their changes to DWC 3.1.1. We're waiting on that before we do any work to make DWC more CNC-friendly, because it seems like a good starting point.
-
@dc42 either way -- I figured out how to do the same estop via an m command as hitting estop on the paneldue or webui -- it's a combination if M112 and M999 in one command -- works perfectly
-
@dc42 after everything is assembled and cutting I will tweak that behavior to retain the coordinate system. I'd like to be able to mimic mach3 on the way hardware limits are handled. I'm not asking you to implement it -- I'll do it myself. I'm coming at this from a perspective that I've been running duet2 on my quad (dual idex) printer and it's been great with i2c stuff now sorted. I have used other CNCs to build that printer and have become pretty comfortable and familiar with how they operate, and I've talked to many folks who do machining for a living. The behaviors I'm implementing are just features which are present on other CNC targeted controllers. I wouldn't run mach3 on a 3D printer. My goal with this CNC mill conversion is to do it without needing a PC to run it - I'm pretty much there -- some minor firmware adjustments and a better web UI, and it's good to go.
-
Duet 3 can drive Nema 34 motors, as long as you are not looking for both high torque and high speed, which would need more than 32V. We're looking at supporting 48v power in future.
Can high torque nema 23/24 stepper motors be used with Duet 3 even if calculated back EMF is much higher than 32V? I couldn't find a motor that had small enough voltage requirement (using documentation recommended calculations for back EMF) and high torque.
Calculated voltages (required due to back EMFs) for few motor candidates (@400 rpm, with about 80% current):
24HS39-4204D, 52V
24HP39-5004S, 37V
23HP45-4204S, 36V23HS41-1804S, 78V (I currently have these on my CNC and they seem to stall at about 300 RPM with 24V PSU).
-
@dc42 I believe what you propose should cover the vast majority of VFD controllers and would be a good step forwards for CNCers.
As you suggest, a small board with optos for each of the VFD input pins plus a PWM to analogue voltage converter would provide a straightforward VFD wiring solution. I’d be happy to share my schematic if it would be helpful.
The only other parameter I would suggest is a delay time to enable the spindle to get up to speed before moving from M3/M4 to the next g-code command. On my spindle, you typically need to wait for around 10 seconds for it to reach the specified speed.
I am not aware of any controllers that use two separate PWM inputs for forward/reverse, but others may know better,