Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extra extruders with tradrack #394

Open
lukeslaboratory opened this issue Oct 28, 2024 · 2 comments
Open

Extra extruders with tradrack #394

lukeslaboratory opened this issue Oct 28, 2024 · 2 comments

Comments

@lukeslaboratory
Copy link

So, I have a hungry hotend, and a very short path between the hotend & the extruder.
I would really like to be able to use a third extruder in the chain between the tradrack extruder & the main extruder, if nothing else but to do a proper retract so I can use it for endless spool mode.

Right now when filament runs out, its very likely to try to retract the filament out, but the length that it retracts is far less than what is needed to re-feed it into the tradrack feeder extruder.

Thanks

@rogerlz
Copy link
Contributor

rogerlz commented Dec 2, 2024

ping @rsghosh

@rsghosh
Copy link
Contributor

rsghosh commented Dec 2, 2024

These are the 2 main options I can think of for ways to do this:

  1. Sync the third extruder to trad rack's filament driver axis at all times.
  2. Sync the third extruder to the main extruder at all times (and have trad rack sync it to its filament driver axis whenever it does the same with the main extruder).

With option 1, the third extruder would need to be able to keep up with trad rack's filament driver motor during the fast moves through the bowden tube, or it will limit the speed of those moves. With option 2, the third extruder would not be used during the fast moves so it would not limit those, but the slow moves at the end of a toolhead load and the start of a toolhead unload would become longer, so toolchange time would still increase. I think which one has a bigger effect on toolchange time depends on your bowden tube length and how close the third extruder is to the main extruder. Having the third extruder and main extruder closer together minimizes the toolchange time penalty for option 2, but the farther the third extruder is from the center of the bowden tube the less delay there can be when responding to a runout without the retract failing.

For implementing option 1, the easiest/cleanest way I can think of would be to modify the sync_to_extruder() method of ExtruderStepper so that it doesn't solely work with PrinterExtruder objects and also works with TradRack objects, so that [extruder_stepper] can be used directly for the config for the third extruder (and you would just specify "trad_rack" for the extruder config option). To do this without needing to add in trad-rack-specific code, perhaps we could move part of sync_to_extruder() into a link_extruder_stepper() function that gets called from the extruder variable as is done in a893f98, and instead of checking whether extruder is an instance of PrinterExtruder it checks whether it has the attribute "link_extruder_stepper" (and I can add that function to TradRack)?

For implementing option 2, I think the easiest way to do this would be to have the third extruder configured as an [extruder_stepper] that is synced to the main extruder. But the trad_rack object will need to be able to sync the third extruder to its filament driver axis the same way it does with the main extruder. I think this probably already works on the bleeding-edge-v2 branch, since on that branch trad_rack uses the get_extruder_steppers() function from PrinterExtruder to get the extruder steppers it will sync. The version of extruder.py on the master branch does not have the get_extruder_steppers() function, but I think we can just copy over the changes to extruder.py from a893f98 (from line 410 to the end). This would remove self.extruder_stepper from the PrinterExtruder class, but it looks like there are no other files that try to access that variable, so I don't think this will have any side effects. Otherwise I can try to have trad_rack.py search for all extruder_steppers synced to the main extruder, but I think that would be more difficult.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants