Homing of Z axis



  • When homing my Z axis, it starts by homing X and Y, there home is the front left corner of the build plate. When the Z axis starts to home, the print head goes all the way to the front right corner, is this normal? This is also where all my prints start. I was trying to get the Z axis to home in the middle of the bed if possible.

    This is my current config file.

    ; Configuration file for Duet Maestro (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Thu Jun 04 2020 09:32:59 GMT-0500 (Central Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"My Printer" ; set printer name

    ; Network
    M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P0 V30 ; Stealthchop2 till about 150 mm/sec
    M569 P1 S1 ; physical drive 2 goes forwards
    M569 P1 V30 ; Stealthchop2 till about 150 mm/sec
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P2 V30 ; Stealthchop2 till about 150 mm/sec
    M569 P3 S1 ; physical drive 3 goes forwards
    M569 P3 V30 ; Stealthchop2 till about 150 mm/sec
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E90.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X300000.00 Y300000.00 Z6000.00 E216000.00 ; set maximum speeds (mm/min)
    M201 X800.00 Y800.00 Z15.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X200 Y200 Z200 S0 ; set axis maxima

    ; Endstops
    M574 X2 S1 P"!xstop" ; configure active-high endstop for high end on X via pin !xstop
    M574 Y1 S1 P"!ystop" ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M950 S0 C"^zprobe.mod" ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height
    M557 X15:200 Y15:195 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S1.00 ; enable 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 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    ;M307 H0 M307 H1 A306.3 C136.3 D4.5 B0 ; This is to prevent heater fault

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

    ; Tools
    M563 P0 D0 H1 F0 ; 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

    ; Custom settings are not defined

    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    T0 ; select first tool



  • @yagodajm
    You need to tell it where you want to home in your homeall.g and homez.g

    Add something like
    G1 X100 Y100
    Before the line that says G28 Z

    Also you have no probe offset configured in config.g

    G31 P500 X??? Y??? Z2.5

    You need to do this for mesh compensation.
    After doing that, if you want to probe the centre of the bed, you’ll need to adjust the G1 X100 Y100 by the offset values.

    https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe



  • Owen, thanks for your help, I don't have a G28 Z in either my homeall.g or homez.g, but I do see the line that has G1 X15 Y15, I guess I can just replace that with the G1 X100 Y100. So knowing this, I guess my X0 Y0 is in the front left of the bed.

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Thu Jun 04 2020 15:18:57 GMT-0500 (Central Daylight Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G90 ; absolute positioning
    G1 X15 Y15 F6000 ; 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

    Yes, I was also working on the offsets too, I need to get them set. I just got to start back up with my 3d printer since it was in storage for about 6 months while we were moving. I just upgraded the firmware to 3.1 and had to redo the whole configuration.

    thanks again for you help, I will make these changes in the morning.

    Justin


  • Moderator

    @OwenD said in Homing of Z axis:

    Before the line that says G28 Z

    Maybe if the homeall only calls the other homing files. If the homeall has it's own homing moves you'd need to position the probe before the G30.

    ; homeall.g
    ; called to home all axes
    ;
    ;
    M561  ; clear height map
    M400  ; wait for movement queue to empty
    M913 X45 Y45 Z45	; Reduce motor currents for homing
    M400
    G91			; relative positioning
    G1 H2 Z3 F600		; lift Z relative to current position
    G1 H1 X-250 Y-250 F4000 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 X5 Y5 F4000	; go back a few mm
    G1 H1 X-240 Y-240 F360  ; move slowly to X and Y axis endstops once more (second pass)
    G90 			; absolute
    G1 X159 Y142 F6000	; move probe to bed center
    M558 F600 A1 		; Dive fast once
    G30			; probe Z
    M558 F100 A10 		; Slow second dive with more accuracy
    G30			; probe z again
    G29 S1			; Load heightmap and enable mesh grid compensation
    G1 X10 Y10 Z10 F6000	; return head to park position
    M400
    M913 X100 Y100 Z100	; Return motor currents to normal
    M400
    

    Also, remove +zprobe.mod from your m558 line in config.g.

    And as @OwenD says you must provide the X Y offset of the probe from the nozzle in G31.

    See here: https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe



  • @Phaedrux , thanks for your help, does the +zprobe.mod, do anything? I used the reprap config tool and that is what is generated. No biggy, just wanted to know for reference.

    thanks,
    Justin


  • Moderator

    it's for probes that require modulation. It's selected by default in the configurator, but it shouldn't really be.



  • @yagodajm said in Homing of Z axis:

    Owen, thanks for your help, I don't have a G28 Z in either my homeall.g or homez.g, but I do see the line that has G1 X15 Y15, I guess I can just replace that with the G1 X100 Y100. So knowing this, I guess my X0 Y0 is in the front left of the bed.

    Apologies
    As @Phaedrux has said, G30 is correct and reflects what you have.


Log in to reply