Coming from Marlin, trying to figure out how mesh bed leveling works in klipper with a bltouch

Basic Information:

Printer Model: CR-10 V3 w/ bltouch v3.1
MCU / Printerboard: BTT Pi v1.2 / SKR Mini e3 v3
Host / SBC Mainsail? / ??
klippy.log (5.2 MB)

Describe your issue:

Starting off strong here haha I guess my first minor question is what do I put for “Host /SBC” when filling out this topic?

To my main question…I just installed Klipper yesterday thanks to staking layers video on youtube. Everything worked perfectly installing etc. Since my printer/board/bltouch combo is not a pre-config I am having some difficutly setting up up my bl touch to level my bed. It seems that the Ender 3 with skr mini printer.cfg file that I based mine off of has a fairly basic config. In Marlin you can bascially see all the options and can choose what you want and dont want. So its throwing my off since I dont know what I can and cant do/add/configure.

My BLtouch works just fine with G28 to probe the z-end stop. I did also have the bltouch working properly with my skr mini and marlin. So not thinking its a wiring/pin issue. The problem is it doesnt auto bed level with G29 command from my start g-code in prusa slicer. I saw a github post by " Lyr3x" which said to add this macro in the printer.cfg:

[gcode_macro G29]
gcode:
 G28
 BED_MESH_CALIBRATE
 BED_MESH_PROFILE SAVE=p1
 G1 X0 Y0 Z5 F4000

After saving I tried G29 in the terminal and it said:
Unknown command:“G29”

So it seems that the way macros work is my just clicking on them in the dashboard. I tried this and it worked just fine. Is there a way to trigger a macro in the start G-code for my printer in prusa slicer? For example, I was thinking maybe if I add [gcode_macro G29] in my start g-code that might trigger the macro. But he does say it will restart klipper when it saves so that concerns me during the start of a print. I am used to just doing a new mesh everytime but does this mean maybe I dont need to do that?

I will just refer to the issue thread I am talking about for more context:

Any help to get me on track would be apperciated. But my main confusion is when I see forums about macos and with start g-codes it is sometimes unclear when im supposed to add something in the start g-code or just add something to the printer.cfg file.

One more sub question:
Related to not knowing what is possible in the cfg file etc…If I dont add certain “advanced” settings in my printer.cfg file does klipper just automatically use the defaults for those? When I was building my printer.cfg file the CR10 V3 example had a lot more things in there it said I should uncomment if using a bl touch which wasnt in the ender 3 config. Some examples were:

#set_output_mode: 5V
#pin_move_time: 0.4
#stow_on_each_sample: False
#probe_with_touch_mode: False
#samples: 2
#sample_retract_dist: 2
#samples_result: average

and

#Uncomment the following lines if you have a BL-Touch
[screws_tilt_adjust]
screw1: 0,29
screw1_name: front left screw
screw2: 228,29
screw2_name: front right screw
screw3: 228,269
screw3_name: rear right screw
screw4: 0,269
screw4_name: rear left screw
speed: 50
horizontal_move_z: 10
screw_thread: CW-M3

…To list a few. Im sure there are more and I know that the sky is the limit on how to organize and customize but if you have any guideance to go about understanding what I do and do not need for the bltouch specifically or just in general that would be great.

Thank you in advance for your help!

To your first question regarding bed mesh, there are a couple things you can improve.

  1. It’s generally best-practice to migrate your start gcode into klipper. In mainsail.cfg, there is a START_PRINT macro present. Put your start print gcode there, then refer here to configure your slicer. This allows you to more easily make tweaks to your start gcode without going back to your slicer.
  2. I’d suggest just putting BED_MESH_CALIBRATE into your start gcode instead of trying to get G29 to work. If you’re running a bed mesh before each print, you don’t need to save the profile (the following line in the macro you shared).

To your question about calling macros. Yes, you can just call them directly from the gcode. I’m not sure why your G29 macro doesn’t work. Did you restart klipper after you put it in your config?

For your later question about your printer configuration, I suggest looking at the configuration reference. It defines all of the different configurations you’re wondering about. Broadly speaking, many settings in your config have default values when they’re undefined. If something is undefined that absolutely needs to be, you will receive an error.

So first off my recommendation would be to pull up the Clipper documentation because a lot of the questions you have are all in there. Also if you do not have a G29 macro setup then Clipper doesn’t know what G29 is I can post my configuration later on but Clippers a little bit different in a sense it’s like a blank platform that you can add way more things to has way better kinetics and precision than Marlin can print way faster but you got to go through the documentation it will really help you getting your config started also check GitHub I just go to Google type in whatever printer I’m looking for GitHub behind it or Clipper behind it and there are numerous pages of config files with features all kinds of stuff that you can do for pretty much any of the printers that are popular. Also understand that Marlin is something you pretty much just put on your printer and that’s it if you need to do anything else you have to reflash it onto your printer every single time as we’re clipper it’s going to be a config file that you’re going to build over time you really don’t want to put a whole bunch of features in at one time because it’s hard to track what’s good what’s not what’s working what’s not I recommend getting a basic config and just taking small steps building it a little bit as you go. Add one thing in get it working do your tuning stuff like that then go to the next step because if not if you start having errors you’re not going to know what’s causing it so it’s a lot easier.