Running Two different gear ratio extruders at the same time.



  • Hello everyone, so I have a big hypercube evolution that I have been using to make big prints (500 x 500 x 800mm print size). Currently it is using a Zesty Nimble with the longest flex cable (1.2 meters or 1200mm if I remember correctly). While it works, there seems to be a problem with using 3kg or 5kg filaments (especially 5 kg), despite the bearings on the filament rollers to help, it seems especially with 5kg filaments that it causes some uneven flow and I can see the filament (with the near 1.5 meter reverse bowden tube) that it seems to pull the zesty nimble a little bit, and I wonder if that's the issue.

    Basically, someone suggested to me to run a dual extruder setup, where one is responsible for pulling that filament, and the zesty nimble just feeding the hotend. The challenge is the only extra extruders I have are those Creality type MK8 extruders, and they are 1:1 geared ratio iirc, unlike the Zesty Nimble, which is 30:1.

    The idea is to create a loop buffer (like the palette 2 or Prusa MMU2 buffer, so the first one (the cheap MK8 extruder) would feed just a little bit more, but would take hours before it creates a bigger/longer loop, in which by that point I'll be able to just release the first extruder and pull back the filament and reset the loop buffer.

    Okay apologies for the long description, TLDR; is there a way to run both extruders at the same time, but at different geared ratios (if possible, I'd assume it would just be setting different microstepping and the steps?)
    Using Duet Wifi + Duex 5.

    Thank you very much!



  • @iamthebest22 said in Running Two different gear ratio extruders at the same time.:

    ......................is there a way to run both extruders at the same time, but at different geared ratios (if possible, I'd assume it would just be setting different microstepping and the steps?)
    ...............................

    Yes (and you won't be the first to use it).

    You define a tool to use both extruders e.g. M563 P0 D0:1 H1. Note that the "D" refers to the extruders in the order that they are created, not the actual drivers. You set the steps per mm for each extruder e.g M566 Eaaa:bbb. Then you set the mixing ratio for the tool to use 100% of each extruder. e.g. M567 P0 E1.0:1.0.

    That's it.



  • @deckingman thanks for the fast reply, this is my first time doing this, so appreciate the help as you and others walk me through this. I will be using the E4 axis motor drive (drive number 7) on the Duex 5 for the 2nd/second extruder.

    So currently my config.g drives looks like this (I've omitted some stuff that I believe shouldn't make a difference to save space and time looking through it)

    M569 P0 S1
    M569 P1 S1
    M569 P2 S1
    M569 P3 S0
    M569 P5 S1
    M569 P6 S1
    M584 X0 Y1 E3 Z2:5:6
    M350 Z16 I1
    M350 X16 Y16 E16 I1
    M92 X80.00 Y80.00 Z1600.00 E2700.00 ; Set steps per mm
    M566 X900.00 Y900.00 Z8.00 E240.00 ; Set maximum instantaneous speed changes (mm/min)
    M203 X8800.00 Y8800.00 Z420.00 E6000.00
    M201 X500.00 Y500.00 Z20.00 E250.00
    M906 X1700.00 Y1700.00 Z1700.00 E1710.00 I30

    and the TOOL sections
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 X0 Y0 Z0
    G10 P0 R0 S0



  • so i need to change the current M563 to M563 P0 D0:1 H1
    I'm confused about the M566 though, isn't M92 the gcode to set the steps per mm? so my M92 should now be changed to

    M92 X80.00 Y80.00 Z1600.00 E2700.00:900 (since Zesty is 30:1 and the Creality MK7/MK8 is 1:1 iirc)

    and then I need to add in a M569 P7 S1 up top since I'm using the E4 axis motor drive on the Duex 5.

    and then the M567 P0 E1.0:1.0,

    so 5 extra lines, which are
    M563 P0 D0:1 H1 in the drives
    M92 X80.00 Y80.00 Z1600.00 E2700.00:900
    M566 X900.00 Y900.00 Z8.00 E240.00:240.00
    M569 P7 S1 in the drives section
    M567 P0 E1.0:1.0 in the tools section

    is that correct? but how will the Duet wifi know that the 2nd extruder is the E4 axis drive (drive number 7) do I change M584 to
    M584 X0 Y1 E3:7 Z2:5:6 so it knows to use the drive 7 (E4 on Duex 5) as the second extruder?

    Thank you for looking through this many lines, thank you very much!



  • @iamthebest22 The first thing you do is add the extruder to a driver - drive 7 in this case. So you need a M569 P7 to set the motor direction. Then you need to map that drive to an extruder using M584, and as you say, it will be M584 E3:7. Put this M584 near the top of your config.g. From this point, extruder 0 will use drive 3 and extruder 1 will use drive 7 - remember this.

    Then you have to set the micro stepping, steps per mm, motor current, acceleration, maximum speed and everything else in the motor drives section for the new motor.

    e.g M350 will need to have E16:16 (although 16x might be the default. it's generally good practice to explicitly define it - assuming you use 16x).
    M92 will have the steps per mm for each extruder so if it's 2700 and 900, then yes, M92 E2700:900.
    M566 will need a jerk setting so like you have E240:240 will be OK
    M203 will also need a maximum speed for the new motor so Ennn:nnnn.
    M201 will need an acceleration values so again, Ennn:nnn
    M906 will need a motor current setting Ennn:nnn

    Checks all the other motor settings in your config.g that have an "E" in case I've missed anything.

    Then define the tool to use both extruders with the M563 D0:1 H1. Remember that these are now the drives that are physically connected to drivers 3 and 7. So in that statement D0 is the first extruder drive which we defined in M584 E3:7 so it's driver 3 and that D1 is the second extruder drive in that M584 so it's driver 7.

    Finally, we use a mixing ratio to define how much of each extruder we want to use. This is the M567. If we had a mixing hot end with two inputs and one nozzle, we would want to use a mixing ration that added up to 1 (or 100%). So we might use 0.5:0.5, or 0.25:0.75. But in this case, we want both extruders to provide 100% because they are in a push-pull arrangement so we use 1.0:1.0.

    Does that answer everything?



  • @deckingman wow that was fast, thank you very much once again for your patience, going to do it now and report back, thank you very much once again for your patience!



  • @iamthebest22 No worries. Post back if you have any more questions. I can't guarantee that I'll happen to be sat in front of a computer when you do, so my response might not be as prompt. But there are plenty of other knowledgeable users who will help you out if I'm otherwise engaged.



  • @deckingman it works! Woohoo! Thanks deckingman! I just got hopefully one more question, I'm calibrating the pull one so that it "extrudes" a little more than the Zesty nimble (I have a mini buffer system like the Prusa MMU2 so it creates a loop), I'm calibrating esteps, does Duet accept decimal places for esteps? like for the 2nd one, I'm at 97.95 steps per mm but I'm wondering if that's actually accepting that as 97.95 or just 98 or 97. Thanks!

    Update: another question came up xD. I just want to make sure I can change esteps in the middle of a print correct? I just have to type in M92 E2700:bbbb in the gcode console on the web control to change it mid print? That's what I've been doing but I wanna make sure that is the correct way to change esteps mid print. Thanks!



  • @iamthebest22 I'm only 99% sure about your questions - not 100%. I think you can specify steps per mm as decimal values, but for a given move, the resultant calculation would be truncated or rounded to a whole (micro) step. If you think about it, a micro step is a fraction of a step. So you either get a micro step, or you don't. The firmware may, or may not, keep track of those lost bits of micro steps and add an odd one now and then to compensate. Dunno.
    AFAK, you can change micro stepping "on the fly" like everything else but you might need to wait for the movement queue to empty before you see the result. I'm on my phone right now and can't remember what the G or M code is for micro stepping (92?), But if you enter that without any parameters, it should report back the settings. So you can change it, then check.



  • Got it, yeah that's what I'm confused about, whether it truncates or rounds it to a whole step and so it's really useless to use decimal values, maybe someone else can share that.

    Yes that's what I've been doing, use M92 to enter that gcode, thanks, now hopefully someone can answer the question about the decimals esteps xD


  • administrators

    You can use fractional parts in the M92 steps/mm values. For each G1 move, after multiplying the extrusion distance by the steps/mm the extruder microsteps will be rounded to the nearest microstep, and the excess will be carried over to the next move.



  • @iamthebest22 There you go - DC has answered your question.

    So all sorted now?



  • M350 is for changing microstepping. AFAIR, setting microstepping causes movement axes to be flagged as unhomed and therefore would likely ruin a print if sent mid-print.



  • oh it's M350 for changing microstepping mid print? okay than, I think we'll all good now, thank you very much!



  • @iamthebest22 said in Running Two different gear ratio extruders at the same time.:

    oh it's M350 for changing microstepping mid print? okay than, I think we'll all good now, thank you very much!

    NO, NO, NO! Do not change M350 mid print! This is the micro-stepping mode. Leave it at 16X with interpolation. Use M92 to adjust the steps per mm as we discussed. I don't know why @bot even mentioned it.



  • @deckingman Ahh I wasn't paying attention closely, but noticed you mention the word micro stepping in one of your posts. I saw you mention too M92 but thought you made a mistake and meant M350. I had it backwards!



  • oh my fault too, no problem, M92 it is, okay now we're all good, thank you very much everyone!


Log in to reply