Mapping Axes and Defining Tools: Setting the extruder drivers



  • In config.g I associate the various motor drives with axes with M584 like this:

    [[language]]
    M584 X3:4 Y0:1 Z5:6 E2:7:8:9 		; Map the axes so that X is on drives 3 and 4, Y is on drives 0 and 1, Z is on drives 5 and 6, and E is on drive 2, 7, 8, and 9.
    
    

    And I just realized I never updated my tool 0 definition to have the extruder on either drive 2, 7, 8, or 9. This is my current tool 0 definition:

    [[language]]
    ; Define Tool 0 (Mono-Extruder)
    M563 P0 D0 H1 
    G10 P0 S0 R0 X0 Y0    
    
    

    And yet, this works. I would think this would try to run my Y axis as the extruder, but it doesn't. So I don't understand the relationship of M563 to M584. Intuitively, I would think any reference to the extruder drives should just be left out of M584 as they're mapped directly in M563. If anything the opposite seems to be happening, with the D0 being ignored in my tool definition. What's going on here?

    What I'm actually working toward is setting up a 4 extruder toolhead, not for 4 material printing but to print 4 of the same object simultaneously, in parallel. So I want all four extruder motors and all four heaters always doing the same thing. I believe the definition should look like this, but I would appreciate input:

    [[language]]
    ; Define Tool 1 (Quad-Extruder)
    M563 P1 D2:7:8:9 H1:2:3:4 ; Define tool 1 (P1) to use drives 2, 7, 8, and 9, and heaters 1,2 ,3, and 4.
    G10 P1 S0 R0 X0 Y0    ; set tool 1 temperatures and offsets
    
    

    ~Justine



  • It's because in M584 you are mapping extruder 0 to drive 1, extruder 1 to drive 7 extruder 2 to drive 8 etc. So once the drives are mapped, from then on you refer to the extruder and not the physical drive that has been mapped to it, just as you refer to the X axis rather than drives 3 and 4.

    Edit a very basic configuration would have something like M584 X1, Y2, Z3, E4 but a single tool would be M563 P0 D0 (not P4)

    Further edit. Your 4 tool config would then be M563 D0:1:2:3:4. It's how my 5 colour diamond hot end is configured.



  • Thank you Ian,

    It's because in M584 you are mapping extruder 0 to drive 1, extruder 1 to drive 7 extruder 2 to drive 8 etc.

    I'm pretty sure you meant "extruder 0 to drive 2, extruder 1 to drive 7 extruder 2 to drive 8 etc. ", but good, okay.

    Your 4 tool config would then be M563 D0:1:2:3:4.

    Are you saying that M563 D0:1:2:3 is actually referencing drives 2, 7, 8 and 9 because that's how M584 mapped them?



  • @justine.haupt:

    Are you saying that M563 D0:1:2:3 is actually referencing drives 2, 7, 8 and 9 because that's how M584 mapped them?

    Yes, exactly so.

    An analogy that might help is to think of it as mathematical equations where we are saying that E0=2, E1=7, E2=8, and E3=9. From then on we refer to the extruder number (E0 to 4) and not the "value" that it represents. However, that analogy falls down when we map multiple drive to axes. i.e M584 X3:4 means that X= both 3 and 4.

    Ref the typo. It was a deliberate ploy on my part to check that you read my post fully (and if you believe that, you'll believe anything) 🙂



  • Justine,

    I don't know if this will confuse you more but it might help. On my machine, I have two CoreXY mechansims, on ecarries the hot end and the other which is stacked above the first, carries the extruders. In normal operation the lower left and upper left motors (Alpha drives on a CoreXY are both mapped to the X axis and the upper and lower right hand (Beta drives) are both mapped to the Y axis. But, when I home them, each gantry can be homed individually employing U and V axes. So in my config.g I have this:
    M584 X0:3 Y1:4 Z2 U10 V11 E5:6:7:8:9 P3;
    Note that the U and V axes are mapped to non-existent drives. So any command to move the X axis will turn both teh motors that are connected to drives 0 and 3.

    Then at the start of homing, I separate the mechanism by remapping the drives like this:
    M584 X0 U3 Y1 V4
    Now when I command the X axis to moves, only the motor connected to Drive 0 will turn. If I want the other motor to turn (Drive 3) I have to command the U axis to move.

    Hope that helps and doesn't confuse you even more.



  • Okay, thank you Ian. I do understand; the confusion comes from the syntax, where "Dnnn" is referencing an extruder number instead of a drive.

    Do you have any photos or videos of your stacked CoreXY gantries?



  • @justine.haupt:

    …..................Do you have any photos or videos of your stacked CoreXY gantries?

    This is probably the best one https://www.youtube.com/watch?v=ILRsEt4ExYM&t=7s, and the explanation is here https://somei3deas.wordpress.com/2017/11/28/5-axis-homing-using-corexyuv/



  • Ahh I've seen your posts re. multi-color printing before, I didn't realize it was you.

    Very neat setup.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.