How to speed up bed leveling?
-
Hi, my first post!
My bed leveling routine (MBC) takes several minutes due to the number of points and speed of travel between points. I believe there may be a couple of things I can do to reduce the MBC time.
- Lower the initial height of the probe so it travels less
- Increase the speed between probe points
After a few hours of research, I have come to the following conclusions:
-
I can edit the H value in the following line to H5. Found in web console/settings/System Editor/config.g
M558 P5 X0 Y0 Z1 H10 F300 T6000
My understanding is that this will start the probe 5mm lower. Is that correct? ie: shorten the vertical distance moved. -
G29 is invoked in my slicer (Prusa Slicer 2.8.0) under Printers/Custom G code/Start G-code. Since there is no matrix defined, it looks like I need to get into the firmware and edit the G29_probegrid section. However, this seems a daunting task requiring much more than simply editing a figure (ie: obtaining source code, installing editing software on my PC, compiling, uploading). Is there any gcode I can use in my slicer or the System Editor that will enable me to speed up movement between probe points?
This is part of the start routine that includes G29:
M104 S160 ; ADDED BY DF ON 5 AUG 2022 TO KEEP NOZZLE TEMP NO HIGHER THAN 160 DEG. THIS PREVENTS FILAMENT EXTRUSION DURING MESH BED LEVELING.
M42 P25 S0
M42 P26 S0
M42 P24 S255
M280 P7 S160
T0
M572 D0 S0.05
G92 E0
G1 E-0.3 F1800
G32
G29
G1 X0 Y0 F4800
G92 E0
G1 E0.3 F540
G92 E0SYSTEM INFORMATION
Troodon V1 400 x 400 x 500
CoreXY style printer
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet
Firmware electronics: Duet WiFi 1.02 or later + DueX5
Firmware version: 2.03RC3 (2019-05-25b5)
Web interface version: 1.22.6Using PRUSA Slicer 2.8.0
FYI, I have modified the Vivedino supplied start routine in my slicer as follows (this represents the current state of my capabilities):
G1 Z50 F1800 ; ADDED BY DF 7 AUG 2022 TO RAISE EXTRUDER TO PROVIDE MORE SPACE TO CLEAN THE NOZZLE AS IT HEATS
M109 S[first_layer_temperature] ; ADDED BY DF 5 AUG 2022 TO SET NOZZLE TEMP TO FIRST LAYER TEMP & WAIT TILL REACHED
G1 E-0.30000 F1800
G1 Z0.200 F200 ; EDITED BY DF 7 AUG 2022 TO LOWER THE NOZZLE SLOWLY GIVING A LITTLE MORE TIME TO REMOVE ANY EXCESS FILAMENT (WAS F1000)
G1 X200 Y0 E43.5631 F1000
G1 E-0.30000 F5400
; G1 X205 Y200 F18000 (COMMENTED OUT BY DF 5 AUG 2022 TO PREVENT THE DOT ON THE BED)
; G1 E0.30000 F5400 (COMMENTED OUT BY DF 5 AUG 2022 TO PREVENT THE DOT ON THE BED)Also, I believe the documentation is incorrect about M558. It says:
"Set Z probe type, dive height, probing speed, travel speed between probe points, and probe recovery time"
However, I believe the speed value relates to vertical probe speed, not "travel speed between probe points" as the "Summary of gcode commands related to mesh bed compensation" states in the MBC documentation. https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_mesh_bedCheers,
Derek
-
@Derek-F yes, changing H to 5 will reduce the probe height. I usually have mine set at 5 for z probing, and the initial bed levelling but for any more I change the value to 2 as I know the bed is going to be pretty level after the first pass.
You can speed up the movement between probe points using the T value, which is in mm/min.
Both the H and the T values are in M558 -
@jay_s_uk Wow, thanks for the quick and helpful answers.
My research today indicated that T was a timeout for the probing operation. Mine is currently T6000. (I presumed that if it didn't hit the bed within 6 seconds, it would not continue to try and probe that point).
I got this from ChatGPT:
M558 P5 I1 R0.2 F100 H2 A1 T24000 ; Enable strain gauge probe, active low, retract 0.2mm after trigger, feed rate 100mm/min, trigger height 2mm, debounce 1ms, timeout 24s
"This example configures a strain gauge probe (P5), sets it to active low (I1), retracts 0.2mm after triggering (R0.2), sets the feed rate to 100 mm/min (F100), defines the trigger height as 2mm (H2), sets a debounce time of 1ms (A1), and specifies a timeout of 24 seconds (T24000) for the probing operation."Your reply indicates that the T6000 is the travel speed between points. ie: 100mm/sec. (6000/60). I know the printer will do 300mm/sec as this is the "non print move" speed. I think I'll try 200 mm/s first then 300.
Your comments are welcome.
Thanks again
Derek
-
@Derek-F chatGPT don't know much
https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m558-set-z-probe-type -
@Derek-F said in How to speed up bed leveling?:
I can edit the H value in the following line to H5. Found in web console/settings/System Editor/config.g
M558 P5 X0 Y0 Z1 H10 F300 T6000
My understanding is that this will start the probe 5mm lower. Is that correct? ie: shorten the vertical distance moved.Yes, see @jay_s_uk's answer. You could probably set it lower if you have some kind of bed/gantry levelling first, see https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_auto_levelling. I have mine set to H3.
G29 is invoked in my slicer (Prusa Slicer 2.8.0) under Printers/Custom G code/Start G-code. Since there is no matrix defined, it looks like I need to get into the firmware and edit the G29_probegrid section. However, this seems a daunting task requiring much more than simply editing a figure (ie: obtaining source code, installing editing software on my PC, compiling, uploading). Is there any gcode I can use in my slicer or the System Editor that will enable me to speed up movement between probe points?
No, you don't need to hack the firmware! Just use M557, set it in config.g or mesh.g. I find it expedient to home Z before and after running a bed mesh. See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_mesh_bed#define-the-mesh-size-and-spacing
To speed up probing even more, at the beginning of a print you could probe just in the area of the print, which will reduce the number of points you need to probe. See this thread: https://forum.duet3d.com/post/302519
Also, I believe the documentation is incorrect about M558. It says:
What?! I spat out my tea! And then checked... phew, sorry, you're wrong! M558 F parameter is the probing speed, T parameter is the travel speed between points. Both are limited by the maximum values set for the axis in config.g.
Ian
-
@jay_s_uk Hmm, I see that!
Thanks for your clarification.
Cheers,
Derek
PS, How do I mark your reply as the solution? is there a button? -
-
-
-
@Derek-F there you go
-
@droftarts Thanks for confirming and pointing me to the print area probe limit.
FYI, the code does already home before and after MBC.Glad I was wrong - sorry for tea tea mess.
Cheers,
Derek
-
@Derek-F Just to confirm, changing the T6000 to T18000 and the H10 to H5 has done exactly what I wanted and reduced the MBC to less than 1/3 of the original time. Thanks to all.
Cheers,
Derek
-
Hey Guys,
I'm struggling with the same issue, my maximum axis speed is set to 36000mm/min which equals 600mm/s, but no matter what I input as T value it's still traversing at 33.3 mm/s which is awfully slow for 90 points one a 1000*1000 build plate.
-
Share your current config.g and any meshes being called before your leveling routine. homing files, mesh.gm etc.
-
This post is deleted! -
Nevermind, stupid me found the issue while posting up the codes. I've adjusted the F value but not the T value. It now does indeed work