VFD integration: M3, M4, M5 Macros and RPM measurement
-
I am not looking to make RRF on a par with Mach3 in one go. It appears that the biggest limitation is the M3/M4/M5 handling, so I am looking to do that first.
There is work planned (some already started) to make DWC and PanelDue more suitable for CNC applications.
-
@dc42 actually macros work perfectly fine for VFD - i have a macro executing right after the spindle speed is set-- also there is an assumption that for going forward or reverse there are 2 pwm pins, there are not, so added a check if the reversePwm isValid, then use it otherwise use the forward for reverse as well -- the macros simply toggle 2 relays -- that works super well -- I issue 2 M42 commands -- it's fine to set the rpm, toggle relays then do a G4 for whatever is reasonable. Which is similar to a dwell.
-
@dc42 CNC mode MUST honor hardware limits. That is a non-negotiable. I added code to support a trigger that trigger my custom eStop if a hardware limit is hit when not homing, that gets me the safety measures -- I also toggle the relay that would normally be closed for spindle on -- and that's perfect for eStop.
-
You already have the option to have the endstop switches trigger emergency stop via triggers, so I see this as less urgent. There is a separate thread about whether emergency stop should require a full reset afterwards.
-
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.