UNSOLVED Head crashing in RRF3.22



  • I just upgraded to RRF 3.2 and then 3.2.2 from version 3.0 on n E3D toolchanger

    I read the Release Notes (and thought I understood them) and the notification that " it should be sufficient to upload file Duet2and3Firmware-3.2.2.zip through the System page of Duet Web Control."

    The problem:
    under 3.0 and 3.1.1 after homing is complete ,a tool change request picks up the tool and applies the offset, so for example a G1 X150 Y100 Z0.4 moves to approximately the centre of the bed at a height 0.4 mm above the bed surface

    However
    Under 3.2 Homing was achieved. The tool pick up was successful and the bed immediately moves upwards once the tool is priming on the wiper.
    When the G1 command is given the bed is above the nozzle height, the nozzle collides with the bed

    Under 3.2.2 I cannot home, the Z home switch never triggers and the bed tries to continue upwards until it stalls ( This may be because the Z home switch was broken by the 3.2 tests, I will take it apart again)

    Additionally in 3.2 and 3.2.2 sending Tn P0 ( virtual tool selection) followed by a T-1 results in the bed rising until the Z home triggers. ( this was done before 3.2.2 failed its homing, the zhome switch was working after this trial)

    Since I cannot believe that I am the only person trying to 3.22 on a Duet 2 with Duex board, there is obviously something I am missing.

    The next steps are to revert to 3.1.1 and check the Z home switch, but I would like to know what change I should have made to the sys files that I obviously did not.


  • Moderator

    Can you share your config files as well?

    Does this change from 3.2 perhaps come into play?

    If a tool change is requested but changing tool would cause the Z max limit to be exceeded because of the changed tool Z offset, the tool change is now aborted



  • @Phaedrux I thought about that line ( and the"Added lastStopHeight to the Z probe object model") but assumed that the Z Max would be when the bed was at its lowest extent: ie the biggest object one could print. After all, when the toolchanger does a HomeZ there is no tool in the toolhead, the offset of the tool would be irrelevant.

    I noticed the problem because I was trying to get a Hermera in T3 running reliably, the offset from Tool 0 seemed to change every time the tool was deployed and I hoped the software upgrade might be part of the solution.

    I can now confirm that the last attempt on 3.2/3.2.2 broke the Z homing microswitch...but luckily E3D have recently started selling them in the shop!

    Config.g
    Configuration file for Duet WiFi / Ethernet running RRF3 on E3D Tool Changer
    ; 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
    M552 S1 ; Enable Networking
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    M667 S1 ; Select CoreXY mode

    ; 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 Titan
    M569 P6 S1 ; Drive 6 E3 Hermera Direct Drive same direction as mirror Titan
    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 ; Set axis maxima & minima
    ;M92 X100 Y100 Z1600 C200 E834:834:834:834 ; Set steps per mm assuming x16 microstepping
    M92 X100 Y100 Z1600 C200 E834:834:834:409 ; Set steps per mm assuming x16 microstepping Hermera (409), Titan(834)
    M350 E16:16:16:16 I1 ; Configure microstepping with interpolation (extruder)
    M350 C16 I1 ; Configure microstepping with interpolation (Coupler)
    M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation (Axes)
    M566 X400 Y400 Z80 C2 E200:200:200:200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X35000 Y35000 Z1200 C10000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min)
    M201 X6000 Y6000 Z400 C500 E2500:2500:2500:2500 ; Set accelerations (mm/s^2)
    M906 X2000 Y2000 Z1330 C500 E1600:1600:1600:940 I30 ; Set motor currents (mA) and motor idle factor in percent HERMERA 940 mA (see dozuki hermera extruder assembly guide S5
    M84 S120 ; Set idle timeout

    ; Endstops
    M574 X1 Y1 S3 ; Set X / Y endstop stall detection
    M574 Z0 ; No Z endstop
    M574 C1 S3 ; Stall detect coupler at low end of its range

    ; Z probe
    M558 P8 C"zstop" H3 F360 I0 T20000 ; 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 X10:290 Y20:180 S40 ; Define mesh grid

    ;Stall Detection
    M915 C S6 F0 H200 R4700 ; Coupler

    ;Stall Detection
    M915 X Y S3 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

    M308 S1 P"e0temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor [limited to 285C before damage]
    M950 H1 C"e0heat" T1 ; Extruder 0 heater
    M143 H1 S285 ; Set temperature limit for heater 1 to 285C [300C]

    M308 S2 P"e1temp" Y"thermistor" A"T1" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H2 C"e1heat" T2 ; Extruder 1 heater
    M143 H2 S285 ; Set temperature limit for heater 2 to 285C [300C]

    M308 S3 P"e2temp" Y"thermistor" A"T2" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H3 C"duex.e2heat" T3 ; Extruder 2 heater
    M143 H3 S285 ; Set temperature limit for heater 3 to 285 [300C]

    M308 S4 P"e3temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor (v6 and Hermera)
    M950 H4 C"duex.e3heat" T4 ; Extruder 3 heater
    M143 H4 S285 ; Set temperature limit for heater 4 to 285 [300C]

    ; Tools
    M563 P0 S"T0" D0 H1 F2 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets
    G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C

    M563 P1 S"T1" D1 H2 F4 ; Define tool 1
    G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets
    G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C

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

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

    ; Fans
    ; Fan0 output is not used
    M950 F1 C"fan1"
    M950 F2 C"fan2"
    M950 F3 C"duex.fan3"
    M950 F4 C"duex.fan4"
    M950 F5 C"duex.fan5"
    M950 F6 C"duex.fan6"
    M950 F7 C"duex.fan7"
    M950 F8 C"duex.fan8"

    M106 P1 S255 H1 T70 ; T0 HE
    M106 P2 S0 ; T0 PCF (part cooling fan)
    M106 P3 S255 H2 T70 ; T1 HE
    M106 P4 S0 ; T1 PCF
    M106 P5 S255 H3 T70 ; T2 HE
    M106 P6 S0 ; T2 PCF
    M106 P7 S255 H4 T70 ; T3 HE
    M106 P8 S0 ; T3 PCF

    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 :commented out to test interference with mesh compensation 31/10/20

    ;tool offsets
    G10 P0 X-9 Y39 Z-5.23 ; T0 -5 -0.08
    G10 P1 X-9.3 Y39.4 Z-4.55 ; T1 -5-0.35
    G10 P2 X-9.45 Y39.22 Z-4.68 ; T2 =5 -0.21
    ;G10 P3 X-8.75 Y39.15 Z-4.63 ; T3 -5 -0.31 Titan V6
    G10 P3 X19.92 Y43.25 Z-5.51 ; was x19.72, z=-5.36 squishing layer, but was fine previously?

    ; Bowden tubes are ~700mm long so PA almost certainly needs to be increased
    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



  • Hi,

    I reposted your config.g file using the </> tag. As you can see it provides a scrolling region for tag so you can post multiple files easily.

    Frederick

    Config.g
    Configuration file for Duet WiFi / Ethernet running RRF3 on E3D Tool Changer
    ; 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
    M552 S1 ; Enable Networking
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet
    
    M667 S1 ; Select CoreXY mode
    
    ; 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 Titan
    M569 P6 S1 ; Drive 6 E3 Hermera Direct Drive same direction as mirror Titan
    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 ; Set axis maxima & minima
    ;M92 X100 Y100 Z1600 C200 E834:834:834:834 ; Set steps per mm assuming x16 microstepping
    M92 X100 Y100 Z1600 C200 E834:834:834:409 ; Set steps per mm assuming x16 microstepping Hermera (409), Titan(834)
    M350 E16:16:16:16 I1 ; Configure microstepping with interpolation (extruder)
    M350 C16 I1 ; Configure microstepping with interpolation (Coupler)
    M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation (Axes)
    M566 X400 Y400 Z80 C2 E200:200:200:200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X35000 Y35000 Z1200 C10000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min)
    M201 X6000 Y6000 Z400 C500 E2500:2500:2500:2500 ; Set accelerations (mm/s^2)
    M906 X2000 Y2000 Z1330 C500 E1600:1600:1600:940 I30 ; Set motor currents (mA) and motor idle factor in percent HERMERA 940 mA (see dozuki hermera extruder assembly guide S5
    M84 S120 ; Set idle timeout
    
    ; Endstops
    M574 X1 Y1 S3 ; Set X / Y endstop stall detection
    M574 Z0 ; No Z endstop
    M574 C1 S3 ; Stall detect coupler at low end of its range
    
    ; Z probe
    M558 P8 C"zstop" H3 F360 I0 T20000 ; 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 X10:290 Y20:180 S40 ; Define mesh grid
    
    ;Stall Detection
    M915 C S6 F0 H200 R4700 ; Coupler
    
    ;Stall Detection
    M915 X Y S3 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
    
    M308 S1 P"e0temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor [limited to 285C before damage]
    M950 H1 C"e0heat" T1 ; Extruder 0 heater
    M143 H1 S285 ; Set temperature limit for heater 1 to 285C [300C]
    
    M308 S2 P"e1temp" Y"thermistor" A"T1" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H2 C"e1heat" T2 ; Extruder 1 heater
    M143 H2 S285 ; Set temperature limit for heater 2 to 285C [300C]
    
    M308 S3 P"e2temp" Y"thermistor" A"T2" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H3 C"duex.e2heat" T3 ; Extruder 2 heater
    M143 H3 S285 ; Set temperature limit for heater 3 to 285 [300C]
    
    M308 S4 P"e3temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor (v6 and Hermera)
    M950 H4 C"duex.e3heat" T4 ; Extruder 3 heater
    M143 H4 S285 ; Set temperature limit for heater 4 to 285 [300C]
    
    ; Tools
    M563 P0 S"T0" D0 H1 F2 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets
    G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C
    
    M563 P1 S"T1" D1 H2 F4 ; Define tool 1
    G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets
    G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C
    
    M563 P2 S"T2" D2 H3 F6 ; Define tool 2
    G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets
    G10 P2 R0 S0 ; Reset initial tool 2 active and standby temperatures to 0C
    
    M563 P3 S"T3" D3 H4 F8 ; Define tool 3
    G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets
    G10 P3 R0 S0 ; Reset initial tool 3 active and standby temperatures to 0C
    
    ; Fans
    ; Fan0 output is not used
    M950 F1 C"fan1"
    M950 F2 C"fan2"
    M950 F3 C"duex.fan3"
    M950 F4 C"duex.fan4"
    M950 F5 C"duex.fan5"
    M950 F6 C"duex.fan6"
    M950 F7 C"duex.fan7"
    M950 F8 C"duex.fan8"
    
    M106 P1 S255 H1 T70 ; T0 HE
    M106 P2 S0 ; T0 PCF (part cooling fan)
    M106 P3 S255 H2 T70 ; T1 HE
    M106 P4 S0 ; T1 PCF
    M106 P5 S255 H3 T70 ; T2 HE
    M106 P6 S0 ; T2 PCF
    M106 P7 S255 H4 T70 ; T3 HE
    M106 P8 S0 ; T3 PCF
    
    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 :commented out to test interference with mesh compensation 31/10/20
    
    ;tool offsets
    G10 P0 X-9 Y39 Z-5.23 ; T0 -5 -0.08
    G10 P1 X-9.3 Y39.4 Z-4.55 ; T1 -5-0.35
    G10 P2 X-9.45 Y39.22 Z-4.68 ; T2 =5 -0.21
    ;G10 P3 X-8.75 Y39.15 Z-4.63 ; T3 -5 -0.31 Titan V6
    G10 P3 X19.92 Y43.25 Z-5.51 ; was x19.72, z=-5.36 squishing layer, but was fine previously?
    
    ; Bowden tubes are ~700mm long so PA almost certainly needs to be increased
    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
    
       0  
    3
    POSTS18
    VIEWS    
    


  • It may be helpful to post your four homing files as well using the </> tag.

    Thanks.

    Frederick



  • Just out of curiosity why do you set the offsets of each tool twice?

    Thanks.

    Frederick



  • @fcwilt "Just out of curiosity why do you set the offsets of each tool twice?"

    Because I copied the config.g from one published by ( IIRC, DC42) when I was too confused / tired /lazy to upgrade from RRF 2 manually and I really, really wanted to see my Xmas present working... (yup, going on 10 years old)
    And , I guess ,that since that was how it had been laid out by someone who knew better than I , I supposed there were probably good reasons to do it that way, like initialising the tools , and it didn't seem to affect the working at the time.

    And it's a lot easier to find all the tool offsets in one place

    Now you mention it, if RRF3 interprets the config by taking the first set of tool offsets and ignoring any subsequent offsets then I would get the results I've been seeing, as if the tools had zero length.

    ........PAUSE FOR EXPERIMENTS



  • @robinS3 " ........PAUSE FOR EXPERIMENTS"

    So, Experiments.

    I replaced the Z homing microswitch, left the machine in 3.11, commented out the first set of tool offsets ( X0 Y0 Z0) and with a certain trepidation, homed Z.

    No problem.

    I then set a tool offset on T0 of 50mm and sent T0 to pick up the tool .
    Tpre0 collects the tool
    sets to relative moves
    Lowers the bed ( but no offset has yet been applied to the tool, hence the warning in Tpren)
    resets to absolute moves
    and moves out ( the tool is now over the bed at the safeheight

    Tpost0 then moves the tool to the wiper, wipes the tool ,
    On completion of Tpostn

    the bed rises to 0 (presumably the last height set before TPREn)
    And then applies the tool offset setting (very noticeable when there's a 50mm offset)

    I then reloaded RRF 3.2.2 and repeated the same set of actions.

    I got the same results so there doesn't seem to be a problem in normal working
    The fault is not reappearing.. I don't now what seems to have cured the system, except that the Hermera tool does not always dock correctly and sometimes you end with a locked but empty toolhead. The fault originally appeared after several such failures,

    So I shall try to reproduce the failure...or perhaps just get on and print something!



  • @robinS3
    The thread was marked solved, but isn't!

    If you do a virtual tool pickup (aka Tn P0) and then do T-1; as I did this morning to preheat the tool , the bed homes up and stops when it stalls against the toolhead.

    It read a Zheight of -2.35 and had fully compressed the Z probe microswitch and the arms of the tool head were touching the bed

    If you then select another tool, it seems that the last bed height may be set to -2.35 so that when the system puts in the tool offset on completion of Tpostn it is set in reference to the last bed height, expecting that to have been either a real tool (subtract tool offset and get the Z homed position) or Zhome itself.

    Console records:
    19/02/2021, 08:52:00 Warning: Tool 0 was not driven because its heater temperatures were not high enough or it has a heater fault
    19/02/2021, 08:51:56 T0
    Warning: Tool 0 was not driven because its heater temperatures were not high enough or it has a heater fault
    19/02/2021, 08:49:08 T-1
    19/02/2021, 08:48:54 T3 P0
    19/02/2021, 08:47:11 Connected to toolchanger

    What it doesn't show is that this time I did a Z home (button click) after the T-1 so T0 seems to have the correct bed alignment ( so console doesn't catch everything!)

    It gets a bit more complicated later, yesterday I was about to print after a random series of virtual and real pickups when the toolhead failed in a real pickup of Tool 3, my Hermera tool. I noticed the retracted (and toolless head) appeared way off axis.

    The Dashboard indicated X=302.1 and Y=200 , correct for this head in the Tpostn position (it doesn't wipe yet because I don't have a dynamic wiper that applies tool offset ) but it was off by the tool offsets ( ie moving the tool in X to 302.1 +19.72 lined up the coupler and the tool and adding the Y offset to (so it appeared to be at Y270 when it normally picks up at Y227) . However the coupler is now locked because it thinks it has a tool coupled, so unlock the coupler, go to docking position and try to drop the tool and as the toolhead retracted it dragged the tool off the dock. ( typically this is because the alignment is not exactly right, and my maths may have been 'rounded')

    So I switched off the machine, had a cup of tea and switched everything back on without virtual pickups etc. It printed using the Hermera.

    However, a word of warning....don't use TnP0, T-1, Tn sequences immediately after Z homing, and if you do, add another XYZ home in before relying on your tool offsets.

    I also discovered (too late) that G10 P3 will print all the tool offsets applied to the Tool P3. (It's implicit in the RRF practice but not explicit in the documentation for G10)


  • administrators

    @robinS3 said in Head crashing in RRF3.22:

    The thread was marked solved, but isn't!

    If you mean this thread, as it is your thread you can change it to unsolved.


Log in to reply