Jb23
March 17, 2022, 10:31am
1
Hi,
I’m in the process of building a tool switching printer.
Is it possible to define the same stepper driver to different extruders?
I want to use only a single set of cables that connects to every tool with pogo pins. The heaters and fans need to be different since I want to keep them heated while docking. But the extruder motors are not connected while docking. Since the motors and drivers are all identical it would save me a lot of effort if I could just define the same stepper driver to different extruders.
For example:
Extruder 1: heater1, thermistor1, fan1, stepper1
Extruder 2: heater2, thermistor2, fan2, stepper1
Extruder 3: heater3, thermistor3, fan3, stepper1
And so on.
I’m aware that this might be quite a unique problem.
I would appreciate any help.
1 Like
Not sure if this will help, work, or what you need.
On the March 4th commit, it looks like you can create an extruder without a stepper:
committed 06:51PM - 21 Feb 22 UTC
This may be useful for dual hotend printers that have only one
stepper.
Signed-… off-by: Kevin O'Connor <kevin@koconnor.net>
Also, check out this PR. The config noted here was a single extruder stepper being switched between two extruders via a servo:
Klipper3d:master
← Klipper3d:work-extruder-20220129
opened 01:06AM - 30 Jan 22 UTC
This PR adds a new `SET_EXTRUDER_ROTATION_DISTANCE` command. It supports specif… ying a "negative rotation distance" which will have the effect of reversing the extruder stepper direction. This may be useful for printers with a single extruder motor that can switch between two hotends via a servo.
I do not have a good way to test this PR. Feedback would be appreciated.
This PR is a continuation of PR #5143. This PR also deprecates the `shared_heater` config option, deprecates the `SYNC_STEPPER_TO_EXTRUDER` command, and deprecates the `SET_EXTRUDER_STEP_DISTANCE` command. There are new replacements for all of these features.
This PR was built on top of PR #5209.
@drumclock , @tircown - FYI.
-Kevin
It’s possible if you create 3 extruders without steppers, then create an [extruder_stepper]
object like:
[extruder_stepper belted_extruder]
extruder: extruder # I believe assigning a extruder object is optional now.
step_pin = PA4
dir_pin = PA6
enable_pin = !PA2
microsteps: 16
rotation_distance: 22.5
full_steps_per_rotation: 200
gear_ratio: 4:1
finally follow up with three gcode macro’s, maybe something like:
[gcode_macro T0]
gcode:
ACTIVATE_EXTRUDER EXTRUDER = extruder
# Deactivate stepper in extruder(s)
SYNC_EXTRUDER_MOTION EXTRUDER= MOTION_QUEUE=extruder1
SYNC_EXTRUDER_MOTION EXTRUDER= MOTION_QUEUE=extruder2
# Activate stepper in my_extruder_stepper
SYNC_EXTRUDER_MOTION EXTRUDER=belted_extruder MOTION_QUEUE=extruder
[gcode_macro T1]
gcode:
ACTIVATE_EXTRUDER EXTRUDER = extruder1
# Deactivate stepper in extruder(s)
SYNC_EXTRUDER_MOTION EXTRUDER= MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER= MOTION_QUEUE=extruder2
# Activate stepper in my_extruder_stepper
SYNC_EXTRUDER_MOTION EXTRUDER=belted_extruder MOTION_QUEUE=extruder1
[gcode_macro T2]
gcode:
ACTIVATE_EXTRUDER EXTRUDER = extruder2
# Deactivate stepper in extruder(s)
SYNC_EXTRUDER_MOTION EXTRUDER= MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER= MOTION_QUEUE=extruder1
# Activate stepper in my_extruder_stepper
SYNC_EXTRUDER_MOTION EXTRUDER=belted_extruder MOTION_QUEUE=extruder2
You may not need the Deactivate SYNC_EXTRUDER_MOTION gcode options, so it may actually be like this:
[gcode_macro T0]
gcode:
ACTIVATE_EXTRUDER EXTRUDER = extruder
# Activate stepper in my_extruder_stepper
SYNC_EXTRUDER_MOTION EXTRUDER=belted_extruder MOTION_QUEUE=extruder
[gcode_macro T1]
gcode:
ACTIVATE_EXTRUDER EXTRUDER = extruder1
# Activate stepper in my_extruder_stepper
SYNC_EXTRUDER_MOTION EXTRUDER=belted_extruder MOTION_QUEUE=extruder1
[gcode_macro T2]
gcode:
ACTIVATE_EXTRUDER EXTRUDER = extruder2
# Activate stepper in my_extruder_stepper
SYNC_EXTRUDER_MOTION EXTRUDER=belted_extruder MOTION_QUEUE=extruder2
Hopefully this helps.
-James