help set up max and min z endstops



  • Hello there,

    I am building a corexy and i currently got the piezo z probe at MIN, and both x and y homing to work at MIN as well. the only thing is i don't know how to get a max limiter endstop to work on the Z axis. i have tested the endstops and they all work so i dont think it is a wiring issue. thank you for all your help!

    currently, i don't have extruders, heater, fan, thermistor, expansion boards connected. i am just testing out the movement right now so the config.g might seem bare.

    below are my home settings:

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Jan 27 2020 00:08:01 GMT-0800 (Pacific Standard 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


    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Jan 27 2020 00:08:00 GMT-0800 (Pacific Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-436.8 Y-408.225 F1800 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X-436.8 ; home X axis
    G1 H1 Y-408.225 ; home Y axis
    G1 X5 Y5 F6000 ; go back a few mm
    G1 H1 X-436.8 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y-408.225 ; then move slowly to Y axis endstop
    G90 ; absolute positioning
    G1 X15 Y15 F6000 ; go to first bed probe point and home Z
    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

    ***************************config.g:
    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Jan 27 2020 00:08:00 GMT-0800 (Pacific Standard Time)

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

    M667 S1 ; select CoreXY mode

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S0 ; physical drive 1 goes backwards
    M569 P2 S0 ; physical drive 2 goes forwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M569 P4 S1 ; physical drive 4 goes forwards
    M584 X0 Y1 Z2 E3:4 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
    M92 X100.00 Y100.00 Z1600.00 E420.00:420.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
    M906 X1700 Y1700 Z1700 E600:600 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 X431.8 Y403.225 Z406.4 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low 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
    M558 P5 I1 R0.4 C"zprobe.in+zprobe.mod" H5 F1200 T6000 ; set Z probe type to effector and the dive height + speeds
    G31 P500 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M557 X15:400 Y15:370 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
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    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
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
    M143 H2 S280 ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S1 H1 T45 ; set fan 0 value. Thermostatic control is turned on
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H2 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
    M563 P1 D1 H2 F0 ; define tool 1
    G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C
    M563 P2 F0 ; define tool 2
    G10 P2 X0 Y0 Z0 ; set tool 2 axis offsets
    G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C
    M563 P3 F0 ; define tool 3
    G10 P3 X0 Y0 Z0 ; set tool 3 axis offsets
    G10 P3 R0 S0 ; set initial tool 3 active and standby temperatures to 0C
    M563 P4 F0 ; define tool 4
    G10 P4 X0 Y0 Z0 ; set tool 4 axis offsets
    G10 P4 R0 S0 ; set initial tool 4 active and standby temperatures to 0C

    ; Custom settings are not defined

    ; Miscellaneous
    M501 ; load saved parameters from non-volatile memory
    T0 ; select first tool


  • Moderator

    You will need a seperate macro to home to Z max. Your homez and homeall are using G30 which will call the probe. To use the Z max endstop you need to use a G1 H1 Z+ move instead of G30. That will move the axis until the endstop triggers.

    Here's an example from the Ender 3 Duet Maestro guide that goes through setting up a Z max endstop along side a Z probe.

    https://duet3d.dozuki.com/Guide/Ender+3+Pro+and+Duet+Maestro+Guide+Part+5:+Upgrades/54#s213



  • @Phaedrux I will check out this article tomorrow. Thank you



  • i read through the link you sent and everything appears to be easy to follow. the only thing is do I need to modify my homez.g file to call for the "0_Set Zmax height.g" macro? if so, i could not find what i needed to do for the machine to look for the "0_Set Zmax height.g"

    Can i also set this up to have zmax calibration run before every print? if I am using Automatic tool changer, do I just have z=0 with the Z probe set according to T0 and rely on the preset z offset for the other T#? I do not think it would be necessary to home every single tool prior to print correct?


  • Moderator

    @tekstyle said in help set up max and min z endstops:

    i read through the link you sent and everything appears to be easy to follow. the only thing is do I need to modify my homez.g file to call for the "0_Set Zmax height.g" macro? if so, i could not find what i needed to do for the machine to look for the "0_Set Zmax height.g"

    In that example homez.g is used to home to zmax using the endstop and homeall uses the probe to home to zmin. Depending on what you want to do, you can either homez or homeall. If you'd rather have home to z max as a separate macro that's fine too. you can either execute it from the DWC or PanelDue, or call it with M98.

    Can i also set this up to have zmax calibration run before every print?

    Setting the height of z max could be done seperately manually or you could make it a part of every homing routine. It would really depend on how much the printer changes between runs. If the bed/frame is very stable, you may not need to measure it every time.

    if I am using Automatic tool changer, do I just have z=0 with the Z probe set according to T0 and rely on the preset z offset for the other T#? I do not think it would be necessary to home every single tool prior to print correct?

    That sounds reasonable, but I'm not well versed on tool changers at the moment.


Log in to reply