4
$\begingroup$

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.

$\endgroup$
4
  • $\begingroup$ X -> Y Problem: The EZBoard seems to be supported by stock Marlin too, so that would probably be the easiest solution. $\endgroup$
    – towe
    Commented Jan 6, 2020 at 7:31
  • $\begingroup$ 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." $\endgroup$
    – 0scar
    Commented Jan 6, 2020 at 7:55
  • $\begingroup$ 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? $\endgroup$
    – krasatos
    Commented Apr 11, 2020 at 15:00
  • $\begingroup$ 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. $\endgroup$
    – Liam
    Commented Apr 11, 2020 at 20:47

5 Answers 5

2
$\begingroup$

This has been changed in newer builds of Marlin.

Previous code:

// X and Y axis travel speed (mm/m) between probes

#define XY_PROBE_SPEED 8000

Current code:

// X and Y axis travel speed (mm/min) between probes

#define XY_PROBE_FEEDRATE (200*60) //define feedrate as a multiple of 60.
$\endgroup$
1
$\begingroup$

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.

$\endgroup$
0
$\begingroup$

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

$\endgroup$
1
  • 1
    $\begingroup$ 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... $\endgroup$
    – 0scar
    Commented Jul 2, 2020 at 6:50
0
$\begingroup$

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

$\endgroup$
0
$\begingroup$

There's also the option to save the mesh so that you don't have to level each time you print.

First of all, using Cura or whatever you use to send commands, send:

M502; Reset to factory settings 
M500; Saves (so that you may start with a clean slate)
G28; Home All
G29; Autolevel

After running your auto bed leveling, add

M500

And you're done.

P.S. don't forget to do this after bringing both extruder and bed up to temperature

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .