bowden drive to direct drive set up, but how do I configure it?
-
@JLink33 I wanted to send you a PM but I don't quite know how, so here it is
Voron 2.4, with Revo hot end, duet 6hc + 3hc + raspberry pi
latest unstable versions of firmware + dwc version
(sorry but I am away from my printer so I will post my config file first thing tomorrow if necessary)
all of my prints are single-color only (not into multi-color prints)
I like the Revo system very much and would like to stick with it
had multiple printers that were Bowden driven, switched to direct drive, and would never look backGoal---to add the ability to print with dedicated support material and remain direct drive.
I looked at the palette (too expensive, not reliable enough)
I looked at the ERCF (too finicky, too extreme)
I looked at the Prusa MMU2 (nope, just nope)This here perfectly describes the solution:
https://forum.duet3d.com/topic/12939/dual-color-direct-drive-switching-extruder
@JLink33 would you like to be a superhero and share your config file? what you did exactly matches my need and I would greatly appreciate your help and any extra info/tips you can provideDo you have a GitHub page for your above setup by any chance?
I assume to get this going properly there will be other macros / special slicer settings needed, would you mind sharing those as well?
If you would like some payment in exchange for your time/info I am more than happy to discuss further.
PS:
this here also perfectly matches my need, but it is klipper:
https://github.com/HelgeKeck/romethis here almost perfectly matches my need, also very interesting:
https://www.printables.com/model/436830-voron-stealthburner-taichi-bowden-assembly -
@deckingman can you give some guidance? you are the mixing master right??
normally when printing with main filament, direct extruder 1 (DX1) and working in sync with bowden extruder 1 (BX1),
when changing filament----DX1 and BX1 working in sync to back up filament a certain amount
then DX1 and BX2 working in sync to push filament forward to load / print support materialI can set up 3 extruders in the config file, but for the life of me I can't figure out how to make DX1, BX1 and BX2 working together as described above.
Thanks for your help
-
@Gordon-Lin It's true that I've done a fair bit of work using multi-input hot ends but I wouldn't describe myself as a master of anything. If I understand what you are trying to do, it isn't mixing but rather swapping between two filaments.
But I'll have a stab. I'm using my phone right now so can't easily tell you the exact commands to use.
Let's start by referring to the extruders correctly. As I understand it, you have a direct drive extruder which is being fed by one of two Bowden extruders in a "push-pull" arrangement. So define the 3 extruders using M584 in the order Direct Drive, Bowden1, Bowden2. From now on, in your configuration they will be "known" as D0, D1 and D2.
Now you define two tools. Tool 0 will use extruders D0 and D1 (so D0:1). Tool 1 will use extruders D0 and D2 (so D0:2). Both tools will use the same heater and fan(s).
Then you need to set the mixing ratio for each tool to use 100% of both extruders. I can't offhand remember the gcode to use but it will be in the format 1.00:1.00.
So now when you extrude or retract using tool 0, extruder drives 0 and 1 will turn at the same speed, and when you extrude or retract using tool 1, extruder drives 0 and 2 will turn.
Does that help?
-
@Gordon-Lin I would strongly recomend you to pay extra focus when e-step calibrating on all the extruders to avoid issues.
-
After setting it up like @deckingman described over, remove the nozzle from your revo, enable cold extrusion (
M302 P1
). -
Remove the bowden tube connected to the extruder mounted on the revo.
-
Select/activate T0, then first e-step calibrate the extruder that feeds for T0.
-
Unload the feed extruder for T0, put the filament directly in the revo. And calibrate that.
-
Input the e-step values you end up with. Unload everything again, then connect the bowden to the Revo extruder. Load filament once again and try to extrude and see if everything goes smooth.
-
Once thats done repeat those step on T1.
-
With all the e-step calibration done (and values input in config.g restart the printer.
-
Mount the nozzle, heat up to the temp you use with your filament and start tuning extrusion/flow multiplier.
-
-
@deckingman Thanks! that does help a lot.
My mind set was stuck in only having 1 tool defined because the the printer only has 1 hot end, then it is just all wrong from there
What you described makes perfect sense and I am will give it a go from there.
Once again thank you
-
@Exerqtor Thank you for the advice.
I have only ever printed using 1 extruder at a time, but realized working out e-steps on paper based on gear ratio + datasheets of stepper motor only gets you in the ball park, where I still have to fine tune/calibrate by doing actual extrusion measurement tests like you described.
My initial plan is to have D0 (the original CW2 extruder for voron stealthburner) working in tandem with 2 x orbiter 2.0 extruders as D1 and D2, but since your suggestion, I now have more questions:
- in your opinion would it be easier to have D0 as orbiter 2.0 as well? I assume since we are calibrating e-steps it won't matter to have different extruders for D0, D1 and D2?
- I assume even the same brand and batch of extruders will have different e-steps? so I will calibrate e-steps for all 3?
- how close/accurate do I have to calibrate the e-steps to? currently for a single extruder I extrude 100mm of filament then cut it as consistently as possible and measure as best as possible, but maybe only to +/-0.25mm. I can see this being a problem if we have 2 extruders working in tandem over long prints. Any tips and tricks to calibrate more accurately?
Thank you again for your advice
-
@Gordon-Lin, I am thinking that you will likely have to plan in some slippage for the feed motors. Enough slippage that the direct drive extruder can overcome the friction introduced by the feeder motor. In my mind (and only guessing here), it is impossible to match the feed rate of the two motors 100%. As an example, feed rate changes based on how much pressure is applied to the feed rollers. An increase in pressure results in the teeth digging in just a tad more which changes the effective diameter of the feed roller which changes the effective circumference which changes how much filament is fed for one turn of the feed rollers.
Now maybe I am over-thinking this but in my mind even a minute difference in feed between the two motors will, over a lengthy print, result in problems. I would think the the feed extruder needs to feed just a tad less than the direct drive extruder at the nozzle so that you don't end up compressing (and possibly screwing things up) in the section between the two motors.
Under the assumption that the feed extruder doesn't need to have very much feeding power just to move the filament, it would make sense to me to reduce the pressure of the feed rollers onto the filament to allow some slippage.
If it was me, I would use an older style single pressure roller mechanism for the feed motor which, by the nature of the mechanism, will always be less powerful than a double roller BMG style feed mechanism. -
@jens55 thanks for your advice.
Yeah what you said is bang on. I think having some slippage on the Bowden extruders is a good thing---like you said, impossible to calibrate them 100% equal and over longs prints the difference will add up, and something has to give.
I was planning on splashing out to buy 3 x orbiter 2.0 extruders, in light of your advice I think I will stick with the current CW2 extruder as the main directive drive extruder, then use something cheap like this for the Bowden extruders.
what do you think?
-
@Gordon-Lin, that extruder is exactly what I was thinking about. Please note that I have not tried any of this so I might be totally wrong!
-
@Gordon-Lin Push-pull arrangements are tricky to do for the reasons that have been pointed out. "Built-in slippage" is one approach that could work. Another is to calibrate the "push" extruder so that it always pushes very slightly more than the "pull" extruder. That way, there will always be some slack in the filament between the two. Of course, over a very long print, this slack will form a loop which will need to be accommodated somehow. You'd need to do the maths but let's say you use 100 metres of filament between colour changes. If the push extruder was calibrated to give 0.1 % more than the pull extruder, then you'd end up with a loop of 0.1 metres or 100mm (about 4 inches in old money), which shouldn't be too difficult to accommodate. IIRC, a full 1Kg spool is about 300 metres (depending on filament) so even that would only make a loop of about 300mm or about a foot in old money.
-
Another approach is to have sensor in the filament between the two extruders. It could be a simple micro switch that gets triggered when the filament is taut and not triggered when it is slack. You set the switch up as a trigger and run a macro that feeds (say) 100mm of filament from the "push" extruder whenever that trigger occurs.
-
I keep picturing computer tape drives that old main frame computers used. These used a system just like that. There was a loop of tape and if the loop got too small, more tape would be fed into that 'buffer' loop.
I would hate to be the person trying to come up with all the macros required for feeding filament or retracting filament and all the edge cases that might occur. My brain is hurts just thinking about it .... Still, that would be the 'proper' way of doing it rather than the much simpler slippage system. -
In my day job I sell high end welding equipment, some of which has two or more feed motors.
In some cases the torch motor also changes direction, much like retraction, but at a much higher frequency.
They way it is handled is to have a "boomerang" shaped buffer between the main motor and the torch motor.
Inside is a section of ptfe tube attached to a pivoting arm.
So as @deckingman has suggested, if the front motor retracts the tube will "bulge" out and the speed of the rear motor is reduced or stopped.
If the rear motor lags, it hits a limit and either speeds up the main motor or stops and alarms.
The torch motor is a servo and the main motor is a DC unit, so they don't bother trying to get fully coordinated movements.
One could probably also use a potentiometer with an arm.
You could monitor the value in daemon.g and adjust the steps per mm based on its position. -
@jens55 said in bowden drive to direct drive set up, but how do I configure it?:
.....................I would hate to be the person trying to come up with all the macros required for feeding filament or retracting filament and all the edge cases that might occur. .....................
There isn't all that much to worry about. If you use firmware retraction (G10/G11), any and all extruders that are associated with a tool get retracted and un-retracted simultaneously. That's how it works with a multi-input hot end because retracting one filament simply pulls filament from one or more of the unused inputs rather than the nozzle tip. So if the OP uses firmware retraction on his push-pull setup, he doesn't have to worry.
EDIT. This is just like using a mixing hot end - the only difference is that one must ensure that the sum of the mixing ratios adds up to one (or 100% if you prefer) whereas in a push-pull arrangement, both extruders must be set to 1 or 100%.
-
@jens55 all good, I understand the nature of all this, nothing is guaranteed---I proceed at ma own risk
-
@deckingman wow, the math really puts it in perspective how little bit of difference really adds up
yeah, imma dial back the tension of the push extruders so they can push filament down but would slip if encountered "too much" resistance. How much is too much is yet to be determined.
I just thought of another way--------instead of using mechanical slippage by dialing back extruder pinch tension, we keep the pinch tension as normal, but artificially limit the extruder motor current to deliberately let the motor skip steps when necessary, like a "electrical slippage" to "take up the slack".
I assume deliberately making the extruder skipping steps won't harm the motor drivers? @dc42 any input/thoughts on this? Thank you for your time
-
@OwenD thanks for your input. that welding system is smart and interesting, quite logical if you ask me.
I am not Gcode wizard so I think I will stick with what I know best which is mechanical design----so I will keep it simple at first, build in slippage on the push extruder it is
-
guys, thank you for your input, I truly appreciate it.
I have ordered the extruders and will pick them up this avo...I will start experimenting / testing when I can (in a day or so) and will keep updating this thread to keep you guys in the loop
-
@deckingman @Exerqtor @jens55 @OwenD I got it roughly configured and working----3 stepper motors on the bench and if I select T0, D0+D1 spins, if I select T1, D0+D2 spins. Thanks again for your help
the next part is to add icing on the cake, and this will be a filament Y splitter, with microswitch on all 3 paths + a bit of (maybe a lot of) conditional G code to make this idiot proof
I have attached my config.g here, hopefully this can serve as a starting point for someone
-
@Gordon-Lin, glad you got it going! BTW, no such thing as idiot proof