UNSOLVED Z restore not working on Toolchanger

  • Hello, I'm having a heck of a time getting my Toolchanger working how I'd like. Here is a link including full explanation of what's going on and my config:


    Essentially, I'm attempting to use two tools (Hemera V6 + Hemera Volcano) to print an object with a single process (Simplify3d), where one tool prints supports, and the other prints everything else. After the first toolchange, my Z drops in tPre to allow room for the Volcano, then never comes back up. It begins printing about 10mm or so above the print bed. I am completely stumped, and hoping I am just continually overlooking something. Any help is appreciated.

  • Still haven't figured this out. 3.0 is next, but clearly something else is at play here. Anyone?

  • Alright - Homebrew Toolchanger here myself, running RRF3, but i'm not aware of any significant changes in toolchange behavior.

    are you confident that your z-offsets are set correctly? Does it adjust at all after the first toolchange? It should revert back to the correct spot if your offsets are correct.

  • I've decided to only post here regarding this issue as it does not seem to be related to E3d. Apologies for taking so long on this update, but I had to step away from work temporarily for personal reasons.

    So -- the machine caught on fire.

    I updated to RRF 3.2 as recommended in the above post, updated the config, then turned on the machine.

    With no interaction from myself one of the tools began heating. When I sat at the computer I noticed a smell, followed immediately by DWC reading ~500*C on the active tool. At this point, there was fire and I had to use an extinguisher.

    First, I accept that this may (probably) be user error. But I am struggling to understand a) why the tool heated on its own, and b) why it would ever be allowed to get so hot without faulting or shutting itself off. None of the active or standby temperatures are that high, nor the maximum temperatures.

    So... Where to even begin? I am still trying to clean the machine up...

    edit: though the original Z issue is obviously secondary to fire, @Luke-sLaboratory, yes, the z-offsets were absolutely set correctly. Both tools function correctly when being used independently.

  • @plasticfactory Yikes! I saw your Config.g on the E3D forum. Can you post your latest config.g here?

    When I built my TC, I noticed that the E3D-supplied config.g has G10 offset commands for each tool under the M563 tool definitions (with X Y Z = 0). And then the G10 commands appear again at the end of the config with the actual, measure offsets. There's probably a good reason for this, but my config.g just has the offsets set directly under each tool definition.

    When you switch between tools using the console (Sending commands T0, T1, etc.), do the XYZ coordinates change to reflect your offsets?

    And also, how did you set your offsets? I'd assume that the vernier scale printing would be out of the question if your offsets aren't respected during a multi-material print?

  • Moderator

    Did the heater pin get inverted at some point? Please post your config.g.

  • ; Configurat; Configuration file for Duet WiFi / Ethernet
    ; executed by the firmware on start-up

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin

    ; Network
    M550 p"toolchanger" ; Set machine name
    ; WiFi Settings
    M552 s1
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    M667 S1 ; Select CoreXY mode

    ; Endstops
    M574 X1 S3
    M574 Y1 S3 ; Set X / Y endstop stall detection
    M574 Z0 P"nil" ; No Z endstop @used by DC42 using G30 homing
    ;M558 P7 X0 Y0 Z2 H3 F360 I0 T20000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    M558 P8 C"zstop" H5 F120 T3000 A5 S0.01
    G31 P200 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
    M557 X10:290 Y20:180 S40 ; Define mesh grid

    ; Drive direction
    M569 P0 S0 ; Drive 0 X
    M569 P1 S0 ; Drive 1 Y
    M569 P2 S1 ; Drive 2 Z
    M569 P3 S0 ; Drive 3 E0
    M569 P4 S0 ; Drive 4 E1
    M569 P5 S1 ; Drive 5 E2
    M569 P6 S1 ; Drive 6 E3
    M569 P7 S0 ; Drive 7 COUPLER
    M569 P8 S0 ; Drive 8 UNUSED
    M569 P9 S0 ; Drive 9 UNUSED

    M584 X0 Y1 Z2 C7 E3:4:5:6 ; Apply custom drive mapping
    M208 X-35:328.5 Y-49:243 Z0:300 C0:500 S0 ; Set axis maxima & minima
    M350 E16:8:16:8 C8 I0 ; Configure microstepping without interpolation
    M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation
    M92 X100 Y100 Z1600 C100 E215:417:409:409 ; Set steps per mm
    M566 X400 Y400 Z8 C2 E2:2:2:2 ; Set maximum instantaneous speed changes (mm/min)
    M203 X35000 Y35000 Z1200 C5000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min)
    M201 X6000 Y6000 Z400 C400 E2500:2500:2500:2500 ; Set accelerations (mm/s^2)
    M906 X2000 Y2000 Z1330 C400 E1680:1680:1680:1680 I30 ; Set motor currents (mA) and motor idle factor in percent
    M84 S120 ; Set idle timeout

    ;Stall Detection
    M915 C S5 F0 H200 R4700 ; Coupler

    ;Stall Detection
    M915 X Y S5 F0 H400 R4700 ; X / Y Axes

    ; Heaters
    ;M305 P0 T100000 B4138 C0 ; M305 deprecated in RRF3
    M308 S0 P"bedtemp" Y"thermistor" A"bed"
    M950 H0 C"bedheat" T0
    M140 H0
    M143 H0 S225 ; Set temperature limit for heater 0 to 225C

    ;M305 S"T2" P3 R4700 T100000 B4388 ; Deprecated in RRF3
    M308 S3 P"duex.e2temp" Y"thermistor" A"Tool 2" F2
    M950 H3 C"!duex.e2heat" T3
    M143 H3 S300 ; Set temperature limit for heater 3 to 300C

    ;M305 S"T3" P4 R4700 T100000 B4388 ; Deprecated in RRF3
    M308 S4 P"duex.e3temp" Y"thermistor" A"Tool 3" F3
    M950 H4 C"!duex.e3heat" H4
    M143 H4 S300 ; Set temperature limit for heater 4 to 300C

    ; Tools
    M563 P2 S"T2" D2 H3 ; Define tool 2
    G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets
    G10 P2 R220 S265 ; Reset initial tool 2 active and standby temperatures to 0C

    M563 P3 S"T3" D3 H4 ; Define tool 3
    G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets
    G10 P3 R210 S240 ; Reset initial tool 3 active and standby temperatures to 0C

    ; Fans
    ;M106 P0 S0 ; Deprecated in RRF3
    ;M106 P1 S255 H1 T70 ; Deprecated in RRF3
    ;M106 P2 S0 ; Deprecated in RRF3
    ;M106 P3 S255 H2 T70 ; Deprecated in RRF3
    ;M106 P4 S0 ; Deprecated in RRF3
    ;M106 P5 S255 H3 T70 ; Deprecated in RRF3
    ;M106 P6 S0 ; Deprecated in RRF3
    ;M106 P7 S255 H4 T70 ; Deprecated in RRF3
    ;M106 P8 S0 ; Deprecated in RRF3

    M950 F2 C"fan0"
    M950 F3 C"fan1"
    M950 F4 C"duex.fan5"
    M950 F5 C"duex.fan7"

    M593 F50 ; cancel ringing at 50Hz (https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/)
    ;M376 H15 ; bed compensation taper

    ;tool offsets
    G10 P0 X0 Y0 Z-52 ; T0
    G10 P1 X-9 Y39 Z-5 ; T1
    G10 P2 X21 Y43 Z-6.55 ; T2
    G10 P3 X21 Y43 Z-14.95 ; T3

    ;deselect tools
    ;T2 P0
    ;T3 P0

    ;M572 D0 S0.2 ; pressure advance T0
    ;M572 D1 S0.2 ; pressure advance T1
    ;M572 D2 S0.2 ; pressure advance T2
    ;M572 D3 S0.2 ; pressure advance T3

  • Moderator

    @plasticfactory said in Z restore not working on Toolchanger:

    ;M305 S"T2" P3 R4700 T100000 B4388 ; Deprecated in RRF3
    M308 S3 P"duex.e2temp" Y"thermistor" A"Tool 2" F2
    M950 H3 C"!duex.e2heat" T3
    M143 H3 S300 ; Set temperature limit for heater 3 to 300C
    ;M305 S"T3" P4 R4700 T100000 B4388 ; Deprecated in RRF3
    M308 S4 P"duex.e3temp" Y"thermistor" A"Tool 3" F3
    M950 H4 C"!duex.e3heat" H4
    M143 H4 S300 ; Set temperature limit for heater 4 to 300C

    Those exclamation marks on the pin names inverts the signal. So when the heater is off it's actually sending power.

    Here's what the web configurator generates:

    M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4388 ; configure sensor 1 as thermistor on pin duex.e2temp
    M950 H1 C"duex.e2heat" T1                          ; create nozzle heater output on duex.e2heat and map it to sensor 1
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit

    This is the risk of manually creating a config.

  • Thank you. Sucks to learn this the hard way but to anyone reading, take it to heart that you want a fire extinguisher near by 🙂 When I get things cleaned up I'll report back.

Log in to reply