VFD integration: M3, M4, M5 Macros and RPM measurement
-
My thinking at present is to change M452 to this:
M452 C"port1+port2+port3" F10000
- F is the PWM frequency, as now
- port1 is the speed control (PWM) port
- port2 if present is the on/off port
- port3 if present is the reverse/not-forward port (if not present then reverse is not supported)
-
@dc42 there needs to be a way to stop movement when a machine hits hardware limits. There isn't in current firmware. Ask any CNC operator who uses a large CNC machine 1 meter and up, they never home it. It takes too long and serves no purpose the only zero that matters is the work coordinate zero. I honestly would not bother homing my mill either since all I care about are work coordinates too. I added limit switches to prevent a crash
-
@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.