Dive height for mesh bed compensation



  • Hi,, I want to optimize mesh bed leveling, so I wanted to tweak dive height to not go as high between probing point. What I understood height where printer start probing should be calculated from G31 Z value + M558 H value. But whatever I do with M558 H value, it behaves all the times same. Probing starts at Z 2.6 mm. What am I doing wrong?

    Here my 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 Sun Aug 09 2020 12:31:41 GMT+0200 (Central European Summer Time)
    
    ; General preferences
    G90                                            ; send absolute coordinates...
    M83                                            ; ...but relative extruder moves
    M550 P"My Bear"                             ; set printer name
    
    ; Network
    M550 PMy printer                                   ; Set machine name
    M552 P192.168.1.32 S1                              ; Enable network and set IP address
    M553 P255.255.255.0                                ; Set netmask
    M554 P192.168.1.1                                  ; Set gateway
    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 S1                                     ; physical drive 1 goes forwards
    M569 P2 S1                                     ; physical drive 2 goes forwards
    M569 P3 S0                                     ; physical drive 3 goes backwards
    M569 P4 S1                                     ; physical drive 4 goes forwards
    M584 X0 Y1 Z2:4 E3                               ; set drive mapping
    M671 X-40:290 Y0:0 S2 				   ; leadscrews
    M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
    M92 X100.00 Y100.00 Z400.00 E145.51            ; set steps per mm
    M566 X900.00 Y900.00 Z30.00 E300.00            ; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z1800.00 E7200.00      ; set maximum speeds (mm/min)
    M201 X3000.00 Y3000.00 Z300.00 E5000.00        ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z600 E1000 I30                ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                        ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y-5 Z0 S1                              ; set axis minima
    M208 X250 Y210 Z210 S0                         ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"!xstop"                            ; configure active-low endstop for low end on X via pin xstop
    M574 Y1 S1 P"!ystop"                            ; configure active-low 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 C"!zprobe.in" H0.5 A3 F1200 T12000 S0.02 ; set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X25 Y-2.9 Z1.6                        ; set Z probe trigger value, offset and trigger height
    M557 X30:228 Y5:203 S33                        ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4000 ; 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 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 S120                                   ; set temperature limit for heater 0 to 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B3850  ; 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
    
    ; Heater model parameters
    M307 H0 R0.281 C499.2 D9.57 S1.00 V24.7
    M307 H1 R2.774 C257.1:183.8 D11.81 S1.00 V25.0
    
    ; 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
    
    ; Pressure advance
    M572 D0 S0.08
    
    ;extruder non-linearity
    M592 D0 A-0.004104 B0.003347
    
    ;initialize display
    M918 P1
    
    T0
    G92 Z0                                        ;enable Z motors
    

  • Moderator

    @Cecil said in Dive height for mesh bed compensation:

    What I understood height where printer start probing should be calculated from G31 Z value + M558 H value. But whatever I do with M558 H value, it behaves all the times same.

    I'm not sure what you mean by this.

    But M558 H dive height should be slightly larger than the trigger height set in G31 Z.

    So based on your trigger height of 1.6mm I would suggest you use a dive height of ~3mm.



  • Citation from wiwki to M558 command:
    "Hnnn Dive height (mm). When using mesh bed compensation or running G30 commands with specified XY coordinates (for example from the bed.g file), the firmware moves the Z probe to this height above where it expects the bed to be before commencing probing. The maximum depth of probing from this position is twice the dive height. A large dive height will tolerate a very uneven bed or poor calibration. A small dive height will make probing faster, because the Z probe has less distance to travel before reaching the bed. Default value if omitted is 5mm."
    So it moves Z probe to the height where it expect the bed + Hmm above, or am I wrong? I think I tuned it before (year or two ago) and it worked as I was expecting.
    However if I set H parameter to 20, it still moves the Z to 2.6mm when probing.
    BTW I'm using RRF 3.2 on Duet 2 Meastro
    PS: From GCODE wiki example section for M558:
    "The H parameter defines the Z probe dive height, which is the height above the trigger height from which probing starts. The default is 3mm or 5mm depending on firmware version. You may wish to increase it during initial calibration."


  • Moderator

    Alright. I'd still use M558 H3



  • OK, thanks for your opinion. You'll use 3mm. My printer now use 1mm and everything is flawless, by the sensor hysteresis which is around 0.1mm and my bed flatness (max deviation +/- 0.1) I don't need to use anything more than 0.3-0.4 (just in case something go wrong).
    And anyway, my printer use 1mm even if I set 20mm. That's my problem...



  • @Cecil said in Dive height for mesh bed compensation:

    And anyway, my printer use 1mm even if I set 20mm. That's my problem...

    I assume you are re-booting or resetting the board after changing the H parameter?

    As a test I set the Z trigger height parameter to 10 and the H dive height parameter to 20.

    If the starting Z position was Z=15 then it started probing from there.

    If the starting Z position was Z=35 then it started probing from there.

    After the first probe it moved to Z=30 and probed again.

    After the second probe it moved to Z=30 and was done.

    Frederick



  • I changed M558 in config.g. to:

    M558 P5 F100 H20 C"!zprobe.in" A3 T1200 S0.02
    

    Thinking order of parameters can affect it. But no result. Even probing speed is not working for me 😞
    It still go to 2.6mm and speed of probing is 10mm/s.
    To be sure I checked in console and it reports parameters which I set, but probing is doing differently.
    "Z Probe 0: type 5, input pin !zprobe.in, output pin nil, dive height 20.0mm, probe speed 100mm/min, travel speed 1200mm/min, recovery time 0.00 sec, heaters normal, max taps 3, max diff 0.02"


  • Moderator

    Do you have m558 commands elsewhere?

    If you send m558 during the mesh run does it still show 20mm dive height?



  • @Phaedrux said in Dive height for mesh bed compensation:

    Do you have m558 commands elsewhere?

    @Cecil
    maybe in config-override?



  • I'm stupid. I don't know why but I had it in homeall.g 🤦
    I didn't notice it before.
    Thanks everybody for help


Log in to reply