Closed HitLuca closed 2 years ago
Would you mind sharing the [bed_mesh]
section from your printer.cfg to help me diagnose?
It just occurred to me that I think I know what you're hitting, because it's a mistake I've made before when setting up a new printer. Klipper requires that your mesh_min
and mesh_max
account for any offsets for your probe (example here). If you don't do that, Klipper will generate an illegal mesh any time you perform a standard full bed probe (which is what happens when you pass a large enough mesh to PRINT_START
).
So, without seeing your bed_mesh
and probe
/bltouch
configs, my guess is that the X value in your mesh_min
is less than the x_offset
configured for your bed probe. You should be able to fix it by setting that value to x_offset
plus a few millimeters of padding (and do the same for the Y min/max if necessary).
here is the relevant section, as well as the [bltouch]
one to check the probe offsets, as it may be useful
[bltouch]
sensor_pin: ^PC14
control_pin: PA1
x_offset: 48
y_offset: 16
pin_move_time: 0.4
probe_with_touch_mode: True
pin_up_touch_mode_reports_triggered: False
stow_on_each_sample: False
#z_offset: 2.370
[bed_mesh]
speed: 120
horizontal_move_z: 8
mesh_min: 58, 26
mesh_max: 290, 290
probe_count: 6, 6
mesh_pps: 2, 2
algorithm: bicubic
bicubic_tension: 0.2
I actually have offsets for the probe accounted for in my bed mesh, and full bed probes never generated errors
Thank you for quickly answering my questions, I recently switched to klipper and I'm quite new to this but your macros are helping me learn a lot!
Okay, next question, does your printer.cfg
have something like the following line to explicitly include the BED_MESH_CALIBRATE
wrapper macro:
[include klipper-macros/optional/bed_mesh.cfg]
Because that's where the argument bounding happens, and it looks like in your case the unbounded parameters are being passed to the original BED_MESH_CALIBRATE
.
That's also a bug on my part. The built-in BED_MESH_CALIBRATE
should never be called with unbounded parameters, regardless of whether you've included optional/bed_mesh.cfg
. I'll write up a fix for that one sometime today or tomorrow.
I have this [include klipper-macros/*.cfg]
which i'm pretty sure doesn't include subfolders. I will test it out when I get back home
That's correct. That line will not include subfolders, so without the explicit include directive the correct BED_MESH_CALIBRATE
will not get called (hence why the folder is labelled "optional").
Like I mentioned above, this behavior is really a bug on my part. I just wrote a patch to split the code so that the optimized mesh levelling works by default, and the optional part is necessary only if you want the G20
and BED_MESH_CALIBRATE
override. I'm testing it now, and if it's good I'll post it in a bit.
It also seems like you weren't actually getting the optimized mesh leveling. It was reducing the mesh size, but not the number of points. So once this is fixed your mesh should run faster for smaller objects.
Okay, this should be fixed with 72eae8d. It should now always default to BED_MESH_CALIBRATE_FAST
when you have a [bed_mesh]
section, which will prevent unbounded limits from slipping through. And you don't need to include optional/bed_mesh.cfg
unless you want G20
and the BED_MESH_CALIBRATE
override.
I can confirm that adding the missing import fixed my bed leveling issues
Haven't had issues with mesh bed leveling until today, and it looks like that for large enough prints the mesh leveling doesn't work properly.I have a 300x300 bed and while trying to print a piece covering almost all width of it I got errors when the macro generated the probing points:
PRINT_START
command:generated points as taken from the console:
This error never occurred with smaller prints, so I think it's just an edge case that needs to be figured out. I tried to set
variable_probe_mesh_padding
to0.0
to try and mitigate the issue without luckLemme know if you need other info