M558 Dive Height not following docs



  • Here's my config for my z-probe . This works; I can home-Z and I can probe the bed, everything is functional.

    M950 S0 C"duex.pwm1"
    M557 X26:300 Y30:270 P16:16 ; mesh def
    M558 P8 C"!zprobe.in" H5 I1 A5 F50 T48000 S0.01
    G31 P500 X22.7 Y25.8 Z4.348; Set Z probe trigger value and offset
    

    The problems come in when I don't want mesh probing to take forever. I set the dive height much lower so the probing starts closer to the bed, but the Z won't ever home. Even if I back off the bed by just .1mm after reaching the bed via G1 H1 Z-580, the probe still fails to trigger if I lower

    M558 P8 C"!zprobe.in" H5 I1 A5 F50 T48000 S0.01
    to
    M558 P8 C"!zprobe.in" H1 I1 A5 F50 T48000 S0.01

    I don't really understand how these values are competing/conflicting. I want to probe from very close to the bed, as my z travel speed is SUPER low for consistency.

    ;home-z
    G1 X140 Y140 F3600
    
    M201 Z12
    M913 Z45
    
    G91               ; relative positioning
    M401
    G1 H2 Z5 F6000    ; lift Z relative to current position
    G1 H1 Z-580 F450 ; move Z down until the endstop is triggered
    G1 H2 Z.1
    
    
    G30
    M402
    G1 Z5
    G90              ; absolute positioning
    
    M913 Z100
    M201 Z1000
    

  • Moderator

    @gnydick said in M558 Dive Height not following docs:

    I don't really understand how these values are competing/conflicting.

    It's a piezo probe isn't it? It needs a short sharp shock to trigger. At 1mm dive height you're probably not getting into the steady state travel period and you're soft landing the probe hit.

    Also I don't understand your homez. It's not even using a G30 so your probe settings aren't even applicable there.



  • @Phaedrux I don't have the piezo yet, so it's just a mechanical switch.

    Sorry, I must have made a mistake when I cleaned up the gcode from my home Z script. I removed a bunch of commented out lines.

    So, back to the issue, when I say it doesn't trigger, it literally doesn't trigger.


  • Moderator

    @gnydick said in M558 Dive Height not following docs:

    So, back to the issue, when I say it doesn't trigger, it literally doesn't trigger.

    Can you show your entire config.g? From what you've shown you have a probe configured and a homez that uses an endstop.



  • @Phaedrux looking at my post, there def. is G30 in there.



  • @Phaedrux

    ;config.g
    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Jul 21 2020 18:20:38 GMT-0700 (Pacific Daylight Time)
    
    ; General preferences
    G90                                                  ; send absolute coordinates...
    M83                                                  ; ...but relative extruder moves
    M550 P"RailCore II ZLT"                              ; set printer name
    M669 K1                                              ; select CoreXY mode
    
    ; Network
    M552 P192.168.1.201 S1                               ; enable network and set IP address
    M553 P255.255.255.0                                  ; set netmask
    M554 P192.168.1.254                                  ; set gateway
    M586 P0 S1                                           ; enable HTTP
    M586 P1 S1                                           ; enable FTP
    M586 P2 S1                                           ; enable Telnet
    
    ; Drives
    M569 P0 S0                                           ; physical drive 0 goes b
    M569 P1 S1                                           ; physical drive 1 goes f
    M569 P2 S0                                           ; physical drive 2 goes f
    M569 P3 S1                                           ; physical drive 3 goes f
    M569 P4 S0                                           ; physical drive 4 goes b
    M569 P5 S0
    M569 P6 S0
    M569 P7 S0
    M584 X0 Y1 Z5:6:7 E3:4 U2                               ; set drive mapping
    M350 Z64 I0                                          ; configure microstepping without interpolation
    M350 X16 Y16 U16 I1 
    M350 E64:64  ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z6400.00 E3267:3267  U400       ; set steps per mm
    M566 X1500.00 Y1500.00 Z36.00 E1000.00         ; set maximum instantaneous speed changes (mm/min)
    M203 X24000.00 Y24000.00 Z900.00 U6000 E12000.00    ; set maximum speeds (mm/min)
    M201 X2000.00 Y2000.00 Z2000.00 U125 E1000.00    ; set accelerations (mm/s^2)
    M906 X1600 Y1600 Z800 E800 U300 I30                     ; set motor currents (mA) and motor idle factor in per cent
    M593 F36.92
    M84 S30                                              ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                                     ; set axis minima
    M208 X308 Y279 Z580 U28 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 ; P"zprobe.in"                                  ; configure active-low endstop for low end on Z via pin zstop
    
    
    
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 R4700 B3950 H0 L0       ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 Q100                         ; create bed heater output on bedheat and map it to sensor 0
    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
    M143 H0 S160                                       ; set temperature limit for heater 0 to 160C
                                        ; set temperature limit for heater 0 to 160C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
    ;M308 S1 P"spi.cs1" Y"rtd-max31865"                 ; configure sensor 1 as thermocouple via CS pin spi.cs1
    M950 H1 C"e0heat" T1                                 ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S300
    M307 H1 B0 S1.00                                     ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8       ; 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 S300
    M307 H2 B0 S1.00                                     ; disable bang-bang mode for heater  and set PWM limit
    
    
    M308 S6 P"e5temp" Y"thermistor" A"Filament Dryer" T100000 B4725 C7.06e-8
    M950 H6 C"duex.e5heat" T6
    M143 H6 S110
    M307 H6 B0 S1.00
    
    
    ; Fans
    M950 F0 C"fan0" Q500                                 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 C"Left Blower" S0 H-1                        ; set fan 0 name and value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                                 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 C"Right Blower" S0 H-1                       ; set fan 1 name and value. Thermostatic control is turned off
    M950 F2 C"fan2" Q100                                 ; create fan 2 on pin fan2 and set its frequency
    M106 P2 C"Cold Section" S1 H1:2 T80                  ; set fan 2 name and value. Thermostatic control is turned on
    M950 F3 C"duex.fan6" Q100
    M106 P3 C"Dryer" S1 H3
    
    
    ; Tools
    M563 P0 S"Left" D0 H1 F0:1                           ; 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 S"Right" D1 H2 F0:1                          ; define tool 1
    M563 P2 S"Dryer" H3 F3	 			     ; define tool 5 -- filament dryer
    G10 P2 R0 S0
    
    ;G10 P1 X-0.675 Y-24.92 Z0 ; orig
    ;G10 P1 X-.017 Y25.359 Z0
    ;G10 P1 X-.017 Y-25.213 Z0  ;(2/3 of original Y offset)
    ;G10 P1 X-.017 Y-24.5 Z0  ;(1/3 of original Y offset)
    G10 P1 X.3  Y-24.250 Z0
    
    
    G10 P1 R0 S0                                         ; set initial tool 1 active and standby temperatures to 0C
    
    ; Custom settings
    G10 P0 S-273 R-273                                   ; Set tool 0 operating and standby temperatures(-273 = "off")
    G21
    G90                                                  ; Send absolute coordinates...
    M140 S-273 R-273 
    M501
    M555 P2
    M584 X0 Y1 Z5:6:7 E3:4:8:                            ; U5 V6 W7  ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders
    M671 X-39:-39:380.88 Y0.847:255.89:121.24 S7.5               ;Front left,(-10,22.5) Rear Left (-10.,227.5) , Right (333,160) S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew
    M83                                                  ; ...but relative extruder moves
    M929 P"eventlog.txt" S1                              ; Start logging to file eventlog.txt
    
    
    ; Miscellaneous
    M501                                                 ; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"   ; set voltage thresholds and actions to run on power loss
    
    M98 P"config-user.g"
    

  • Moderator

    @gnydick said in M558 Dive Height not following docs:

    G1 H1 Z-580 F450 ; move Z down until the endstop is triggered G1 H2 Z.1 G30

    Ok, but why both?

    After the endstop it's only backing off by 0.1.


  • Moderator

    @gnydick said in M558 Dive Height not following docs:

    M584 X0 Y1 Z5:6:7 E3:4 U2 ; set drive mapping M350 Z64 I0 ; configure microstepping without interpolation M350 X16 Y16 U16 I1 M350 E64:64 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z6400.00 E3267:3267 U400 ; set steps per mm M566 X1500.00 Y1500.00 Z36.00 E1000.00 ; set maximum instantaneous speed changes (mm/min) M203 X24000.00 Y24000.00 Z900.00 U6000 E12000.00 ; set maximum speeds (mm/min) M201 X2000.00 Y2000.00 Z2000.00 U125 E1000.00 ; set accelerations (mm/s^2) M906 X1600 Y1600 Z800 E800 U300 I30 ; set motor currents (mA) and motor idle factor in per cent M593 F36.92 M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X308 Y279 Z580 U28 S0

    You've got 2 E drives mapped, but most of your commands only have a single E value defined, meaning the second E drive might have unexpected defaults assigned. Definitely specify the values for both E drives.

    It also looks like you have a U drive defined and a maxima set, but no minima.

    M574 Z1 S2 ; P"zprobe.in"

    In the context of using a Z probe, this makes no sense really. M574 S2 is intended for using a probe sensor for an axis other than Z and was originally implemented for an Ormerod printer.

    I don't see your probe config in that file, so it must be in one of the other macros?

    Again, using G1 H1 Z in your homing file seems odd if you're intending to use the probe.

    Can you send M98 P"config.g" to check your config for any other syntax errors?



  • @Phaedrux the G1 is to get a fast move to the probe, then the probing action is VERY slow. That's why it's there. I'll run that command.



  • @Phaedrux re: single value for E, a lot of commands will apply the same value to all "E" defined. So far everything has worked as expected.



  • @Phaedrux U axis, yeah, I'll add a minimum. So far it's been assuming 0.



  • @Phaedrux re: M574, that was generated from the online configurator. What is the intended config for using a z probe as the z end stop?


  • Moderator

    @gnydick said in M558 Dive Height not following docs:

    @Phaedrux re: single value for E, a lot of commands will apply the same value to all "E" defined. So far everything has worked as expected.

    @gnydick said in M558 Dive Height not following docs:

    @Phaedrux U axis, yeah, I'll add a minimum. So far it's been assuming 0.

    Ok good, just didn't want you to get caught out by an undefined value at some point.

    @gnydick said in M558 Dive Height not following docs:

    @Phaedrux re: M574, that was generated from the online configurator. What is the intended config for using a z probe as the z end stop?

    Yes the configurator will generate it that way, but it's not really necessary. Using a Z endstop and a Z probe will work just fine, but the way you're using it now is odd because technically you don't have the Z endstop defined at all, it's defined as a probe. It's just a little weird is all and not really necessary.

    @gnydick said in M558 Dive Height not following docs:

    @Phaedrux the G1 is to get a fast move to the probe, then the probing action is VERY slow. That's why it's there. I'll run that command.

    If this is the end goal then the best way to achieve it using the probe is like this.

    In your homeall, instead of using G1 H1 Z move to home quickly, you can just specify a fast probe speed before the G30, followed by setting a slower speed and probing again.

    M558 A1 F450 ; set fast single probe
    G30 ; probe the bed
    M558 A5 F50 ; set slower multi probe
    G30 ; probe again for detail
    


  • Thanks. but 2 questions remain...

    1. (original) how do I use a small dive height, less than the 2x the probe offset

    2. if it's configured incorrectly (the M574), how should I be doing it?


  • Moderator

    Well by definition you can't really use a dive height lower than your trigger height.

    G31 P500 X22.7 Y25.8 Z4.348

    Your trigger height is 4.3mm, meaning that when the probe triggers, your nozzle is 4.3mm above the bed. If your dive height is 5mm, then your nozzle will be raised at least high enough above the bed for the trigger to happen safely before the nozzle hits the bed. When you set the dive height to only 1mm, it can't raise it above the trigger height.

    You can leave the M574 as it is if you want. As I said, it's pretty irrelevant. Oddly enough the way you have it configured allows you to use the probe either as the endstop or the probe. There's nothing wrong with it, I've just never seen it used in this way. Normally the z probe and the endstop switch would be separate devices, for example a Z max endstop switch and a Z min Z probe.



  • @Phaedrux that's not how the docs read. They say ... the firmware moves the Z probe to this height above where it expects the bed to be. So, if I put a 1mm dive height, it will "place the probe 1mm above where it expects the bed to be." Doesn't that mean it will use it's knowledge of the offset to do so?


  • Moderator

    So how is your trigger height 4.3mm if a 1mm dive height works for clearance?



  • @Phaedrux because homing doesn't work if I set it to 1mm.

    Also, I tried removing the M574 for the Z and it won't home. I can't find instructions for using the z probe as the endstop for the Z otherwise.


  • Moderator

    @gnydick said in M558 Dive Height not following docs:

    I can't find instructions for using the z probe as the endstop for the Z otherwise.

    I gave those above. The difference is that you don't use the G1 H1 Z command to act as an endstop, you use G30 to use it as the probe.

    @Phaedrux said in M558 Dive Height not following docs:

    In your homeall, instead of using G1 H1 Z move to home quickly, you can just specify a fast probe speed before the G30, followed by setting a slower speed and probing again.
    M558 A1 F450 ; set fast single probe G30 ; probe the bed M558 A5 F50 ; set slower multi probe G30 ; probe again for detail

    @gnydick said in M558 Dive Height not following docs:

    because homing doesn't work if I set it to 1mm.

    So what is your measured G31 Z trigger height for the probe?



  • @Phaedrux thanks, found the instructions you were referring to for home-z script. Removing the G1 H1 fixed my problem, now the probe dive height is as minimal as I desired.

    Thanks!


Log in to reply