Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
As detailled in issue #22757, I have trouble with RC servos and an LPC1768 based board. The servo signal jitters, which causes the servo to hum and run hot. This PR adds a GCode (M282) which allows the user to detach servos whenever they want. It fixes the problem that I have, but it might be useful on other boards and in other scenarios as well.
With this, I can disable the servo after a tool change and thus stop it from humming and running hot. I already lost one servo to overheating.
DEACTIVATE_SERVOS_AFTER_MOVE cannot be used in my use case, since my servo is too weak to hold it's position during the tool change when detached.
So my current scenario is, I use M280 to use the servo in the right position for the tool change (M280 automatically attaches a servo), then I move the print head to perform the tool change, then I use M282 to detach the servo. This keeps it nice, quiet and cool.
Requirements
This PR requires a Servo
Benefits
Allows for manually detaching servos, keeping them powered as long as necessary, and keeping them detached, quiet and cool, whenever they are not needed.
Configurations
Nothing special, you just need a servo and enable the servo with
#define NUM_SERVOS 1
Related Issues
#22757