Homing adds to Z max length

  • This must be something I'm doing wrong since it seems to be such a simple problem. I'm an old mainframe software developer and I'm frustrated with myself that I can't fix this. Arrgh!

    My max printable Z height is ~ 600mm. After a print, the nozzle might be for example 20mm above the bed. When I home all axes, occasionally the printer adds the length it takes to home (in this example, 580mm) to the max Z height of 600 so PanelDue and the web interface now show Z is at 1,180 (600 + 580). Of course if I try to print or "G1 Z0" at this point I have a hard crash.

    Workaround is to power off, wait a few seconds, power back on and home - then Z reports correct position at 600.

    The printer is an HE3D K280 with working endstops at the top of the columns. Always homes perfectly. Cheap 1.8 degree steppers (will likely upgrade soon).

    Suggestions please?
    Config bed and homedelta files are below...

    ; Configuration file for Duet WiFi (firmware version 1.21 or newer)
    ; executed by the firmware on start-up
    ; Last Updated: 20190215

    ; General preferences
    M111 S0 ; Debugging off
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Delta parameters
    M665 L341.3 R183 H602 B130 ; L=Arm Length, R=Horiz Arm length, B=safe probing radius, H=Nozzle to Bed when homed - limits vertical travel *
    M666 X0 Y0 Z0 ; positive endstop adjustments move the head closer to the bed when it is near the corresponding tower

    ; Endstops
    M574 X1 Y0 Z1 S0 ; Set active low endstops - switch type is normally open
    M208 Z0 S1 ; Set minimum Z (soft endstop)

    ; Z-Probe BLTOUCH
    M307 H3 A-1 C-1 D-1 ; Defines BLTOUCH
    M558 P9 H6 T6000 A5 R0.1 F1000 ; P9 for BLTOUCH, dive height 6mm, probe at 100mm/min, travel 6000mm/min, up to 5 probes, pause 0.1s F=speed
    G31 X-15 Y12 Z.15 P25 ; Set Z probe Trigger Value, offset between triggered probe and tip of nozzle .15 - changes with different nozzles
    M557 R145 S45 ; Define mesh grid

    ; Drives
    M569 P0 S0 ; Drive 0 goes backwards - X
    M569 P1 S0 ; Drive 1 goes backwards - Y
    M569 P2 S0 ; Drive 2 goes backwards - Z
    M569 P3 S1 ; Drive 3 goes forwards - E
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X80 Y80 Z80 E80 ; Set steps per mm to 80 on the axes (1.8 degrees per step)
    M566 X400 Y400 Z400 E400 ; Set maximum instantaneous speed changes (mm/min)
    M201 X3000 Y3000 Z3000 E1600 ; Set accelerations (mm/s^2)
    M203 X24000 Y24000 Z24000 E3000 ; Set maximum speeds (mm/min)
    M906 X1600 Y1600 Z1600 E600 I25 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Bed Heater
    M305 P0 T100000 B4138 R4700 ; Set thermistor + ADC parameters for bed
    M143 H0 S120 ; Set temperature limit for bed to 120C

    ; Hotend
    M305 P1 T100000 B4138 R4700 ; Set thermistor + ADC parameters for hot end
    M143 H1 S280 ; Set temperature limit for hot end to 280C

    ; Tools
    M563 P0 D0 H1 S"HotEnd" ; 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

    ; Network
    M587 S"HOME-6BE2" P"55819EAF7386833A" ; Configure wifi access point
    M550 PMiney ; Set machine name
    M551 P ; Set password
    M552 S1 ; Enable network
    M586 P0 S1 ; Enable HTTP
    M586 P1 S1 ; Enable FTP
    M586 P2 S0 ; Disable Telnet

    ; Fans
    M106 P0 S0 I0 F500 H-1 C"PartCooler" ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 C"Extruder" ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Custom settings
    ;M591 D0 C3 P2 E6.0 ; Filament runout monitor (not installed yet) P2 can be P1 based on type sensor

    ; called to perform automatic delta calibration via G32
    M561 ; clear any bed transform
    G28 ; home all towers
    M98 Pdeployprobe.g ; deploy BLTOUCH

    ;M98 Pretractprobe.g

    G30 P0 X0.00 Y90.28 Z-99999 H0
    G30 P1 X86.60 Y50.00 Z-99999 H0
    G30 P2 X86.60 Y-50.00 Z-99999 H0
    G30 P3 X0.00 Y-100.00 Z-99999 H0
    G30 P4 X-80.68 Y-46.58 Z-99999 H0
    G30 P5 X-74.48 Y43.00 Z-99999 H0
    G30 P6 X0.00 Y40.72 Z-99999 H0
    G30 P7 X43.30 Y-25.00 Z-99999 H0
    G30 P8 X-37.16 Y-21.45 Z-99999 H0
    G30 P9 X0 Y0 Z-99999 S6
    M98 Pretractprobe.g

    ; called to home all towers on a delta printer

    G91 ; use relative positioning
    G1 S1 X800 Y800 Z800 F2500 ; move all carriages up as much as 800mm, stopping at the endstops
    G1 S2 X-5 Y-5 Z-5 ; move all towers down 5mm
    G1 S1 X8 Y8 Z8 F500 ; move towers slowly up 8mm, stopping at the endstops
    ;G1 S2 X-5 Y-5 Z-5 F3000 ; move carriages down 5mm
    G90 ; back to absolute positioning
    M280 P3 S160 I1

  • Your endstop config is kind of odd. M574 X1 Y0 Z1... - so x at low end, no y endstop at all, Z at low end. https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration

  • Oh... my... Goodness.... You stare at these things for hours and miss the simplest thing. Yes - M574 X2 Y2 Z2 S0 fixed me right up. Thanks so much!!!

Log in to reply