M567 Tool-Mixing issues/quirks
-
@dc42 - we just did considerably more testing and would like your thoughts. We determined that the secondary extruder (at the spool) is operating as expected. It is the primary extruder, connected to the toolboard (within our heated chamber), that is under-extruding!
At room temp, the extruder connected to the toolboard calibrated at 814 e-steps. With the chamber at 70c, it calibrated at 826 e-steps.
This was all sparked by the difference in VIN between the room temp 6HC and the ~70c toolboard reported by B122 in my previous post. And I believe it finally explains why we've been calculating our e-steps higher than almost everyone else using an LGX extruder.
mainboard:
Supply voltage: min 0.1, current 24.2, max 24.4
toolboard:
VIN voltage: min 24.5, current 24.8, max 25.0
@chrishamm - since we are already rebuilding DWC, we can just re-enable Filaments for our use case unless you know a reason why that might break?
-
@oozebot the VIN voltage is not the reason for the change. The steps generated by the extruder are independent of VIN. The motor current is also independent of VIN, unless you are extruding very fast and the required motor voltage exceeds the VIN voltage.
What I think is happening is that at 70C the filament is softer, so the filament flows a little more as it is being extruded, which means that the back pressure from the hot end will cause a greater increase in the steps per mm.
-
@dc42 Thanks. Your explanation makes more sense as the extruder itself is also at 70c..
This 'revelation' has finally resolved one of the last pieces in dialing in our machines with various materials as we can now recommend e-steps along with the other settings.
We'll consider this closed. I just ran a ~2 hour print and the two extruders are now almost entirely in sync.
-
@oozeBot The Filaments option is disabled when multiple extruders are mapped to a single tool because it isn't obvious what extruder drive should be used for filament mapping. If you have a 3-in-1 hotend with four tools (e.g T0 = custom mixing, T1 = E0, T2= E1, T3 = E2) you can use the
M563 L
parameter to specify the extruder drive to control (e.g. forT1
->M563 P1 H1 D0 L0
). Note thatM703
only configures the filament of the mapped extruder drive; it cannot deal with multiple filaments (yet). -
@chrishamm Thanks for the explanation. Since we do utilize the Filaments config files (but not the load/unload functionality) and are already rebuilding DWC, we just added it to our menu bar and are sorting it through globals and loading the configs through a custom mCode (instead of M701) like so:
M98 P{"/filaments/" ^ param.S ^ "/config.g"} set global.filament = param.S
--
-
-
Have you tried a weak motor as a secondary extruder, one that would miss steps on major resistance?
I have done no serious tests yet, we use 5kg spools and have similar problem. First idea was to use two motors connected to one stepper driver, not to occupy other drivers.
Main extruder use a 200 steps 25mm motor with belt transmission 2:1 and the secondary extruder at the spool is a 400 steps 42mm (I just had it handy) to match gear ratio. Unfortunately the main one is much weaker in this setup. Perhaps it would work with two same sized motors one 200 the other 400 steps.Missing steps is plainly a dirty hack, but in our case providing enough support for the main extruder requires only a gentle push.
Mixing would definitely be a cleaner solution but is it at all possible to use two extruders inline without fighting each other at some point?
-
@duetuser said in M567 Tool-Mixing issues/quirks:
,............ but is it at all possible to use two extruders inline without fighting each other at some point?
One possibility would be to have a "loop" of filament between the two extruders. Extruder A pulls filament out of the loop, and extruder B pulls filament out of the reel into the loop. If you don't want to use mixing to drive the two extruders, you could use some meta commands and conditional code so that say when extruder A has pulled 100mm from the loop, then extruder B pushes 100mm into it.
-
We’ve now successfully run almost three full 10kg mega spools of ABS through our setup.
The way @deckingman explained it is how we are protecting any variance between extruders- there is a split in the PTFE tubing where a variable amount of filament is extended. Once we balanced the e-steps between extruders, little else is done except to verify the extended amount isn’t extending too much as we have it purposely set where the secondary extruder is just a touch faster than the primary.
If we want to reduce how much is extended, we can send M567 P0 E1:0 to switch off the secondary extruder and then M567 P0 E1:1 to turn it back on when it has been reduced.
-
Great, happy to hear it!
What do you mean by "loop"? Is it a physical loop of filament? Where is it placed in the printer?
I've just connected the secondary extruder (42mm NEMA 17), set it to 300 mA, and mixed so it extrudes more than tha main extruder.
We'll see how far it goes -
@duetuser there is a split in the ptfe tubing leading from the spool to the printer.
-
@oozebot So it is a loop. What a nice idea.
-
@oozebot Just a thought, but if you constrained the "loop" such that it was free to expand and contract but not to move sideways, then you could use a micro switch or slotted opto sensor or some such, with an external trigger to automatically adjust the feed of the primary extruder to keep the loop size constant.
-
@deckingman Already thought of that.. If we productize this in some way, that is exactly how we will handle it. But for our current needs, just leaving it loose works fine.
-
I thought I'd share our final solution for this which is working very well. To recap, we are using a secondary LGX extruder at the spool (10kg / 22lb mega-spools) to push the filament to each printer. It's a bit expensive upfront, but removing the load from the primary extruder has allowed us to increase our max mm3/s throughput by ~25%.
The second photo is of the filament loop which resides at each printer. When the filament advances enough to trigger the switch, the ratio on the secondary extruder is slightly decreased, slowing it down. And when the filament retracts enough to disengage the switch, the ratio on the secondary extruder is slightly increased, speeding it up. Works flawlessly!
-
Our solution continues to work well, but sometimes we bypass the secondary extruder when printing with smaller spools of different filament. What we have noticed as that even when the second extruder is "disabled" (using M567 P0 E1:0), the secondary extruder is still retracting/un-retracting when using G10/11 for firmware retraction.
@dc42 - Is this a bug?
-
@oozeBot I'd say it's not a bug but intentional. It's certainly the case with multi input, single nozzle hot ends, that all filaments need to be retracted, regardless of which ones are actually in use according to the mixing ratio. Failure to do so will result in filament being drawn from the unused inputs, rather than the nozzle tip. That's why firmware retraction behaves the way it does. I appreciate that in your particular case, you are using a push-pull arrangement but if firmware retraction was modified such that retraction was based on mixing ratio, then it would bugger things up for those of us with multi-input, single output hot ends. Suggest you modify the tool definition when you want to use a single extruder, rather than modify the mixing ratio.