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

    Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    7
    50
    3.2k
    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.
    • juliannundefined
      juliann
      last edited by

      Hi!

      I am having a recurrent issue with the Z calibration of my RatRig V-Core 3 500mm.

      After getting the perfect first layer calibration and being able to complete a print without issues, when I send new prints I always need to adjust the baby steps to get the same good results as the previous one. What I am missing?

      I will appreciate any advice/ help to solve this problem. 🙂

      The machine has the following setup:

      • Duet 3 Mini 5+ (with SBC)
      • Toolbard 1LD v1.1
      • BL-Touch 3.1

      Thank you very much!
      Julián.

      config.g:

      ; General preferences 
      
      G90                                     ; send absolute coordinates...
      M83                                     ; ...but relative extruder moves
      M550 P"duet3"                        ; set printer name
      M669 K1                                 ; CoreXY
      G21                                     ; Set Units to Millimeters
      
      ; Network
      M586 P0 S1                              ; enable HTTP
      M586 P1 S0                              ; disable FTP
      M586 P2 S0                              ; disable Telnet
       
       G4 S2   ;wait for expansion boards to start
       
      ; Drives
      M569 P0.0 S0 D3                         ; physical drive 0.0 goes forwards
      M569 P0.1 S0 D3                         ; physical drive 0.1 goes forwards
      M569 P0.2 S0 D3                         ; physical drive 0.2 goes forwards
      M569 P0.3 S1 D3                         ; physical drive 0.3 goes forwards
      M569 P0.4 S1 D3                         ; physical drive 0.4 goes forwards
      M569 P20.0 S0 D3                         ; physical drive 0.5 goes forwards
      M584 X0.4 Y0.3 Z0.0:0.1:0.2 E20.0        ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
      
      ;LGX
      M92 X80.00 Y80.00 Z800.00 E408.23
      M906 X1200 Y1200 Z1000 E800 I30               ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                 ; Set idle timeout
      
      M566 X600.00 Y600.00 Z60.00 E600 P1          ; set maximum instantaneous speed changes (mm/min)
      M203 X60000.00 Y60000.00 Z1000.00 E3600.00     ; set maximum speeds (mm/min)
      M201 X3500.00 Y3500.00 Z100.00 E3600.00
      
      ;Axis Limits
      M208 X0 Y0 Z0 S1                              ; set axis minima
      M208 X500 Y500 Z500 S0                         ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"20.io2.in"                           ; configure active high endstops
      M574 Y2 S1 P"io1.in"                           ; configure active high endstops
      M574 Z1 S2                                     ; configure Z-probe endstop for low end on Z
      
      ; Z-Probe
      ;; BLTouch
      M950 S0 C"20.io0.out"                     ; Create a servo pin on io3
      M558 P9 C"20.io0.in" F150 H4 R0.2 T12000 A5 B0  ; set Z probe type to unmodulated and the dive height + speeds
      
      G31 P1000 X-39.25 Y-13.50 Z3.180
      
      M671 X-4.5:250:504.5 Y-4.52:505:-4.52 S50       ; Define positions of Z leadscrews or bed levelling screws
      M557 X25:475 Y25:475 S25                    ; define 5x5 mesh grid
      
      M563 P0 D0 H1 F1           ; define tool 0
      
      ; BED HEATER
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"    ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0                                     ; create bed heater output on out5 and map it to sensor 0
      M307 H0 B0 S1.00                                       ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                                ; map heated bed to heater 0
      M143 H0 S120                                        ; set temperature limit for heater 0 to 110C
      
      ;; BED Heater PID Tune JEN
      M307 H0 B0 R0.795 C325.9 D3.08 S1.00 V23.9
      
      ; Fans
      M950 F0 C"20.out2" Q25000                   ; create fan 0 on pin out3 and set its frequency
      M106 P0 C"Hotend Fan" S.5 H1 T45      ; set fan 0 name and value. Thermostatic control turned on for Hotend
      M950 F1 C"!20.out1+out1.tach" Q25000                   ; create fan 1 on pin out4 and set its frequency
      M106 P1 C"Layer Fan" S0 H-1 L0.2 X0.3      ; set fan 1 name and value. Thermostatic control is turned off
      
      M950 F2 C"!out3+out3.tach" Q25000                  ; create fan 1 on pin out4 and set its frequency
      M106 P2 C"Filter & Bottom Fans" S0 H-1 L255       ; set fan 1 name and value. Thermostatic control is turned off
      M950 F3 C"!out4+out4.tach" Q25000                  ; create fan 1 on pin out4 and set its frequency
      M106 P3 C"Exhaust Fan" S0 H-1 L255       ; set fan 1 name and value. Thermostatic control is turned off
      M950 F4 C"out5" Q10                  ; create fan 1 on pin out4 and set its frequency
      M106 P4 C"12vFANs" S1.0 H-1 L255       ; set fan 1 name and value. Thermostatic control is turned off
      
      ; Tools
      G10 P0 X0 Y0 Z0            ; set tool 0 axis offsets
      G10 P0 R0 S0               ; set initial tool 0 active and standby temperatures to 0C
      
      M308 S1 P"20.temp0" Y"thermistor" T500000 B4723 C1.196220e-7 ; PARA SLICE ENGINNERING HIGH TEMP
      M950 H1 C"20.out0" T1         ; create nozzle heater output on out2 and map it to sensor 1
      M307 H1 B0 S1.00           ; disable bang-bang mode for heater and set PWM limit
      M143 H1 S300               ; set the maximum temperature in C for heater
      M307 H1 B0 R2.138 C163.4:146.8 D7.88 S1.00 V23.8
      
      
      ; Miscellaneous
      M575 P1 B57600 S1;enable panelDue UART
      M501                                               ; load saved parameters from non-volatile memory
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set tension thresholds and actions to run on power loss
      M404 N1.75 D0.4                                 ; Filament width and nozzle diameter
      
      ;DHT Sensor on IO4
      M308 S10 P"io4.out+io4.in" Y"dht22" A"Chbr Temp[C]"
      M308 S11 P"S10.1" Y"dhthumidity" A"Chbr Hum[%]"
      
      M591 D0 P3 C"20.io1.in" S0 R10:200 L22.00 E3.0 	; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length
      
      ;Input Shaping
      M593 P"none"     ; disable DAA
      
      ; Pressure Advance
      M572 D0 S0.18
      
      
      ;Taper Height
      M376 H20
      
      ; Set up Accelerometer
      M955 P20.0 I12 S1000 Q2000000 ; Accelerometer on toolboard, Enable for RRF 3.3 Stable
      
      M593 P"ei3" F68.43 S0.1 L10
      T0
      

      config-override.g

      
      ; Heater model parameters
      M307 H0 R0.795 C325.900:325.900 D3.10 S1.00 V23.9 B0
      M307 H1 R2.138 C163.400:146.800 D7.90 S1.00 V23.8 B0
      ; Workplace coordinates
      G10 L2 P1 X0.00 Y0.00 Z0.00
      G10 L2 P2 X0.00 Y0.00 Z0.00
      G10 L2 P3 X0.00 Y0.00 Z0.00
      G10 L2 P4 X0.00 Y0.00 Z0.00
      G10 L2 P5 X0.00 Y0.00 Z0.00
      G10 L2 P6 X0.00 Y0.00 Z0.00
      G10 L2 P7 X0.00 Y0.00 Z0.00
      G10 L2 P8 X0.00 Y0.00 Z0.00
      G10 L2 P9 X0.00 Y0.00 Z0.00
      
      

      bed.g

      M290 R0 S0    ;  clear baby stepping
      M561          ;  reset all bed adjustments
      M400          ;  flush move queue
      
      if !move.axes[0].homed or !move.axes[1].homed or !move.axes[2].homed
        echo "not all axes homed, homing axes first"
        G28
      
      
      while true
        if iterations = 5
          abort "Auto calibration repeated attempts ended, final deviation", move.calibration.final.deviation ^ "mm"
        G30 P0 X5 Y10 Z-99999 ; probe near a leadscrew
        if result != 0
          continue
        G30 P1 X245 Y470 Z-99999 ; probe near a leadscrew
        if result != 0
          continue
        G30 P2 X460 Y10 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors
        if result != 0
          continue
        if move.calibration.initial.deviation <= 0.01
          break
        echo "Repeating calibration because deviation is too high (" ^ move.calibration.initial.deviation ^ "mm)"
      ; end loop
      echo "Auto calibration successful, deviation", move.calibration.final.deviation ^ "mm"
      G0 X250 Y250 Z10 F9000
      ; rehome Z as the absolute height of the z plane may have shifted
      G28 Z
      G29 S1
      

      homeall.g

      M280 P0 S160           ; Ensure the pin is raised
      
      G91                     ; relative positioning
      G1 H2 Z10 F6000          ; lift Z relative to current position
      
      G1 H1 X-505 Y505 F3600 ; move quickly to X and U axis endstops and stop there (first pass)
      G1 H1 X-505 F1800 ; move quickly to X and U axis endstops and stop there (first pass)
      G1 H1 Y505 F1800 ; move quickly to X and U axis endstops and stop there (first pass)
      G1 H1 X-505 Y505 F360  ; move slowly to X and U axis endstops once more (second pass)
      G1 H1 X-505 F360  ; move slowly to X and U axis endstops once more (second pass)
      G1 H1 Y505 F360  ; move slowly to X and U axis endstops once more (second pass)
      
      G90                     ; absolute positioning
      G1 X250 Y250 F10000 ; go to first probe point
      G30                     ; home Z by probing the bed
      
      G91                    ; relative positioning
      G1 Z10 F1800             ; lift Z relative to current position
      G90                    ; absolute positioning
      G1 X0 Y35 F10000
      

      homex.g

      G91               ; relative positioning
      G1 H1 X-505 F1800 ; move quickly to X axis endstop and stop there (first pass)
      G1 H2 X5 F6000    ; go back a few mm
      G1 H1 X-505 F360  ; move slowly to X axis endstop once more (second pass)
      G90               ; absolute positioning
      
      G1 X0 F6000
      
      

      homey.g

      G91               ; relative positioning
      G1 H1 Y505 F1800 ; move quickly to Y axis endstop and stop there (first pass)
      G1 Y-5 F6000     ; go back a few mm
      G1 H1 Y505 F360  ; move slowly to Y axis endstop once more (second pass)
      G90               ; absolute positioning
      G1 Y250 F6000
      

      homez.g

      ; BLTouch
      ;M280 P0 S160           ; Precautionary alarm release
      M280 P0 S160            ; Ensure the pin is raised
      
      G91               ; relative positioning
      G1 H2 Z5 F6000    ; lift Z relative to current position
      G90               ; absolute positioning
      G1 X250 Y250 F10800 ; go to first probe point
      G30               ; home Z by probing the bed
      
      ; Uncomment the following lines to lift Z after probing
      G91              ; relative positioning
      G1 Z5 F100       ; lift Z relative to current position
      G90              ; absolute positioning
      
      T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
      • T3P3Tonyundefined
        T3P3Tony administrators @juliann
        last edited by

        @juliann how repeatable is the z probe if you probe manually multiple times in the same place?

        www.duet3d.com

        juliannundefined 1 Reply Last reply Reply Quote 0
        • juliannundefined
          juliann @T3P3Tony
          last edited by

          Hi @t3p3tony

          Which commands should I use to probe manually?
          Thanks!

          PCRundefined T3P3Tonyundefined 2 Replies Last reply Reply Quote 0
          • PCRundefined
            PCR @juliann
            last edited by

            @juliann

            you could try this macro

            
             
            
            ; Reprap firmware version 3.3b2 or later required!
            
             
            
             
            
             
            
            ; if two speed probing is configured in M558,we probably want to reduce the speed for this test
            
             
            
            var ProbeSpeedHigh = sensors.probes[0].speeds[0]*60 ; Speeds are saved in mm/sec in the object model but M558 uses mm/min
            
             
            
            var ProbeSpeedLow = sensors.probes[0].speeds[1]*60
            
             
            
             
            
             
            
             
            
             
            
            M558 F60 ; reduce probe speed to 60mm/min for accuracy - adjust F parameter as required
            
             
            
             
            
             
            
            ;define some variables to store readings
            
             
            
             
            
             
            
            var NumTests=10 ; modify this value to define number of tests
            
             
            
             
            
             
            
            ; Do not change below this line
            
             
            
            var RunningTotal=0
            
             
            
            var Average=0
            
             
            
            var Lowest=0
            
             
            
            var Highest=0
            
             
            
             
            
             
            
             
            
             
            
            ; If the printer hasn't been homed, home it
            
             
            
            if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
            
             
            
              G28
            
             
            
            else
            
             
            
            	G1 Z{sensors.probes[0].diveHeight} F360 ; if axes homed move to dive height
            
             
            
             
            
             
            
            M561 ; clear any bed transform
            
             
            
             
            
             
            
            M290 R0 S0 ; clear babystepping
            
             
            
             ;ensure you have room for the probe
            
             
            
            if move.axes[2].machinePosition < sensors.probes[0].diveHeight
            
             
            
            	G1 Z{sensors.probes[0].diveHeight}
            
             
            
            ; move nozzle to centre of bed
            
             
            
            G1 X{(move.axes[0].min + move.axes[0].max)/2} Y{(move.axes[1].min + move.axes[1].max)/2}
            
             
            
             
            
             
            
            M564 S0 H0 ; Allow movement beyond limits
            
             
            
             
            
             
            
             
            
             
            
            M280 P0 S160 I1 ; reset BL Touch
            
             
            
            G4 S0.5
            
             
            
            M98 P"0:/sys/retractprobe.g" ; Ensure probe is retracted & reset
            
             
            
            G4 S0.5
            
             
            
            M561 ; clear any bed transform
            
             
            
            ; Jog head to position
            
             
            
            M291 P"Jog nozzle to touch bed" R"Set nozzle to zero" S3 Z1
            
             
            
             
            
             
            
            G92 Z0 ; set Z position to zero
            
             
            
            M291 P"Press OK to begin" R"Ready?" S3;
            
             
            
             
            
             
            
            ; Move probe over top of same point that nozzle was when zero was set
            
             
            
            G1 Z{sensors.probes[0].diveHeight}; lift head
            
             
            
            G1 X{move.axes[0].machinePosition - sensors.probes[0].offsets[0]} Y{move.axes[1].machinePosition - sensors.probes[0].offsets[1]} F1800
            
             
            
             
            
             
            
            echo "Current probe offset = " ^ sensors.probes[0].triggerHeight ^ "mm"
            
             
            
             
            
             
            
            ; carry out 10 probes (or what is set in NumTests variable)
            
             
            
             
            
             
            
            while iterations < var.NumTests
            
             
            
            	G1 Z{sensors.probes[0].diveHeight} ; move to dive height
            
             
            
            	if sensors.probes[0].value[0]=1000 ; if probe is in error state
            
             
            
            		echo "Probe in error state- resetting"
            
             
            
            		M280 P0 S160 I1 ; reset BL Touch
            
             
            
            		G4 S0.5
            
             
            
            		M98 P"0:/sys/retractprobe.g" ; Ensure probe is retracted & reset
            
             
            
            		G4 S0.5
            
             
            
            	G30 S-1
            
             
            
            	M118 P2 S{"Test # " ^ (iterations+1) ^ " Triggered @ " ^ move.axes[2].machinePosition ^ "mm"} ; send trigger height to Paneldue console
            
             
            
            	M118 P3 S{"Test # " ^ (iterations+1) ^ " Triggered @ " ^ move.axes[2].machinePosition ^ "mm"} ; send trigger height to DWC console
            
             
            
             
            
             
            
            	if iterations == 0
            
             
            
            		set var.Lowest={move.axes[2].machinePosition} ; set the new lowest reading to first probe height
            
             
            
            		set var.Highest={move.axes[2].machinePosition} ; set the new highest reading to first probe height
            
             
            
             
            
             
            
            	if move.axes[2].machinePosition < var.Lowest
            
             
            
            		set var.Lowest={move.axes[2].machinePosition} ; set the new lowest reading
            
             
            
            		;M118 P3 S{"new low reading = " ^ move.axes[2].machinePosition} ; send trigger height to DWC console
            
             
            
            		G4 S0.3
            
             
            
            	if move.axes[2].machinePosition > var.Highest
            
             
            
            		set var.Highest={move.axes[2].machinePosition} ; set the new highest reading
            
             
            
             
            
             
            
            		;M118 P3 S{"new high reading = " ^ move.axes[2].machinePosition} ; send trigger height to DWC console
            
             
            
            		G4 S0.3
            
             
            
            	set var.RunningTotal={var.RunningTotal + move.axes[2].machinePosition} ; set new running total
            
             
            
            	;M118 P3 S{"running total = " ^ var.RunningTotal} ; send running total to DWC console
            
             
            
            	G4 S0.5
            
             
            
            set var.Average = {(var.RunningTotal - var.Highest - var.Lowest) / (var.NumTests - 2)} 	; calculate the average after discarding th ehigh & low reading
            
             
            
             
            
             
            
            ;M118 P3 S{"running total = " ^ var.RunningTotal} ; send running total to DWC console
            
             
            
            ;M118 P3 S{"low reading = " ^ var.Lowest} ; send low reading to DWC console
            
             
            
            ;M118 P3 S{"high reading = " ^ var.Highest} ; send high reading to DWC console
            
             
            
            M118 P2 S{"Average excluding high and low reading = " ^ var.Average} ; send average to PanelDue console
            
             
            
            M118 P3 S{"Average excluding high and low reading = " ^ var.Average} ; send average to DWC console
            
             
            
             
            
             
            
            G31 P500 Z{var.Average} ; set Z probe offset to the average reading
            
             
            
            M564 S0 H1 ; Reset limits
            
             
            
            M558 F{var.ProbeSpeedHigh}:{var.ProbeSpeedLow} ; reset probe speed to original
            
             
            
            G1 Z{sensors.probes[0].diveHeight} F360 ; move head back to dive height
            
             
            
            M291 P{"Trigger height set to : " ^ sensors.probes[0].triggerHeight  ^ " OK to save to config-overide.g, cancel to use until next restart"} R"Finished" S3
            
             
            
            M500 P31 ; optionally save result to config-overide.g
            
            1 Reply Last reply Reply Quote 0
            • T3P3Tonyundefined
              T3P3Tony administrators @juliann
              last edited by

              @juliann move the the postion you want to test, then send G30 S-1
              https://duet3d.dozuki.com/Wiki/G30
              Send it a few time to see the result.

              www.duet3d.com

              juliannundefined 1 Reply Last reply Reply Quote 0
              • juliannundefined
                juliann @T3P3Tony
                last edited by

                Thank you! @PCR @T3P3Tony

                12/10/2021, 14:48:02 G30 S-1 Stopped at height 3.174 mm
                12/10/2021, 14:47:51 G30 S-1 Stopped at height 3.171 mm
                12/10/2021, 14:47:37 G30 S-1 Stopped at height 3.172 mm
                12/10/2021, 14:47:24 G30 S-1 Stopped at height 3.175 mm
                12/10/2021, 14:47:09 G30 S-1 Stopped at height 3.171 mm
                12/10/2021, 14:46:51 G30 S-1 Stopped at height 3.172 mm

                T3P3Tonyundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
                • T3P3Tonyundefined
                  T3P3Tony administrators @juliann
                  last edited by

                  @juliann so pretty repeatable probing, it does not look like its probe repeatability causing the issue (although maybe it stops becoming repeatable when it shot or something). Do you always probe with everything at the same temperature? How much variation between prints are you seeing?

                  www.duet3d.com

                  juliannundefined 1 Reply Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @juliann
                    last edited by fcwilt

                    @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                    Thank you! @PCR @T3P3Tony

                    12/10/2021, 14:48:02 G30 S-1 Stopped at height 3.174 mm
                    12/10/2021, 14:47:51 G30 S-1 Stopped at height 3.171 mm
                    12/10/2021, 14:47:37 G30 S-1 Stopped at height 3.172 mm
                    12/10/2021, 14:47:24 G30 S-1 Stopped at height 3.175 mm
                    12/10/2021, 14:47:09 G30 S-1 Stopped at height 3.171 mm
                    12/10/2021, 14:46:51 G30 S-1 Stopped at height 3.172 mm

                    You can do a variation that reports not the height but the variation and deviation:

                    Assuming the point of interest is X=180,Y=180.

                    G30 P0 X180 Y180 Z-99999
                    G30 P1 X180 Y180 Z-99999
                    G30 P2 X180 Y180 Z-99999
                    G30 P3 X180 Y180 Z-99999
                    G30 P4 X180 Y180 Z-99999
                    G30 P5 X180 Y180 Z-99999
                    G30 P6 X180 Y180 Z-99999
                    G30 P7 X180 Y180 Z-99999
                    G30 P8 X180 Y180 Z-99999
                    G30 P9 X180 Y180 Z-99999 S-1

                    Frederick

                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                    juliannundefined 1 Reply Last reply Reply Quote 0
                    • juliannundefined
                      juliann @T3P3Tony
                      last edited by

                      @t3p3tony

                      Yes, I did the calibration at the same bed temperature I always use but the variation is not always the same, sometimes is a bit challenging to me getting the right calibration spot again.

                      What would be the best method/ procedure to minimise this issue? 🙂

                      Thanks again!

                      T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                      • juliannundefined
                        juliann @fcwilt
                        last edited by

                        Thank you @fcwilt

                        This is the result:

                        G32 bed probe heights: -0.079 -0.077 -0.077 -0.078 -0.078 -0.076 -0.078 -0.078 -0.078 -0.077, mean -0.078, deviation from mean 0.001

                        fcwiltundefined 1 Reply Last reply Reply Quote 0
                        • T3P3Tonyundefined
                          T3P3Tony administrators @juliann
                          last edited by

                          @juliann the probe looks to have minimal variation, well under what should need babystepping to compensate for.

                          what is your start gcode doing? maybe you are homing the printer after probing and the endstops are less repeatable

                          www.duet3d.com

                          juliannundefined 1 Reply Last reply Reply Quote 0
                          • juliannundefined
                            juliann @T3P3Tony
                            last edited by

                            @t3p3tony

                            I have a very basic start gcode so I guess I should improve it.

                            M290 R0 S-0.16
                            G29 S1

                            T3P3Tonyundefined 1 Reply Last reply Reply Quote 0
                            • T3P3Tonyundefined
                              T3P3Tony administrators @juliann
                              last edited by

                              @juliann so no G28 is inserted by the slicer?
                              Also can you post an image of the height map you are using?
                              Is there a variation between different runs of the same print?

                              www.duet3d.com

                              juliannundefined 1 Reply Last reply Reply Quote 0
                              • juliannundefined
                                juliann @T3P3Tony
                                last edited by

                                @t3p3tony

                                You are correct, there is no G28 inserted in the slicer.

                                Yes, the variations are present between different runs of the same print.

                                Screenshot 2021-10-12 at 15.56.31.png

                                T3P3Tonyundefined 2 Replies Last reply Reply Quote 0
                                • fcwiltundefined
                                  fcwilt @juliann
                                  last edited by fcwilt

                                  @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                                  Thank you @fcwilt

                                  This is the result:

                                  G32 bed probe heights: -0.079 -0.077 -0.077 -0.078 -0.078 -0.076 -0.078 -0.078 -0.078 -0.077, mean -0.078, deviation from mean 0.001

                                  I'm a bit late to the party so if I repeat what you have already been told I apologize.

                                  When you use a single G30 at a fixed XY location you are setting the Z=0 Datum.

                                  For the fixed XY location I suggest using the center of the bed.

                                  It is important to do this when creating your height map and when loading your height map.

                                  Now setting the Z=0 Datum can be done as part of homing Z or homing ALL as long as it occurs before creating the height map or before loading the height map.

                                  If you change Z probe settings in either M558 or G31 it would be best to create a new height map.

                                  If you change the XY point you use when setting the Z=0 Datum you should also create a new height map.

                                  Frederick

                                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                  1 Reply Last reply Reply Quote 1
                                  • T3P3Tonyundefined
                                    T3P3Tony administrators @juliann
                                    last edited by

                                    @juliann ok so quite a lot of variation across the bed is shown by the height map.

                                    Try adding a single G30 at the bed centre into your start gcode before you load the height map and see if it if makes it more consistent (it might not be exactly right and still need baby stepping. its more about seeing if the amount of baby stepping needed changes.

                                    www.duet3d.com

                                    1 Reply Last reply Reply Quote 0
                                    • T3P3Tonyundefined
                                      T3P3Tony administrators @juliann
                                      last edited by

                                      @juliann and @fcwilt 's post is also helpful - worth checking the height map again

                                      www.duet3d.com

                                      juliannundefined 1 Reply Last reply Reply Quote 0
                                      • juliannundefined
                                        juliann @T3P3Tony
                                        last edited by

                                        Thank you very much @t3p3tony @fcwilt

                                        I am checking it right now, I will be back as soon as I finish the tests 🙂

                                        juliannundefined 1 Reply Last reply Reply Quote 0
                                        • juliannundefined
                                          juliann @juliann
                                          last edited by

                                          Hi @fcwilt and @T3P3Tony

                                          After following your instructions I think I got an improvement because now there is not a baby stepping variation anymore between different runs of the same print.
                                          But... always there is a but... 🙂 if I turn off and on the printer and then try to print anything, all the calibration is gone, so I need to recalibrate the baby steps again to get those nice first layers that I used to have.

                                          Thanks again!
                                          Julián.

                                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                                          • fcwiltundefined
                                            fcwilt @juliann
                                            last edited by

                                            @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                                            Hi @fcwilt and @T3P3Tony

                                            After following your instructions I think I got an improvement because now there is not a baby stepping variation anymore between different runs of the same print.
                                            But... always there is a but... 🙂 if I turn off and on the printer and then try to print anything, all the calibration is gone, so I need to recalibrate the baby steps again to get those nice first layers that I used to have.

                                            Thanks again!
                                            Julián.

                                            If you find you need to adjust baby-stepping once at power on and then it works fine you should be able change the Z Trigger Height parameter in G31 by the same amount.

                                            If you are baby-stepping closer (a negative value) add the absolute of that value to the Z Trigger height parameter.

                                            If you are baby-stepping away (a positive value) subtract that value from the Z Trigger height parameter.

                                            Recall that increasing the Z Trigger Height parameter will result in the nozzle ending up closer to the bed.

                                            In any case when you change G31 you need to be sure it is executed to have the changes take effect.

                                            Frederick

                                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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