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

    Z calibration issues

    Scheduled Pinned Locked Moved
    General Discussion
    2
    5
    987
    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.
    • chas2706undefined
      chas2706
      last edited by

      I have 3 printers all running on Duets and all run ok except for my last build which is a Ratrig Vcore Pro. It's the only printer running on RRF3.2 beta 3.2.
      On this printer I just cannot get a stable bed height. Every time i set Z, if i am lucky i can get the first print to work but there after Z is not at the correct height. The variation is only very small but small enough to disallow anything sticking to the bed. I can then adjust the height with baby stepping but even then, the Z height changes for the next print.
      I have studied my config.g and other settings until i am blue in the face and cant find the answer why.

      Here's my config.g:
      ; Configuration file for Duet 3 (firmware version 3.1.1)
      ; executed by the firmware on start-up
      ;
      ; Modified config for Ratrig Vcore with single extruder 23/08/2020

      ; ###General preferences###
      M42 P8 S255 ; Power up relay
      M555 P0 ; Set Reprap-style output
      G21 ; Set dimensions to millimetres
      G90 ; send absolute coordinates...
      M83 ; ...but relative extruder moves

      ;###Network###
      M550 P"V-Core Pro" ; set printer name
      M669 K1 ; select CoreXY mode

      ; ###Drives###
      M569 P0.0 S1 ; X physical drive 0.0 goes forwards
      M569 P0.1 S1 ; Y physical drive 0.1 goes forwards
      M569 P0.2 S0 ; Z0 physical drive 0.2 goes backwards
      M569 P0.3 S0 ; Z1 physical drive 0.3 goes backwards
      M569 P0.4 S0 ; Z2 physical drive 0.4 goes backwards
      M569 P0.5 S0 ; E0 physical drive 0.5 goes backwards

      ; ###Set drive mapping###
      ; For tripple Z make sure drive 2 is left hand Z and 3 is right hand, 4 at back
      M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5 ; Drive mapping for single extruder
      ;M92 X80.00 Y80.00 Z400.00 E136 ; set steps per mm (clone titan = 425)
      ;M92 X80.00 Y80.00 Z400.00 E424 ; set steps per mm for volcano 0.8
      M92 X80.00 Y80.00 Z400.00 E466 ; set steps per mm for volcano 0.4
      M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation

      ; ###Accelerations, speed and jerk###
      M98 P"print_settings/default_speed.g"
      ;M98 P"print_settings/E3_Fast.g"
      ;M98 P"print_settings/E3_T1.g"
      ;M98 P"print_settings/E3_T2.g"
      ;M98 P"print_settings/E_T3.g"

      M906 X1000 Y1000 Z1000 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
      ; V-Core steppers are 1.68 amp so 80% = 1.32amp
      M84 S30 ; Set idle timeout

      ; ###Leadscrew positions###

      ;M671 X-35:535:245 Y116:116:560 S6.0 ; The measurement is taken from X=0, Y=0. Therefore X will be negative, Y positive
      M671 X-35:535:245 Y92:92:560 S6.0 ; The measurement is taken from X=0, Y=0. Therefore X will be negative, Y positive

      ; ###Mesh Grid###
      ; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
      ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
      M557 X20:480 Y20:480 S100 ; Define small mesh grid - 25 points
      ;M557 X10:480 Y20:480 S50 ; Define large mesh grid - 50 points

      ; ###Axis Limits###
      ;M208 X495 Y485 Z500 ; set axis maxima
      M208 X492 Y495 Z500 ; set axis maxima
      M208 X-6 Y0 Z0 S1 ; Set axis minima (adjust to make X=0 and Y=0 the edges of the bed)

      ; ###Endstops###
      M574 X1 S1 P"!io0.in" ; configure active-low endstop for low end on X via pin io0.in with internal pull-up
      M574 Y1 S1 P"!io1.in" ; configure active-low endstop for low end on Y via pin io1.in with internal pull-up

      ; ###Z-Probe###
      M558 P8 C"io2.in" H5 A2 F120 T3000 ; Z probe is type 8 in RRF3
      ; G31: the P is the reported Z value when triggered. X,Y are offset coordinates. Z is trigger height, you can decrease value if nozzle is too close
      ; or increase if too far away.
      ;G31 P500 X0 Y-25 Z1.80 ; set Z probe trigger value, offset and trigger height 2.07
      G31 P50 X-22 Y0 Z2.32 ; set Z probe trigger value, offset and trigger height 2.07 ########changed P500 to P50

      ; ###Push buttons###
      ; create e-stop microswitch
      M950 J3 C"!io3.in" ; Input 3 uses io2 pin, inverted
      M581 P3 S1 T0 R0 ; configure enstop as e-stop

      ; filament unload button
      ;M950 J4 C"!io4.in" ; Input 4 uses io4 pin, inverted
      ;M581 P4 S1 T2 R0 ; configure button for filament unload

      ; filament load button
      ;M950 J5 C"!io5.in" ; Input 5 uses io5 pin, inverted
      ;M581 P5 S1 T3 R0 ; configure push button for filament load

      ; M581 P"!io6.in" T0 C0 ; configure active-low endstop to perform an e-stop (on panel)
      ; e-stop button
      ;M950 P6 C"!io6.in" ; Input 6 uses io6 pin, inverted
      ;M581 P6 S1 T0 R0 ; configure push button for e-stop

      ; bed levelling button
      M950 P7 C"io7.out" ; Input 7 uses io7 pin, inverted
      ;M581 P7 S1 T4 R0 ; configure push button for Bed Levelling

      ; shutdown switch
      M950 P8 C"io8.out" ; Creates output on io8 to use as alternative power off switch

      ; Filament Run Out Sensor
      ;M591 D0 P1 C4 S1 ; Code requires conversion Filament runout Sensor for Extruder E0 P1 = signal HIGH.

      ;Magnetic Filament Sensor
      ;M591 P3 C"e0_stop" S1 ; filament monitor connected to E0_stop

      ; ###Bed thermistor/heater###
      M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; bed thermistor
      M950 H0 C"out0" Q100 T0 ; bed heater H = heater no. C = output Q = PWM frequencyT = temperature sensor no. defined above.
      M143 H0 S120 ; set temperature limit for bed heater 0 to 120C
      M140 H0 ; map heated bed to heater 0
      M143 H0 P0 S105 A2 ; switch off bed heater temporarily if it exceeds 105°C
      M143 H0 P1 S110 A0 ; raise a heater fault if it exceeds 110C

      ; ###Extruder thermister/heater###
      ; H Heater number to monitor (default 1 which is normally the first hot end)
      ; S Maximum permitted temperature
      ; P Heater monitor number, default 0
      ; T Sensor number used to monitor the heater. It default to the sensor that controls the heater (as was specified in the M05o command when the heater was created).
      ; A Action to trigger (0: Generate heater fault [default] 1: Switch off permanently 2: Switch off temporarily)1
      ; C Condition for temperature event (0: Temperature too high [default] 1: Temperature too low, -1: Monitor is disabled)

      M308 S1 P"temp1" Y"thermistor" T100000 B4138 C7.06e-8 ; extruder thermistor
      M950 H1 C"out1" T1 ; ext heater H = heater no. C = output T = temperature sensor no. defined above.
      M143 H1 S280 ; set temperature limit for extruder heater 1 to 250C
      M143 H1 P0 S290 A2 ; switch off extruder heater temporarily if it exceeds 250°C
      M143 H1 P1 S285 A0 ; raise a heater fault if it exceeds 255C

      ;###CPU Temperature Calibration###
      M912 P0 S1

      ; ###Fans###
      M950 F0 C"out7" Q100 ; create fan 0 on pin out7 and set its frequency (parts fan)
      M106 P0 S0 H-1 C"Part Cooling" ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out8" Q100 ; create fan 1 on pin out8 and set its frequency (ext fan)
      M106 P1 S0 H1 T45:65 C"Extruder" ; set fan 1 value. Turns on at 45 degrees and full speed at 65 or over
      M950 F4 C"out5" Q100 ; create fan 2 on pin out5 (bed cooling)
      M106 P4 S0 H-1 C"Bed Cooling" ; set fan 2 value. Thermostatic control is off

      ;###Hardware temperature control###
      ;CPU fan
      M950 F2 C"out9" ; create fan 2 (CPU fan)
      M308 S3 Y"mcutemp" A"MCU" ; set up a virtual sensor for cpu fan
      M106 P2 T35 H3 ; set fan 2 value. Fan comes on when cpu temp is above 35 degrees (Cool the pi as well!)
      M308 S4 P"drivers" Y"drivers" A"TMC" ; Create sensor for drivers

      ;###Led Lighting###
      M950 F3 C"out4" Q500 ; create a fan 3 output to use for led lighting control on pin out4
      M106 P3 S0 ; set output default to off

      ; ###Extruder setup###
      M563 P0 S"Extruder0" D0 H1 F0 ; define tool 0
      G10 P0 X0 Y0 ; set tool 0 axis offsets
      G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

      ;### FW Retract ###
      M207 S0.5 F3000 Z0 ; max recommended retraction for V6 is 2mm (plus take in account length of bowden tube)

      ; ###Custom settings###
      ;M593 F50 ; anti-Ringing
      ;M572 D0 S0.800 ; Pressure advance = 0.8
      M42 P8 S255 ; Power up relay
      T0 ; select first tool
      M501 ; read parameters in config.overide
      M98 P"/macros/Bed Levelling/lead_screw_level.g" ; perform bed levelling if ok'd on startup and then activate the mesh grid

      homing files:
      ; homex.g
      ; called to home the X axis
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.1 on Mon Nov 04 2019 16:21:57 GMT+0000 (Greenwich Mean Time)
      G91 ; relative positioning
      M913 X70 Y70 Z80 ; reduce the motor current
      G1 H2 Z5 F6000 ; lift Z relative to current position
      G1 H1 X-600 F2800 ; move quickly to X axis endstop and stop there (first pass)
      G1 H0 X5 F6000 ; go back a few mm
      G1 H1 X-600 F360 ; move slowly to X axis endstop once more (second pass)
      G1 H2 Z-5 F6000 ; lower Z again
      G90 ; absolute positioning
      M913 X100 Y100 Z100 ; reset motor currents
      ; homey.g
      ; called to home the Y axis
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.1 on Mon Nov 04 2019 16:21:57 GMT+0000 (Greenwich Mean Time)
      G91 ; relative positioning
      M913 X70 Y70 Z80 ; reduce the motor current
      G1 H2 Z5 F6000 ; lift Z relative to current position
      G1 H1 Y-600 F2800 ; move quickly to Y axis endstop and stop there (first pass)
      G1 H0 Y5 F6000 ; go back a few mm
      G1 H1 Y-600 F360 ; move slowly to Y axis endstop once more (second pass)
      G1 H2 Z-5 F6000 ; lower Z again
      G90 ; absolute positioning
      M913 X100 Y100 Z100 ; reset motor currents

      ; homez.g
      ; called to home the Z axis
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.1 on Mon Nov 04 2019 16:21:57 GMT+0000 (Greenwich Mean Time)

      G91 ; Relative positioning
      G1 H2 Z5 F6000 ; lift Z relative to current position
      G90 ; absolute positioning
      G1 X245 Y247.5 F4000 ; Go to centre of bed

      ; Probe
      M558 A1 F350 ; Set single probing at faster feed rate F350
      G30 ; Do a single probe to home our Z axis
      M558 A10 F100 ; Set triple probing at slower feed rate
      G30 ; Probe again to get a more accurate position and set Z to trigger height

      M913 X100 Y100 Z100 ; reset motor currents

      set Z macro:
      ; My macro to set Z probe height

      M291 P"Bed compensation and height map will be deleted. Ok or Cancel?" R"WARNING" S3 T0; Click OK or Cancel.
      M561 ; cancel any existing bed compensation
      G29 S2 ; Clear bed height map

      M291 P"Checking for homed axis!" S0 T2 ; Display on DWC
      ; If the printer hasn't been homed, home it
      if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
      G28

      M291 P"Heat the bed and extruder, home X and Y then find Z" R"WARNING" S0 T3
      G1 X245 Y247.5 F4000 ; Go to centre of bed
      M208 S1 Z-5 ; Allow Z moves down to Z=-5mm.
      T0 ; Activate extruder
      M190 S60 ; Heat bed to 60 and wait
      M109 S190 ; Heat nozzle to 190 and wait

      ; Reset Z=0
      G31 Z0
      M564 S0 ; temporarily disable axis limits

      ; Move Z down to find Z=0
      M291 P"Jog the Z axis until the nozzle grips a peice of paper and click OK" R"Move Z" Z1 S2
      M291 P"Click OK to set Z=0" R"Setting Z=0" S2
      G92 Z0 ; Set Z to 0

      M291 P"Z is now set, starting multi-probing" R"Done Z" S0 T5

      ; Get trigger heights
      M291 P"Trigger height will now be measured 10 times. Heights will be found in gcode console" R"ZProbe Trigger Height Calibration" S0 T5

      ; G30 S-1 10 times
      ;

      ; 1
      G1 Z5
      G30 S-1

      ; 2
      G1 Z5
      G30 S-1

      ; 3
      G1 Z5
      G30 S-1

      ; 4
      G1 Z5
      G30 S-1

      ; 5
      G1 Z5
      G30 S-1

      ; 6
      G1 Z5
      G30 S-1

      ; 7
      G1 Z5
      G30 S-1

      ; 8
      G1 Z5
      G30 S-1

      ; 9
      G1 Z5
      G30 S-1

      ; 10
      G1 Z5
      G30 S-1

      M291 P"Probing finished. All heaters off, homing all axis. Check log for trigger heights and enter into config.g" S0 T5

      ; Turn off heaters
      ;
      M104 S0 ; Set nozzle to 0 and release
      M140 S0 ; Set bed to 0 and release
      G28 ; Home Z

      Strange thing is here is a typical result from set Z macro:
      Results from 10x calibration.png

      BUT here are results from 10 separate G30 S-1 commands:
      single Z probe.png

      Can anyone help?
      Thanks in advance.

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

        After doing the 3 lead screw bed leveling are you re-probing the center of the bed to re-establish Z0?

        What kind of probe is it?

        @chas2706 said in Z calibration issues:

        RRF3.2 beta 3.2

        3.2 Beta 4 is now out, may want to update.

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • chas2706undefined
          chas2706
          last edited by

          Sorry about the late reply.

          Yes, after bed levelling I home the probe in the center of the bed.

          It is DC42's ir probe.

          Are there improvements regarding probing etc in RRF3.2 beta 4?

          Cheers.

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

            What do you have in that single_probe_check macro? How does it differ from the macro you did post?

            @chas2706 said in Z calibration issues:

            Are there improvements regarding probing etc in RRF3.2 beta 4?

            No, but other bug fixes

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • chas2706undefined
              chas2706
              last edited by

              The single probe check just contains:

              G30 S-1 ;Probe the bed at the current XY position. When the probe is triggered, do not adjust the Z coordinate.
              G1 Z5

              Looking through the documentation again I found I did not have a M574 Z1 S2 ; configure Z-probe endstop for low end on Z

              in my config.g for endstops

              Now if I do multiple single probe checks the results are consistent so I will re-calibrate Z and see if the problem has gone away.

              In the meantime thanks for your help.

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