Turning off servos and M42 interrupting the last pulse
-
Re: Install Servo
@dc42 re:Alternatively, after sending each M280 command, use G4 to delay a short while, then I think sending M42 P# S0 (where # is the same port number as you use in M280) will turn off the PWM and the servo may stop driving the motor. Please test this thoroughly before you rely on it in case M42 can interrupt an output pulse.
I am having this problem where M42 does interrupt the output pulse and sends the servo out of position. What can be done to mitigate this? Can M42 be made more robust such that it does not interrupt the last pulse when shutting off the servo output?
-
@pfn Do you operate the servo from a Duex as well?
-
@chrishamm no, mine is run off the vfd/laser/out6 port on duet3mini5+
-
@pfn you can also turn off the servo output using M280 Pnn S0 although you may find that it has the same issue.
-
@dc42 thanks, my concern is actually how to avoid the truncated last pulse. (For that matter, sending M280 S0 rather than M42 S0 seems to send a 500us pulse as the servo always goes to the 500us position when I use M280 S0)
-
@pfn which version of RepRapFirmware are you using?
-
@dc42 3.4.5
-
@pfn that's odd because I checked the code to confirm what I thought, which is that M208 Pnn S0 should turn the pin off, just like M42. I'll log this as a potential bug.
-
@dc42 I have this macro: https://github.com/pfn/voron2-rrf-config/blob/master/sys/mmu/lib/engage.g where
mmu_servo_engage
is set to0
and it reliably sets the servo position to that of the 500us value. -
@pfn said in Turning off servos and M42 interrupting the last pulse:
@dc42 I have this macro: https://github.com/pfn/voron2-rrf-config/blob/master/sys/mmu/lib/engage.g where
mmu_servo_engage
is set to0
and it reliably sets the servo position to that of the 500us value.Do you mean it does that if you uncomment the M42 line and change M42 to M208 ?
-
@dc42 the macro is just a link to how I have everything setup, if I use
M280 P2 S100
and subsequently runM280 P2 S0
, the servo 100% reliably goes back to the 500us position.If I use
M280 P2 S100
and subsequently runM42 P2 S0
most of the time the servo stays in place, sometimes it will go to a position between S100 and 500us. -
@pfn thanks for the clarification.