BL-touch trigger height inconsistent

  • Hi all,

    I just installed my BL-touch version 3 and trying to set the trigger height. Following the routine:

    1. Make sure there is no filament stuck to the nozzle (you may want to do this test with the nozzle hot)
    2. Cancel any existing bed compensation by sending M561
    3. Send M208 S1 Z-3 to temporarily allow Z moves down to Z=-3mm. This is to ensure that you can lower the nozzle all the way to the bed in step 5.
    4. Command the print head to the XY coordinates you want to probe
    5. Command the print head down in small steps until the nozzle just touches the bed or just grips a sheet of paper. You may need to send M564 S0 to allow movement lower than where the firmware thinks Z=0 is. You may also wish to create a macro to lower the head by e.g. 0.02mm to get greater accuracy (G91 followed by G1 Z-0.02).
    6. Send G92 Z0 to define that height as Z=0
    7. Command the nozzle up 5mm (G1 Z5)
    8. Send G30 S-1 to probe the bed without resetting the Z=0 position
    9. Read off the Z height from the web interface. That is the trigger height.
    10. Repeat the previous two steps a couple of times to make sure you are getting a consistent result
    11. Repeat steps 4-10 for the other XY positions you want to check
    When you have established what the trigger height is, set the Z parameter og the G31 command in config.g to that value.

    At step 7 and 8 I am getting inconsistent results as the screenshot showing. The results increasing gradually. Screenshot 2020-03-25 at 11.58.57 AM.png

    Here is my config.g

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Sun Jun 17 2018 17:38:29 GMT+0100 (BST)
    ; General preferences
    G90                            ; Send absolute coordinates...
    M83                            ; ...but relative extruder moves
    M555 P0                        ; Set firmware compatibility to look like native output
    M593 F40		       ; cancel ringing at 40Hz
    ;M572 D3 S0.01		       ; Pressure advance
    M667 S1                        ; Select CoreXY mode
    ; Network
    M550 PBLV MGN Cube             ; Set machine name
    M552 S1                        ; Enable network
    ;*** Access point is configured manually via M587
    M586 P0 S1                     ; Enable HTTP
    M586 P1 S0                     ; Disable FTP
    M586 P2 S0                     ; Disable Telnet
    ; Drives
    M569 P0 S1                     ; Drive 0 goes forwards (X)
    M569 P1 S1                     ; Drive 1 goes forwards (Y)
    M569 P7 S1   		       ; Drive 3 goes forwards (Z1)
    M569 P8 S1                     ; Drive 4 goes forwards (Z2)
    M569 P9 S1                     ; Drive 6 goes forwards (Z3)
    M569 P3 S0		       ; Drive 9 goes forwards (E0)
    M584 X0 Y1 E3 Z7:8:9           ; Drive 0-X 1-Y 6-9-Z(Duex5-Drive6-9) 3-E
    M671 X524:252:-22 Y162:513:162 S5 ; leadscrews at rear left, front middle and rear right
    ;M593 F35		       ; cancel ringing at 30Hz
    M350 Z16 E16 I0        	       ; Configure microstepping without interpolation
    M350 X256 Y256 I1              ; Configure microstepping with interpolation
    M92 X2599 Y2599 Z403 E2645     ; Set steps per mm
    M566 X1200 Y1200 Z500 E40      ; Set maximum instantaneous speed changes (mm/min)
    M203 X20000 Y20000 Z1200 E1000 ; Set maximum speeds (mm/min)
    M201 X2000 Y2000 Z100 E120     ; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z900 E500 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                        ; Set idle timeout
    ; Axis Limits
    M208 X10 Y65 Z0 S1             ; Set axis minima
    M208 X490 Y500 Z500 S0         ; Set axis maxima
    M564 H0			       ; Allow movement of axes that have not been homed
    ; Endstops
    M574 X1 Y1 S3                  ; Set endstops controlled by motor load detection
    ; Z-Probe
    M574 Z1 S2                                     ; Set endstops controlled by probe
    M558 P9 B1 A2 S2.00 X0 Y0 Z1 H5 F120 T60000    ; BLTouch
    G31 P50 X-32 Y0 Z1.95                          ; Set Z probe trigger value, offset and trigger height
    M557 X85:400 Y80:400 S40                       ; Define mesh grid
    ; Heaters
    M307 H3 A-1 C-1 D-1
    M307 H0 A100.8 C241.3 D1.8 B0  ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                   ; Set temperature limit for heater 0 to 120C
    M307 H1 A365.5 C148.8 D3.4 B0  ;
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                   ; Set temperature limit for heater 1 to 280C
    ; Fans
    M106 P0 S0 I0 F500 H-1         ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45      ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45      ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P6 S1
    M106 P7 S1
    ; Tools
    M563 P0 D0 H1                  ; 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
    ; Automatic saving after power loss is not enabled
    ; Custom settings are not configured
    ; Miscellaneous
    T0                                       ; Select first tool

    Only bed heater is running during the procedure.

    First layer is never right. Using babystepping, needs anything from -0.2 to +0.2.

    Any thoughts what could be wrong? Thanks!

  • @Ckostikas No, you have done nothing wrong and there is nothing wrong.

    I have taken the 13 readings you have given and your average is 1.958

    this is your current G31 P50 X-32 Y0 Z1.95 - You need another digit at the end!

    Try this

    G31 P50 X-32 Y0 Z1.958


    I normally setup my Z for PLA, then add a Z offsett for PET-G in the slicer.



  • Moderator

    @Ckostikas It's more readable if you cut and paste the text from the console, rather than do a screen grab!

    As the height is consistently increasing, here's a few things to consider:

    • Is the bed being heated at the same time? If it's increasing temperature, it may be moving.
    • You already have B1 in your M558 command, to turn off heaters during probing. If heaters are on, particularly the bed, it can produce magnetic currents that affect the BLTouch. However, if you're doing lots of probe points, the bed may be cooling off, and moving. Check temperature of bed is staying constant during probing.
    • Set the R parameter, in M558, to set Z probe recovery time. Try R0.75.
    • Remove the X, Y and Z parameters, they are obsolete.
    • Reduce probing speed until you don't get any measurement errors. Start with F60, test, then increase if it's stable.
    • You can use the A parameter to increase the number of times it probes, until it achieves the tolerance set by the S parameter. You currently have A2 S2, so it's trying twice, and aiming for 2mm accuracy! Try A10 S0.003. Again, reduce this once accuracy has improved with the other measures.

    So, ultimately, try something like M558 P9 B1 A10 S0.003 H5 F60 T60000 R0.75 to start with, see if repeatability is better. You may even have to reduce motor jerk (M566 Z500 feels very high, mine is Z12) and acceleration (M201 Z100 also feels high, mine is Z20), as they may be causing movement to be too fast for the BLTouch to react.

    See for full details on M558.


  • @droftarts said in BL-touch trigger height inconsistent:

    From what you say I get the point that this applies to bed compensation G29, am I right?

    The issue that I am having is whilst trying to set the trigger height using a steady point and G30 S-1 command. Is it also applicable to this?

  • Moderator

    @Ckostikas It's defining how the probe works, so it's applicable to the accuracy of ALL your probing. You need to find settings for the probe that are repeatable and accurate. This means tuning it to an acceptable level, and that depends largely on your machine.


  • Moderator

    Can you redo your consistency test with the bed off and cold and using the M558 posted by Ian above?

Log in to reply