this post was submitted on 10 Jul 2023
23 points (100.0% liked)

3DPrinting

15276 readers
103 users here now

3DPrinting is a place where makers of all skill levels and walks of life can learn about and discuss 3D printing and development of 3D printed parts and devices.

The r/functionalprint community is now located at: [email protected] or [email protected]

There are CAD communities available at: [email protected] or [email protected]

Rules

If you need an easy way to host pictures, https://catbox.moe may be an option. Be ethical about what you post and donate if you are able or use this a lot. It is just an individual hosting content, not a company. The image embedding syntax for Lemmy is ![](URL)

Moderation policy: Light, mostly invisible

founded 1 year ago
MODERATORS
 

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 with M420 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?

EDIT: 2023-07-13T08+00:00: I figured it out. Thanks for your advice and patience. I will add pictures of the meshes at various stages to this post at a later date to assist any other wanderer in madness in identifying and solving the same problem.

In essence neither X or Y were square, the probe being offset in both X and Y created the problem. Because of the gantry construction it would be non trivial to square the XZ gantry to the Y axis so instead I verified that Y was not twisted and instead squared X to the best of my ability and precision tools.

Then I printed this part: https://www.printables.com/model/255096-sprite-extruder-ender-s1-pluspro-cr-touch-mount-fo to which my eternal gratitude goes out to a Mr S Grindset for providing in order to move the probe to be colinear with the print head in X. Ensuring that any error due to Y not being square is even for the probe and print head.

Now it is pretty good! Auto leveling works well enough to get "pretty even" layers, certainly none of the nasty ripples and ploughing I was experiencing.

top 20 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 1 year ago (1 children)

What does the probed mesh look like? If you run multiple probe cycles, are the results consistent?

[–] [email protected] 1 points 1 year ago

Yes, I posted a comment reply with further information here

[–] [email protected] 3 points 1 year ago (2 children)

How are you determining the bed is at temp? The sensor is in the middle, could the outer corners still be heating up?

Is the bed leveling actually being used? On my printer you can see the z screws move slightly as the print head moves across the board. Easiest to look at the couplers or put a text mark on the screen.

[–] [email protected] 2 points 1 year ago (1 children)

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?

[–] fhein 1 points 1 year ago* (last edited 1 year ago) (1 children)

What kind of ABL is your Marlin compiled with? If it is bilinear, which is very common, G29 J does the following:

Jettison the leveling data stored in SRAM and turn off leveling compensation. Data in EEPROM is not affected.

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.

[–] [email protected] 1 points 1 year ago (1 children)

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.

[–] fhein 1 points 1 year ago (1 children)

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.

[–] [email protected] 1 points 1 year ago (1 children)
[–] fhein 1 points 1 year ago (1 children)

If you haven't, try removing the G29 J command from the slicer start code. I've seen a few cases where it made things worse. Personally I don't use it because my printer keeps levelling for a couple of months, at least after I replaced the soft bed springs with silicone dampers. If more time has passed I just redo the entire bed mesh.

[–] [email protected] 1 points 1 year ago

post has updates, currently just m420

[–] [email protected] 0 points 1 year ago (1 children)
  1. waiting half an hour while I cook breakfast :p

  2. I haven't checked for motion. It would be subtle and lead screws are at the back. Will give it a squiz after gathering suggests. What do you mean text mark on the screen? I could just eyeball Z coords right as they should shift?

[–] [email protected] 1 points 1 year ago

Seems like you have worked it out, but you can usually see the z couplers on my print move about 1/4 of a turn as it moves across the bed. I usually look at the grub screws, but you could put a texta mark on the z screws to see if it was moving.

I don't think the Z height as reported by the printer will be moving though, it's an internal movement.

[–] froh42 2 points 1 year ago* (last edited 1 year ago) (2 children)

I had inconsistencies in my print on an Ender 3pro with sprite, no kind of manual or ABL level fixed it.

It turned out one of the eccentric v nuts at my gantry was too tight, so it didn't run smoothly - the right side of the gantry lagging to the left. (Ender 3pro has only one z screw)

So check for mechanical problems, lubrication of the z rod etc.

For the V wheels - they need to be adjusted so thight that you can just turn them manually with one finger then one ministep thighter.

[–] [email protected] 1 points 1 year ago

So if you check my other comment in the thread the Z axis isn't moving at all with XY translation which suggests to me the mesh isn't being used period.

There could be mechanical issues too but I think focusing on the software first is likely to be fruitful.

[–] [email protected] 1 points 1 year ago

If you check my edit the second it's seeming that something like this might be the case?

Do you know if this problem sounds like a mechanical issue?

[–] rambos 1 points 1 year ago

If that was printed without ABL, you could probably go without one

[–] Nanomerce 1 points 1 year ago (1 children)

hey, after finding the mesh did you send m500 to save the mesh?

[–] [email protected] 1 points 1 year ago (1 children)

Yes, the mesh saves and loads correctly. I had the Gcode wrong which you can see in my comment and the post edit. Ongoing issues though

[–] [email protected] 1 points 1 year ago (1 children)

So is it just g29 L0 that I need to add? I suspect mine is not using the mesh either

[–] [email protected] 1 points 1 year ago

So all I have currently is M420 L0 S1 as I mention in my post. Make sure it comes after g28 in case that's configured to unload autolevelling. Make sure L# matches the slot number your mesh is saved to.

To see if it's working. Print a skirt around the whole bed. Put an Allen key in the grub screws of the couples between the Z motors and the screws and watch or feel for deflection. The movements will be subtle.

It's also worth seeing if comparing manual levelling using a feeler gauge or paper sheet and the nozzle tip creates the same mesh as automatic levelling using the probe. plus or minus Z offset of course. If there's a skew to the manual mesh you need to fix axis alignment.