Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    BLTouch offset problems only when printing

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    5
    258
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Xonundefined
      Xon
      last edited by Xon

      I have a Jubilee toolchanger with 2 tools, on which I had been using a microswitch on Z with relative success (aside from accuracy problems with the switch).
      This week I swapped to a BLTouch and got it probing successfully without much drama, and even got 1 successful print out with no problems.

      Now when I try to start a print using the primary tool (T0) the printer picks up the tool and then immediately sends it into the bed by about 3mm. This doesn't happen with T1 despite them being identical tools with almost identical offsets (a difference of 0.11mm in Z).

      Best of all, this only happens when printing!

      If I pick up T0 and G0 Z0, it lightly grabs a piece of paper perfectly, as does T1. If I initiate a print which sends T0 to Z0.2, it tries to drive it into the bed.
      If I pause the print, park T0 (ie T-1), re-home Z (required because the bed is no longer level), pick up T0 and resume the print the first layer is laid down well, and then when starting the 2nd layer it immediately tries to drive the nozzle into the bed again.

      If I take that exact g code and find/replace T0 with T1, it prints flawlessly. There is a (physical and G10 offset) difference of 0.11mm between the two extruders, so I don't understand why this ~3mm offset is applied to T0 but not T1, using the same file.

      TLDR:

      • RRF3.1.1 (though I upgraded to fix this issue - it happened with the latest RRF2 also)
      • Perfect offset when not printing, G0 Z0 lightly grabs paper
      • Around a 3mm negative offset is applied as soon as a print starts but only when using T0
      • The exact same gcode using T1 prints perfectly
      • Pausing the print, parking the tool, homing and then resuming the print works well but only for one layer, the second layer then tries to dive into the bed
      • config-override.g contains 3x M307 commands and nothing else
      • The probe offset is set using G31 in the config (included below)
      • Homing is done with G30, not the endstop method

      Can anyone help me here? What else might be applying this offset? I know it's not the slicer since using the 2nd tool has no such problems, and I'm fairly confident the bltouch is generally set up well since again it works well for T1, and works for T0 so long as it's not printing.

      config.g

      ; Jubilee 2.1.3 Config File for RepRapFirmware 3
      
      ; Name and Identification
      M550 P"Jubilee"                         ; Machine name and Netbios name
      
      ; Networking
      M552 S1
      M586 P2 S1                              ; Enable Telnet
      
      M575 P1 S1 B57600						; Enable serial port for PanelDue
      
      ; Debugging
      M111 S0                                 ; Debug off
      M929 P"eventlog.txt" S1                 ; Start logging to file eventlog.txt
      
      ; General Preferences
      M555 P2                                 ; Set Marlin-style output
      G21                                     ; Set dimensions to millimetres
      G90                                     ; Send absolute coordinates...
      M83                                     ; ...but relative extruder moves
      
      ; Joints
      M584 X0 Y1 Z5:9:8 E3:4 U2   ; Map Z to drivers 6, 7, 8. Map extruders to 3 and 4. Create Toolchanger Lock axis.
      
      M569 P0 S0                  ; Drive 0 direction | X stepper
      M569 P1 S0                  ; Drive 1 direction | Y Stepper
      
      M569 P6 S1                  ; Drive 6 direction | Front Left Z
      M569 P7 S1                  ; Drive 7 direction | Front Right Z
      M569 P8 S1                  ; Drive 8 direction | Back Z
      
      M569 P2 S0                  ; Drive 2 direction | Toolchanger Actuator
      
      M569 P3 S1 D2               ; Drive 3 direction | Extruder 0 in Spreadcycle Mode
      M569 P4 S1 D2               ; Drive 4 direction | Extruder 1 in Spreadcycle Mode
      
      ; Joint Kinematics
      M669 K1                                 ; CoreXY mode
      
      ; Kinematic bed ball locations.
      ; Locations are extracted from CAD model assuming lower left build plate corner is (0, 0) on a 305x305mm plate.
      
      M671 X297.5:2.5:150 Y313.5:313.5:-16.5 S10 ; Front Left: (297.5, 313.5) | Front Right: (2.5, 313.5) | Back: (150, -16.5)
      
      
      ; Axis and motor configuration
      M350 X16 Y16 Z16 E16 U4 I1              ; Set 16x microstepping for xyz axes & extruder, 4x for toolchanger lock. Use interpolation.
      
      M906 X2263 Y2263                        ; LDO XY motor currents (mA). 2263mA is 80% of 2828mA Peak Current. (2828mA Peak is 2000mA RMS)
                                              ; Do not exceed 90% of full XY motor current rating without heatsinking the XY motor drivers.
      M906 Z1600                              ; LDO ZZZ Motor Currents (mA).
      M906 U670 I60                           ; LDO Toolchanger Elastic Lock Motor Current and Idle Motor Percentage
      
      M201 X1100 Y1100                        ; Accelerations (mm/s^2)
      M201 Z100                               ; LDO ZZZ Acceleration
      M201 U800                               ; LDO U Accelerations (mm/s^2)
      
      M203 X18000 Y18000 Z1200 E8000 U9000    ; Maximum axis speeds (mm/min)
      M566 X1000 Y1000 Z500 E3000 U50         ; Maximum jerk speeds (mm/min)
      
      M92 X200 Y200                           ; Steps/mm for X,Y for 16x microstepping & 16T pulley
      M92 Z3200                               ; Steps/mm for Z for a T8x2 leadscrew and 0.9mm stepper. (16 * 400)/2
      M92 U30.578                             ; Steps/deg for U (LDO Stepper Motor) from (200 * 4 * 13.76)/360
      
      ; Set axis software limits and min/max switch-triggering positions.
      ; Adjusted such that (0,0) lies at the lower left corner of a 300x300mm square in the 305mmx305mm build plate.
      M208 X-13.75:313.75 Y-44:341 Z-0.2:305
      M208 U0:200                                 ; Set Elastic Lock (U axis) max rotation angle
      
      ; Machine Thermistors
      M308 Y"thermistor" S0 P"bedtemp" T100000 B3950 R4700 H0 L0    ; Built-in Keenovo Bed Thermistor values.
      M308 S3 P"duex.e2_temp" Y"pt1000" R4700         ; E2 temperature sensor
      M308 S4 Y"drivers" A"DRIVERS"                   ; sensor 4 as temperature warning and overheat flags on the TMC2660 on Duet
      M308 S5 Y"mcu-temp" A"MCU"                      ; sensor 5 as thermistor on pin e1temp for left stepper
      
      ; Machine Heaters
      M570 S5                                    ; Print will be terminated if a heater fault is not reset within 30 minutes.
      M950 H0 C"bed_heat" T0 						 ; heater 0 uses the bed_heat pin, sensor 0
      M140 H0										 ; the bed heater is heater 0
      M143 H0 S135                                 ; Maximum H0 (Bed) heater temperature
      
      ; Default settings for running a mesh bed leveling procedure:
      M557 X10:290 Y10:290 P6
      
      ; Machine Switches
      M574 X1 S1 P"^xstop"   ; X min active high endstop switch
      M574 Y1 S1 P"^ystop"   ; Y min active high endstop switch
      M574 U1 S1 P"^e0stop"  ; U max active high endstop switch
      
      ; BLTouch Z probe settings
      M950 S5 C"duex.pwm5"
      M574 Z1 S2 ; Set to probe-type Z sensor
      M558 P9 C"^zprobe.in" H5 F100 T100000 ; bltouch type probe with a plunge height of 5mm, probe speed 100mm/min and move speed 100,000mm/min (ie fast as possible)
      G31 X34.1 Y0 Z3.26
      
      ; Extruder Definitions
      M906 E1250:1250                         ; Motor currents for all E (mA).
      M201 E1300:1250                         ; E Acceleration (mm/s^2)
      M203 E8000:8000                         ; Maximum axis speeds (mm/min)
      M566 E3000:3000                         ; Maximum jerk speeds (mm/min)
      M92 E830:830                            ; BMG Extruder - 0.9 deg/step Tool0:Tool1
      M308 S1 P"e0_temp" Y"thermistor" T100000 B4725 C7.060000e-8   ; e3d style thermistor
      M308 S2 P"e1_temp" Y"thermistor" T100000 B4725 C7.060000e-8   ; e3d style thermistor
      M950 F0	C"fan0"                         ; Fan 0, part cooler fan on Tool 0
      M950 F1 C"fan1"                         ; Fan 2, part cooler fan on Tool 1
      M950 H1 C"e0heat" T1                   ; heater 1 uses the e0_heat pin and sensor 1
      M950 H2 C"e1heat" T2                   ; heater 2 uses the e1_heat pin and sensor 2
      M143 H1 S285                            ; Maximum H1 (Extruder 0) heater temperature
      M143 H2 S285                            ; Maximum H2 (Extruder 1) heater temperature
      M950 F2 C"fan2"
      M106 P2 T10 H5 S120 L100 X200    ; electronics fan triggered by any driver being over 10 degrees
      
      M563 P0 S"Extruder 0" D0 H1 F0          ; Define tool 0
      G10 P0 X-4.28 Y43.407 Z0               ; Set tool 0 offset from the bed
      G10 P0 S210 R190                        ; Set tool 0 operating and standby temperatures(-273 = "off")
      M572 D0 S0.05                           ; Set pressure advance on Extruder Drive 1
      
      M563 P1 S"Extruder 1" D1 H2 F1          ; Define tool 1
      G10 P1 X-4.842 Y43.208 Z-0.11             ; Set tool 1 offset from the bed
      G10 P1 S210 R210                        ; Set tool 1 operating and standby temperatures(-273 = "off")
      M572 D1 S0.05                            ; Set pressure advance on Extruder Drive 1
      
      
      M501                                    ; Load saved parameters from non-volatile memory
      

      config-override.g

      ; config-override.g file generated in response to M500 at 2020-10-22 18:16
      ; This is a system-generated file - do not edit
      ; Heater model parameters
      M307 H0 A373.1 C574.4 D1.8 S1.00 V24.2 B0
      M307 H1 A372.0 C198.2 D3.9 S1.00 V24.2 B0
      M307 H2 A334.6 C170.2 D3.8 S1.00 V24.2 B0
      

      homez.g

      M561 ; Disable any Mesh Bed Compensation
      G90 G1 X115.9 Y150 F10000 ; Move to the center of the bed
      M558 F500 ; Set the probing speed
      G30
      M558 F50 ; Set a slower probing speed
      G30
      G32                         ; Run 3-point bed calibration defined in bed.g
      G1 X0 Y0 F10000
      G29 S1   ; Enable Mesh Bed Compensation
      

      bed.g

      M561 ; Disable any Mesh Bed Compensation
      G30 P0 X150 Y10 Z-99999   ; probe near back leadscrew
      G30 P1 X290 Y295 Z-99999    ; probe near front left leadscrew
      G30 P2 X26 Y295 Z-99999 S3   ; probe near front right leadscrew and calibrate 3 motors
      G29 S1   ; Enable Mesh Bed Compensation
      
      1 Reply Last reply Reply Quote 0
      • mendenmhundefined
        mendenmh
        last edited by

        any possibility you set a tool offset in your slicer?

        Xonundefined 1 Reply Last reply Reply Quote 0
        • Xonundefined
          Xon @mendenmh
          last edited by

          @mendenmh unfortunately no, looking at the gcode I can see the moves are correct at Z0.2.

          1 Reply Last reply Reply Quote 0
          • Xonundefined
            Xon
            last edited by Xon

            I've worked out what is causing the Z dive, but I don't understand why.
            At the start of my Gcode is the following

            ;LAYER_CHANGE
            ;Z:0.2
            ;HEIGHT:0.2
            G1 Z0.200000 F24000.000
            G1 E-0.30000 F2400.00000
            G1 Z2.600000 F24000.000
            G1 X131.819 Y132.163
            G1 Z0.200000
            G1 E0.00000 F2400.00000
            

            If I remove the first E move (the one immediately after the Z move) like so:

            ;LAYER_CHANGE
            ;Z:0.2
            ;HEIGHT:0.2
            G1 Z0.200000 F24000.000
            G1 Z2.600000 F24000.000
            G1 X131.819 Y132.163
            G1 Z0.200000
            G1 E0.00000 F2400.00000
            

            Then I can get a successful print. So for some reason a Z move followed by a negative E move is causing the Z to go crazy and smash into the bed?!

            Edit: If I turn off retractions completely in the slicer then I can get a clean print out...

            1 Reply Last reply Reply Quote 0
            • Phaedruxundefined
              Phaedrux Moderator
              last edited by

              That's weird. Perhaps a good time to change to firmware retraction?

              Z-Bot CoreXY Build | Thingiverse Profile

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA