Z (as reported by M114) increases by ~0.02mm with X or Y home command



  • Almost have my Duet Wifi printing on my newly built Voron CoreXY. I'm running Firmware Version: 1.18beta1 (2017-02-21). Was leveling my bed when I noticed that every time I home X, Z increases by 0.02 or 0.03mm. Then I tried homing Y, and that increases Z by 0 or 0.01mm after every Y home. Here's the trend, with 10mm being the base Z (to make sure the Z end stop is not involved):

    Here are the Z heights as I home X 10 times:
    10
    10.02
    10.05
    10.07
    10.10
    10.12
    10.15
    10.17
    10.20
    10.22
    10.25

    From the pattern it looks like Z is increasing 0.025mm each time I home X.

    Y is similar but the error introduced is smaller:
    10
    10
    10.01
    10.01
    10.01
    10.01
    10.02
    10.02
    10.02
    10.02
    10.03
    10.03

    It looks like Z increases by 0.0025 every time I home Y.

    Here are my X and Y homing scripts:
    ; X axis homing file for dc42 Duet firmware
    G91 ; relative mode
    G1 Z4.0 F6000 ; raise head to avoid dragging nozzle over the bed
    G1 X-240 F2000 S1 ; move up to 240mm in the -X direction, stopping if the homing switch is triggered
    G1 X2 F2000 ; move slowly 2mm in the +X direction
    G1 X-10 F 360 S1 ; move slowly 10mm in the -X direction, stopping at the homing switch
    G90 ; absolute mode
    G1 X0 F2000 ; Move head to 0 to get it over the bed (actual home position is slightly negative)
    G91 ; relative mode
    G1 Z-4.0 F6000 ; lower the head again
    G90 ; back to absolute mode

    ; Y axis homing file for dc42 Duet firmware
    G91 ; relative mode
    G1 Z4 F6000 ; raise head to avoid dragging nozzle over the bed
    G1 Y-240 F2000 S1 ; move up to 240mm in the -Y direction, stopping if the homing switch is triggered
    G1 Y2 F2000 ; move slowly 2mm in the +Y direction
    G1 Y-10 F 360 S1 ; move slowly 10mm in the -Y direction, stopping at the homing switch
    G90 ; absolute mode
    G1 Y0 F2000 ; Move head to 0 to get it over the bed (actual home position is slightly negative)
    G91 ; relative mode
    G1 Z-4 F6000 ; lower the head again
    G90 ; back to absolute mode

    And here's my config.g:
    ; Configuration file for Duet WiFi

    ; 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

    M667 S1 ; Select CoreXY mode
    M208 X-10 Y-10 Z0 S1 ; Set axis minima
    M208 X240 Y230 Z225 S0 ; Set axis maxima (measured by FMH, includes safety margin)

    ; Endstops
    M574 X1 Y1 Z0 S1 ; Define active high microswitches

    M558 P5 X0 Y0 Z1 H3 I0 F120 T8000; Set Z probe type to P5 (from RepRapFirmware 1.14)
    ; Selects a switch (normally closed) for bed probing between
    ; In and Gnd pins of the Z-probe connector (Duet 0.8.5 and Duet WiFi)
    ; Z1 means use this for homing as well

    G31 P600 X0 Y0 Z0 ; Set Z probe trigger value (not needed for probe type = P5?), offset and trigger height

    ; Drives
    M569 P0 S0 ; X Drive goes backwards
    M569 P1 S1 ; Y Drive goes forwards
    M569 P2 S0 ; Z Drive goes backwards
    M569 P3 S1 ; Extruder Drive 0 goes backwards
    M569 P4 S1 ; Extruder Drive 1 goes backwards

    M350 X16 Y16 Z16 E16:16:16 I1 ; Configure microstepping with interpolation
    M92 X80.0 Y80.0 Z400.0 E420:608.0 ; Set steps per mm
    M566 X1000 Y1000 Z30 E120:120 ; Set maximum instantaneous speed changes (mm/min)
    M203 X8000 Y8000 Z1000 E1200:1200 ; Set maximum speeds (mm/min)
    M201 X500 Y500 Z250 E250:250 ; Set accelerations (mm/s^2)
    M906 X1700 Y1700 Z1700 E800:1700 I10 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M143 S260 ; Set maximum heater temperature to 260C
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T10000 B4725 C7.06e-8 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1

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

    ; Definition for Extruder 0
    M563 P0 D0 H1; Define tool 0 (removed H1 for debug)
    G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    ; Definition for Extruder 1
    M563 P1 D1 H1; Define tool 0 (removed H1 for debug)
    G10 P1 X0 Y0 Z0 ; Set tool 0 axis offsets
    G10 P1 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    T0 ; select Extruder 0 by default

    ; Network
    M550 PFred's Voron ; Set machine name
    M551 Preprap ; Set password
    M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP

    ; Fans
    M106 P0 T45 H1 ; Turn on fan 0 when hot end is >= 45C
    ;M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    ;M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ;M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Custom settings are not configured


  • administrators

    Are you using either bed compensation or orthogonal axis compensation?



  • @dc42:

    Are you using either bed compensation or orthogonal axis compensation?

    Ah…you're right. Problem occurs only after I do an Auto Bed Compensation. Before I do an ABC there's no creeping Z error.



  • Just saw that this is a known issue:
    https://www.duet3d.com/forum/thread.php?id=751


  • administrators

    You may find it fixed in 1.18beta3.


Log in to reply