How Do I Speed up The BLTouch Auto Bed Leveling In TH3D's Unified Firmware?

  • I have just upgraded my board to TH3D's EZBoard Lite with their Unified Firmware (U2.R1.15) and whilst dialling in all the setting I have found that using the BlTouch each time to be frustrating because of the time it takes to complete the Auto Bed Leveling, however, I cannot find the settings to increase the speed as shown in Teaching Tech's video:


    #define DEFAULT_MAX_FEEDRATE          { 500, 500, 5, 25 }

    is changed to


    #define DEFAULT_MAX_FEEDRATE          { 500, 500, 20, 25 }

    and


    #define BLTOUCH_DELAY 375   // (ms) Enable and increase if needed

    is changed to


    #define BLTOUCH_DELAY 100   // (ms) Enable and increase if needed

    and


    // X and Y axis travel speed (mm/m) between probes
    #define XY_PROBE_SPEED 8000

    is changed to


    // X and Y axis travel speed (mm/m) between probes
    #define XY_PROBE_SPEED 10000

    I am not quite sure which parts to change as the two builds are organised and worded differently.


    In the online firmware configurator, it does list an option to speed up the probing of their own EZABL but says not to do so for the BLTouch in the manual configuration editor


    // Super fast probing - VERY EXPERIMENTAL AND ONLY TESTED WITH EZABL PRO SENSORS
    // Do NOT use with EZABL_FASTPROBE (comment out above) or BL Touch Sensors
    //#define EZABL_SUPERFASTPROBE

    Would enabling this be the same as making the changes listed in Teaching Tech's video?


    Any help you can offer will be greatly appreciated.


    X -> Y Problem: The EZBoard seems to be supported by stock Marlin too, so that would probably be the easiest solution.

    It is not advised to lower `BLTOUCH_DELAY`, there is time required for the deployment. Note that the sanity check should have warned you: `"BLTOUCH_DELAY less than 200 is unsafe and is not supported."`

    I'm exactly at the same situation, trying to speed up bltouch through th3d firmware. Did you end up solving it? Did it work by enabling `#define EZABL_SUPERFASTPROBE`?

    No, I never found out how to do it because I'm not sure if EZABL_SUPERFASTPROBE will work with the bl touch, I ended it up leaving it because speeding it up wasn't worth it enough to go through the hassle of fixing it if mucked everything up.

  • There are multiple ways to achieve this:


    In G-code


    You don't necessarily need to do that in firmware, TH3D is based on Marlin firmware and is just a monolithic implementation for most popular printers and boards that helps novice users to easily configure their printer, but in the meantime it hides other options from plain sight.


    Being a derivative fro Marlin firmware, the bed leveling speed in between probes can also be easily set in G-code. G-code G29 has a speed parameter:


    S : Set the XY travel speed between probe points (in units/min)


    From below (TH3D firmware) can be seen that a value of 12000 mm/min will speed up and is generally safe to use.


    In Marlin firmware


    In Marlin firmware, the speed setting in between probes is found in Configuration.h:


    // X and Y axis travel speed (mm/min) between probes
    #define XY_PROBE_SPEED 8000

    In TH3D firmware


    In TH3D firmware this speed is buried in the Configuration_backend.h:


      #if ENABLED(PROBING_MOTORS_OFF)
    #define XY_PROBE_SPEED 8000
    #else
    #if ENABLED(SLOWER_PROBE_MOVES) || ENABLED(TH3D_EZ300) || ENABLED(TIM_AM8)
    #define XY_PROBE_SPEED 8000
    #else
    #if ENABLED(EZABL_SUPERFASTPROBE)
    #define XY_PROBE_SPEED 16000
    #else
    #define XY_PROBE_SPEED 12000
    #endif
    #endif
    #endif

    The speed is depending on setting of the PROBING_MOTORS_OFF in Configuration.h:


    // This will disable the XYE motors during probing. Can be useful if you have stepper motors causing interference issues with the EZABL sensor.
    #define PROBING_MOTORS_OFF

    or depending on the speed settings for specific setting/sensors (ENABLED(SLOWER_PROBE_MOVES) || ENABLED(TH3D_EZ300) || ENABLED(TIM_AM8):


    // If you have issues with your machine running the faster probe setting disable the #define EZABL_FASTPROBE below.
    // DO NOTE: Most machines will work with the fast probe enabled. Use M48 to verify accuracy.
    #define EZABL_FASTPROBE

    // Superfast probing - Only works with the EZABL Pro Sensors
    // DO NOTE: Not all machines will work with the fast probe enabled. Use M48 to verify accuracy and make sure the Z isn't binding with the high speeds.
    //#define EZABL_SUPERFASTPROBE

    Basically, if you have not defined one of the following: PROBING_MOTORS_OFF, SLOWER_PROBE_MOVES, TH3D_EZ300 or TIM_AM8, the XY_PROBE_SPEED will default to a value of 4000 (depending of the definition of HOMING_FEEDRATE_XY) since the constant is not defined, see Conditionals_post.h):


      #ifndef XY_PROBE_SPEED
    #ifdef HOMING_FEEDRATE_XY
    #define XY_PROBE_SPEED HOMING_FEEDRATE_XY
    #else
    #define XY_PROBE_SPEED 4000
    #endif
    #endif

    In Marlin you would simply change the value of the travel between probing speed whilst in TH3D you need to sort out if one of all those conditions are met. For advanced users with a slightly different printer setup, the TH3D software might be less optimal. Do note that forks of the Marlin firmware that are heavily modified always (like TH3D) lack behind the original sources; you are dependent on the implementation schedule of the fork maintainer. But, for people that have not modified their printer, have a limited knowledge of software (C/C++ development) and firmware flashing, or their modification falls in the supported options of TH3D, the monolithic TH3D might be very helpful!


    Most probably, your setting is overruled later.


  • I dont know if you managed to solve this but if not I was facing the same issue and managed to do it just by searching all sketches for those parameters in Arduino IDE. They are not all in configuration.h like shown in the Teaching Tech video. Most of them are in configuration_backend.h and some in conditionals_LCD.h I used the values suggested in TT's video and it has speeded up levelling vastly.


    p.s. I am using the most recent version of the TH3D unified firmware on a Creality CR-10 mini


    Hi, welcome to 3DPrinting.SE! Showing which constants you would need to change would help the OP, the current state of the answer still leaves the OP in the dark...

  • I was successfull in getting my ender 5 pro bltouch to work faster. I still have some tweaking to do, and I'm a noob. I did the following in configuration_backend.h:


    I changed #define HOMING_FEEDRATE_Z 4 times 60 to 20 times 60:


    #if ENABLED(EZABL_SUPERFASTPROBE) && DISABLED(BLTOUCH)
    #define HOMING_FEEDRATE_Z (15*60)
    #elif ENABLED(EZABL_FASTPROBE) && DISABLED(BLTOUCH)
    #define HOMING_FEEDRATE_Z (8*60)
    #else
    #define HOMING_FEEDRATE_Z (20*60)
    #endif

    XY probe speed looks good, didn't have to change:


    #if ENABLED(PROBING_MOTORS_OFF)
    #define XY_PROBE_SPEED 8000
    #else
    #if ENABLED(SLOWER_PROBE_MOVES) || ENABLED(TH3D_EZ300) || ENABLED(TIM_AM8)
    #define XY_PROBE_SPEED 8000
    #else
    #if ENABLED(EZABL_SUPERFASTPROBE)
    #define XY_PROBE_SPEED 16000
    #else
    #define XY_PROBE_SPEED 12000
    #endif
    #endif
    #endif

    I commented (deactivated) this, so it probes only one time:


     //#define MULTIPLE_PROBING 2

    I changed the folowing from 15, 10, 10:


    #if ENABLED(BLTOUCH)
    #define Z_CLEARANCE_DEPLOY_PROBE 10
    #define Z_CLEARANCE_BETWEEN_PROBES 5
    #define Z_CLEARANCE_MULTI_PROBE 5

    Hope this helps. Work in progress.


    Andy


License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM