Adjusting bed leveling procedure with BL-Touch


I have an Arduino Due with Radds V1.6 and Bl-Touch. If i start the bed leveling procedure the printer drives to every point and starts leveling in z direction. The printer checks every positions twice. In the first step the print head drives up (away from the bed) and during this he is pushing down the pin (no contact to bed is happening) and then drives back down to bed until the pin hits the bed. After this the print head drives up again for the second leveling step. But during the way up the pin gets pushed down immediately and now he has contact to the bed too early. Then the print head drives back down, but now the bl touch can't deliver a signal because it still has contact to bed. 
If this is happening I need to push the emergency button, otherwise the printer crashes. 

I also tried to reduce the repetitions in the config.h to 1, but it failed he still did 2. I don't know why.

To my question: 
Is there a possibility to set a delay time in a sub program or somewhere else when the pin gets pushed down in the second step? 

Thank you in advance :) 


  • // Waits for a signal to start. Valid signals are probe hit and ok button.
    // This is needful if you have the probe trigger by hand.
    #define Z_PROBE_SWITCHING_DISTANCE 1.5 // Distance to safely switch off probe after it was activated

    The wait is added before going down. Important if sensor needs some time to be ready again.
    Z_PROBE_SWITCHING_DISTANCE is distance it goes back for repeated tests.
  • Okay, Thank you so far. I already had set this parameters before. When I start G29 the pin get pushed down in the second repetition too early and hits the bed. Then the BL-Touch starts to flash with a red light.
    The crazy thing is, that its still doing the 2 repetitions but I set just 1. 

    Is there a possibility to change something in the Repetier Host?

    /* Z-Probing */

    /* After homing the z position is corrected to compensate
    for a bed coating. Since you can change coatings the value is stored in
    EEPROM if enabled, so you can switch between different coatings without needing
    to recalibrate z.
    #define Z_PROBE_Z_OFFSET 0 // offset to coating form real bed level
    /* How is z min measured
     0 = trigger is height of real bed neglecting coating
     1 = trigger is current coating

     For mode 1 the current coating thickness is added to measured z probe distances.
     That way the real bed is always the reference height. For inductive sensors
     or z min endstops the coating has no effect on the result, so you should use mode 0.
    #define Z_PROBE_Z_OFFSET_MODE 1

    #define FEATURE_Z_PROBE 1
    // Especially if you have more then 1 extruder acting as z probe this is important!
    #define EXTRUDER_IS_Z_PROBE 0
    // Disable all heaters before probing - required for inductive sensors
    #define Z_PROBE_PIN ORIG_Z_MIN_PIN  
    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 1
    #define Z_PROBE_X_OFFSET 0
    #define Z_PROBE_Y_OFFSET 0
    #define Z_PROBE_BED_DISTANCE 0 // Higher than max bed level distance error in mm

    // Waits for a signal to start. Valid signals are probe hit and ok button.
    // This is needful if you have the probe trigger by hand.
    /** Speed of z-axis in mm/s when probing */
    #define Z_PROBE_SPEED 4
    /** Delay before going down. Needed for piezo endstops to reload safely. */
    #define Z_PROBE_DELAY 2
    #define Z_PROBE_XY_SPEED 150
    #define Z_PROBE_SWITCHING_DISTANCE 20 // Distance to safely switch off probe after it was activated           geändert von 5 auf 20
    #define Z_PROBE_REPETITIONS 1 // Repetitions for probing at one point. 
    #define Z_PROBE_USE_MEDIAN 0 // 1 = use middle value, 0 = use average of measurements.
    /** The height is the difference between activated probe position and nozzle height. */
    #define Z_PROBE_HEIGHT 1 // Z-Probe height is distance nozzle to bed when probe triggers
    /** These scripts are run before resp. after the z-probe is done. Add here code to activate/deactivate probe if needed. */
    #define Z_PROBE_START_SCRIPT "M340 P0 S700"
    #define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1500"
    /** Set 1 if you need a hot extruder for good probe results. Normally only required if nozzle is probe. */
    /** Minimum extruder temperature for probing. If it is lower, it will be increased to that value. */
  • You know that G29 is not bed leveling? Marlin has the command there but here G32 is bed leveling. Add S1 or S2 to save data in eeprom.

     Z_PROBE_REPETITIONS 1  should be correct, no short move afterwards, only going back to start height.

    In host you can only change the probing positions for G29/G32 and z probe height. But not repetitions.

    You can also define Z_PROBE_RUN_AFTER_EVERY_PROBE script to reactivate probe after each run.
  • I saved the data to eprom with M502 and M500 in the command window.  
    I attached a video of my problem as zip file. I think now it should gets much clearer. 

    My problem is that I can't or don't know how to prevent the second contact with the bed and the pin. 

    Thank you. 
  • edited July 2019
  • The Problem is, that the Print heas including BLTouch needs to be lifted faster after the first measurement.
    When the the needle is releases the second time, it does not reach its outer position (it bumps into the bed) and an error ist created (red blinking).

    There is an
    which slows down the second homing movement.
    When I installed the BLTouch, I even changed the code to
    switch off the reduction when the head goes up and leave the reduction factor, when the head goes down.
    But this was an earlier version. Maybe repetier changed something.
    But you could play with this factor. If its too small, the precision may be too bad.

  • Yep @Scottty is right. You are moving too slow. Apart from setting reduction factor to 1 you need to increase the z homing feedrate. That is the one used for the back move here that is too slow.

  • Personally, I "hacked" the probing code to raise the Z-Probe faster (adding a multiplier to the Z-Probe raise rate) - without affecting the other probe/feed rates.

    As Scottty mentioned, BLTouch needs to raise the Z-Axis (quickly) to avoid the re-deployment of the probe from hitting the bed and erroring.
Sign In or Register to comment.