See attached photo for the results of the bed levelling test using superslicer’s calibration test.
This is using the uhhh mriscoc firmware after heating to thermal equilibrium, tramming to tolerance, doing a 9x9 mesh which found a high point at the super messed up bottom left corner (higher than tramming result? but slightly further out).
I have M420 S1 in my custom gcode, and for insanity’s sake checked the gcode of the part and it’s in the custom block and start block.
Any ideas what’s going on? every other section is okay, although back right is a bit distant.
EDIT 2023-07-11T08:27(UTC): So after some shenanigans the current findings are summarised as following:
- Z travel speed during probing needs to be slow
- multiple probing (3 samples) creates reproducible meshes and tramming wizard results
- Trying to enable the mesh via
G29 A ; Activate UBL \n G29 L0 ; Load mesh in slot 0 \n G29 J ; Correct for skew
didn’t seem to work. Replacing that whole block withM420 L0 S1
makes the Z axis move during XY translation (from which I infer the mesh is loaded and being used correctly vs my printer is possessed) - The above would seem to me to indicate the marlin documentation is wrong? as it suggests using G29 L# and G29 A respectively.
As of the time of update, that lower right corner is proving troubling, still. I think it’s an issue with the location of the probe and interpolation results vs actual geometry of the bed. By that I mean, if we define down on your screen as positive X and right on your screen as positive Y the probe is located at MX, -NY
vs the print head, thus the extreme location cannot be sampled. If the bed geometry is not smooth at that extreme then the automated fill in of my 9x9 grid might be wrong. I will attempt manually leveling that section and see if that helps
EDIT the second:
I’m going insane. Will take some photos in the morning but mesh values in the left front of the bed are wildly different from actual height.
Building the mesh with the probe will report a sort of hill in the centre going to low corners, the front left will report something like -0.3mm (although the mesh display only shows -0.2 mm editing the value shows it’s lower) but if I go into the edit mode and manually probe that location it’ll crash into the bed hard.
Setting it for light dragging on paper akin to the sort felt in the centre of the bed where values are accurate will have the mesh height at ~0.1 mm. A 0.3 mm difference? what the fuuuuuuuck?
So it looks like the autolevelling isn’t working during the print. This prompted me to go read some documentation and I figured out a couple of things.
Firstly my Z feed during probing was too fast and causing issues, fixed that and did repeated sampling with the probe. I get very consistent tramming and mesh results.
I set the mesh to 9x9, then saved it to slot 0
I read that UBL leveling gets turned off by G28 (maybe) and doesn’t use the M420 code. This is now my startup gcode in the “custom G-code” in superslicer
G90 ; use absolute coordinates M83 ; extruder relative mode M140 S[first_layer_bed_temperature] ; set final bed temp M104 S150 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling G4 S10 ; allow partial nozzle warmup G28 ; home all axis G1 Z50 F240 G1 X2 Y10 F3000 M104 S{first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} ; set final nozzle temp M190 S[first_layer_bed_temperature] ; wait for bed temp to stabilize G29 A ; Activate UBL G29 L0 ; Load mesh in slot 0 G29 J ; Correct for skew M109 S{first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} ; wait for nozzle temp to stabilize G1 Z0.28 F240 G92 E0 G1 Y140 E10 F1500 ; prime the nozzle G1 X2.3 F5000 G92 E0 G1 Y10 E10 F1200 ; prime the nozzle G92 E0
The printer loads the mesh in 0, does the skew correction (which amusingly f’d the mesh up in my test because it hit a blob of PLA stuck to the bed at the edge), then does the strip down the side and starts printing. However there is no Z travel (as determined by a flag attached to the leadscrews) duringing X/Y movement while printing.
After aborting the print the mesh is correctly loaded still and adjusted with the skew.
Thoughts?
What kind of ABL is your Marlin compiled with? If it is bilinear, which is very common, G29 J does the following:
I saw now that you said those lines didn’t work, so I guess maybe you don’t have Marlin compiled with “unified” ABL? The Marlin docs have different paged for the G29 command depending on the compile option.
I’m pretty sure I do as I have all the mesh editing and viewing features as well as manual levelling for unreachable points. Wifey installed this firmware though and idk what binary she chose specifically.
When you run the “G29 J” command, you see it take 3 measurements at different points, right? This ought to mean that it does the tilt correction, so it’s probably unified ABL.