Update mesh tilt on every print?



  • Hi all
    Can I have G29 probe many points (to make a new mesh, 99 for me) and G32 probe 3 points to update the tilt of the mesh? This would be like the “G29 J” function of UBL on marlin. Is there any way to do this on a duet? I want to do this because my bed is adjusted by spring loaded knobs so removing prints can push the bed side to side and mess everything up. When I was using marlin, this 3 point tilt update worked very well. I have a Duet 2 wifi BTW, Firmware 2.04, server 1.23, DWC 2.0.4. My printer is CoreXY.
    config.g
    bed.g
    homeall.g
    heightmap.csv
    (heightmap is a bit tilted, as you can see. It happens often and is a bit of a pain to fix - I usually end up turning the number of probe points down temporarily until I get it dialed in)

    Thanks!
    PS the printer would probe 3 out of the 4 corners of the bed to update the tilt.



  • You probably don't need to re-run the G29 for the 99 points every time unless you think that removing the print might actually change the surface profile more than just the tilt and you probably don't want to probe the 99 points with G32 to re-level the bed so...

    Instead of running a plain "G29" in your bed.g (which will use the 99 points from M557), use "G30" to probe the 3 points. Here's my bed.g...

    G30 P0 X0 Y13 Z-99999 ; probe near first leadscrew
    G30 P1 X238 Y450 Z-99999 ; probe near second leadscrew
    G30 P2 X460 Y13 Z-99999 S3 ; probe near third leadscrew
    

    Now when you run G32, it'll run bed.g and just probe the 3 points and you can do the adjustment based on the results. If you actually have 3 leadscrews, you can just roughly re-position the build plate after removing a print, then let the firmware make the adjustments for you.





  • So what you are saying is to manually adjust the bed after each print to get it to once again match the height map?
    What I'm trying to to is get the printer to automatically update the height map before each print. If you have your printer probe the bed in the same place as the outer 3 corners of your height map, you can then update the tilt of the height map if your print bed has become tilted (like mine does). The topography of your bed isn't likely to change from print to print, but the tilt can. Marlin's UBL has this feature. This is how it is described (here) :

    [J < int >] 	
    
    Grid (or 3-Point) leveling:
    
        These options calculate a plane and adjust the existing mesh to the bed tilt.
        If a value is provided, probe a grid with the given number of points, squared.
        With no value, probe 3 points to find the plane of the bed.
    
    


  • So is there a feature like this or should I make a feature request?
    Thanks for the help.


  • Moderator

    Moved to firmware wishlist as I don't think there is anything quite like this currently implemented.

    It's not uncommon to use true bed leveling or physical tilt correction using 2 or 3 motors, but I don't think there is anything currently that allows for adjusting the tilt of the heightmap itself in software. @dc42



  • The documentation isn't very clear on this but I thought G30 and G32 store the tilt and if there's no auto correction available, applies the tilt as a transform.


  • Moderator

    @gtj0 I'm not too sure about that. I think G30 just returns the position of a single point. G32 just calls bed.g. I don't think anything else special happens with either. But I don't know that for certain.



  • If you look at the docs for G32...

    S3 Transformation matrix is stored. Z bed height not calculated.
    

    That would imply that something is stored.

    I might have to test this myself.



  • I wonder what would happen if you did an M557 with 4 points, renamed bed.g to something else, then did a G32 S3.


  • Moderator

    Is that the old 5-point G32 matrix that has been deprecated?



  • Beats me 🙂 I've always used the 3 screw auto levelling.


Log in to reply