Tool Changer con. g code

  • what external steppers should I use? extruder . I am not good with a soldering iron.

    If its easy can someone get me started on the conditional G-code to not pick up or dock a tool with a chimera?

  • administrators

    @Ozzzzzzy, are you the person who posted on the E3D forum about using a Chimera tool on an E3D tool changer? If so:

    • You said you will have 2 Chimera tool heads, 2 single-extruder tool heads, and an extra Z axis. So you need 4 axis motors, the C axis motor for tool locking, and 6 extruder motors. That's 11 in total. So one more than a Duet 2 + DueX5 provides.
    • I assume you already have the Duet 2 + DueX5. [If you don't, then consider using a Duet 3 MB6HC + 2 EXP3HC instead.]
    • A cheap and adequate solution for the extra driver would be to buy a stepstick module with e.g. a TMC2208 driver on it. You can mount this on either a bare RAMPS PCB (readily available on eBay etc.) or a piece to stripboard. As well as a socket for the driver, you need to provide the 100uF capacitor and microstepping jumpers. See

    To use conditional GCode to avoid docking/undocking when you switch between the two tools on the Chimera, I suggest you get it working initially with it always doing the docking/undocking. Then you can optimise it:

    • In the tfree files for the Chimera tools, use variable state.nextTool to skip the docking procedure if that variable indicated you are changing to the other tool on the same Chimera
    • In the tpre files for the Chimera tool use variable state.nextTool to skip the pickup procedure if that variable indicates you are changing from the other tool on the same Chimera

    For information on conditional GCode, see Ask again herte if you need further help.

  • Yes that was me.This is awesome thank you. I do have the duex 5 and WiFi but I am going to get a duet 3. I have 2 printers I am converting. Im struggling with the C coupler. I posted on the e3d forum,

    I cant get my C motor to go the right direction. I tried doing a G92 C123 and doing a C33 but the motor always goes the wrong way.I changed the wires on the stepper and changed the M569 P7 S1 and S0 but it always go the same direction. I tried homing C (stall) and M92. What is the best way to do the M92-- should i start it at 0 or go to unlock at 123 or go to 33 lock?

    ; Drives
    M569 P0 S1                                                           ; physical drive 0 goes forwards
    M569 P1 S1                                                           ; physical drive 1 goes forwards
    M569 P2 S0                                                           ; physical drive 2 goes backwards
    M569 P3 S1                                                           ; physical drive 3 goes forwards
    M569 P4 S1                                                           ; physical drive 4 goes forwards
    M569 P5 S0                                                           ; physical drive 5 goes backwards
    M569 P6 S0                                                           ; physical drive 6 goes backwards
    M569 P7 S0                                                           ; physical drive 7 goes backwards
    M584 X0 Y1 Z2:5 C7 E3:4:6                                             ; set drive mapping
    M208 X-36.0:300 Y-4.0:317 Z0:400 C-500:500        ; Set axis maxima & minima
    M350 X32 Y32 Z16:16 E16:16:16:16:16 I0                                  ; configure microstepping without interpolation
    M350 C8 I0
    M92 X160.00 Y160.00 Z3200.00:3200.00 C100 E440.00:440.00:3200.00:3200.00:3200.00  ; set steps per mm
    M566 X3000.00 Y3000.00 Z12.00:12.00 C2 E120.00:120.00:12.00:12.00:12.00       ; set maximum instantaneous speed changes (mm/min)
    M203 X9000.00 Y9000.00 Z200.00:200.00 C5000 E1200.00:1200.00:900.00:900.00:900.00 ; set maximum speeds (mm/min)
    M201 X300.00 Y300.00 Z200.00:200.00 C500 E300.00:300.00:1500.00:1500.00:1500.00 ; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200:1200.00 C500 E800:800:1200:800:800 I15                     ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                              ; Set idle timeout
    ; Endstops
    M574 X1 S1 P"xstop"   ; X min active high endstop switch
    M574 Y1 S1 P"ystop"   ; Y min active high endstop switch
    ;M574 Z1 S1 P"zstop"   ; Z min active high endstop switch
    M574 C1 S2                            ; Stall detection for the couple
    ; Z probe
    ;M558 P7 H2 F360 I0 T35000             ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    M558 P8 C"zstop" H3 F360 I0 T35000     ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    G31 P200 X0 Y0 Z0                     ; Set Z probe trigger value, offset and trigger height
    M557 X20:260 Y20:240 S20.0            ; Define mesh grid
    M671 X-102.00:408.00 Y150.0:150.0 S8
    ;Stall Detection
    MM915 C S6 F0 H200 R4700                    ; Coupler
    ;Stall Detection
    M915 X Y S5 F0 H400 R4700                ; X / Y Axes
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 C0     ; Set thermistor
    M950 H0 C"bedheat" T0                    ; Bed heater
    M143 H0 S225                             ; Set temperature limit for heater 0 to 225C
    ; homec.g
    ; called to home the C axis (coupler)
    ;M913 C60        ; XY MOTORS TO 60% CURRENT
    ;G1 H2 C30 F5000
    M913 C60        ; XY MOTORS TO 60% CURRENT
    G1 H2 C-1000 F10000
    G92 C-125
    M913 C100            ; XY MOTORS TO 100% CURRENT
    G1 C0 F10000
    ;Open Coupler
    M98 P"/macros/Coupler - Unlock"
    G1 C33 F50000

    G1 C123 F50000

  • administrators

    If your C motor will only go one way, it could be that one of the phases is disconnected, because of a burned out motor winding, bad crimp connection, or faulty driver on the Duet. Try the following:

    • Use G92 followed by G1 H2 Cxx moves to test the motor and driver, with both positive and negative C values
    • Measure the resistance of the motor phases between the pins of the Duet motor connector (with power off of course).
    • If they look correct then try swapping the motor output with anther one, using M584 in config,g to swap them in firmware too (don't forget to swap the values in the two M569 commands too).

  • Am I getting close on trying to not tool change with a chimera?

    if state.nextTool = T1 
    	G1 Z4 F1000
    	;mesh levelling off
    	G29 S2
    	;Purge nozzle
    	;M98 Ppurge.g
    	;Move In
    	G53 G1 X-9 Y150 F50000
    	G53 G1 X-9 Y300 F50000
    	G53 G1 X-9 Y310 F50000
    	G53 G1 X-9 Y317 F5000
    	;Open Coupler
    	M98 P/macros/Coupler - Unlock
    	;fan off
    	M106 P2 S0
    	;Move Out
    	G53 G1 X-9 Y100 F50000

  • administrators

    Yes, if T0 and T1 are the two Chimera tools, then that should work. Or you can do this instead:

    if state.nextTool != T1 
    	G1 Z4 F1000

  • This post is deleted!

  • This post is deleted!

  • Will this work 8617aef9-67e8-4c79-abcf-ef624b3f3db3-image.png

    I got this 26691f0c-a61c-4fb7-878b-b726a0efde0e-image.png but it looks like it does not work with the 2208. it says it works with A4988 DRV8825

    I want to add a volcano also witch will make 7 tools.

  • Using 2208 with the Duet 2 Wifi? You'll need to set it up as a dumb driver then (as mentioned here)

    ref for how to set the MS1, MS2 pins as well as the solder jumpers J1 and J2 and cross refrence with the boards in question.

  • This post is deleted!

Log in to reply