Z calibration issues
-
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 gridhoming 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 heightM913 X100 Y100 Z100 ; reset motor currents
set Z macro:
; My macro to set Z probe heightM291 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 mapM291 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
G28M291 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 0M291 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-1M291 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 ZStrange thing is here is a typical result from set Z macro:
BUT here are results from 10 separate G30 S-1 commands:
Can anyone help?
Thanks in advance. -
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.
-
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.
-
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
-
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 Z5Looking 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.