Another Mesh leveling thread…!



  • Hey All!

    I've got this thing mostly working, but kinda wanted to see if I could get some pointers / best practices…

    My printer is a CoreXY, 380^3 build envelope. DuetWifi, DC42 IR Probe.

    config.g:
    ; Z probe
    M558 P1 X0 Y0 Z1 ; Analog Z probe, also used for homing the Z axis
    G31 X9.6 Y17.5 Z1.81 P500 ; Set the probe height and threshold (put your own values here)

    ; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
    ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
    M557 X15:365 Y15:365 S80 ; Define X and Y bed size, and size of area.

    bed.g
    ; Before running this, you should have set up your zprobe Z offset to suit your build, in the G31 command in config.g.

    M561 ; Clear Any Existing Bed Compensation
    G28 ; Home All
    G29 ; Probe Bed

    Everything stores great after the first probe, but it seems to disappear once I power down.

    Am I missing something somewhere to make this a permanent (until overwritten) compensation? Do I add a G29 to my starting GCode on a print?

    Any tips / pointers you guys could give me would be great. As of now, my first layers are super consistent, which makes printing with this combo a complete JOY. Just trying to work out bugs (which I'm sure are operator error..) when it comes to ALWAYS enabling mesh compensation.

    Thanks a bunch!,
    -Casey


  • administrators

    The bed height map is stored on the SD card when you run G29. If you want to reload it after powering off and on, use G29 S1.



  • @dc42:

    The bed height map is stored on the SD card when you run G29. If you want to reload it after powering off and on, use G29 S1.

    Would it make sense to just call that in my starting gCode out of my slicer? so that it enables for every print?

    Thanks for your Help!,
    -Casey



  • I did think about doing that but in the end settled for having:

    G29 S1 ;load grid levelling mesh
    M376 H10 ;taper off compensation after 10mm
    M500

    At the end of my bed.g so it saves the calibration, and loads the grid and sets the taper off height. That way calibrations get progressively better. I just have to remember to run a grid levelling, which I have a macro for:

    G29 S2 ;clear height map
    M557 R140 S30 ;define levelling grid
    G29 ;probe levelling grid save height map
    G1 X0 Y0 Z100 F3000 ;reposition effector

    If I have moved the bed, or am running it at a different temperature etc…


  • administrators

    That looks good to me. The G29 S2 is not needed, but harmless.



  • @DjDemonD:

    I did think about doing that but in the end settled for having:

    G29 S1 ;load grid levelling mesh
    M376 H10 ;taper off compensation after 10mm
    M500

    At the end of my bed.g so it saves the calibration, and loads the grid and sets the taper off height. That way calibrations get progressively better. I just have to remember to run a grid levelling, which I have a macro for:

    G29 S2 ;clear height map
    M557 R140 S30 ;define levelling grid
    G29 ;probe levelling grid save height map
    G1 X0 Y0 Z100 F3000 ;reposition effector

    If I have moved the bed, or am running it at a different temperature etc…

    Nice! I might borrow most (all) of this!

    I didn't even know that compensation taper existed… so there's that...

    Thanks!,
    -Casey



  • Your welcome, I borrowed it off someone else here at some point.



  • Another Question!

    Using G29 for bed leveling, does that move the Z physically like G32 does? Or does it handle the transform differently?

    -Casey


  • administrators

    Yes it moves the head in the Z direction to follow the contours of the bed.



  • I'm curious about a couple things with mesh bed leveling.

    Does it move the head up and down to account for bumps or is it just a plane correction?

    If you have a slight effector tilt (that is compensated for via H adjustments in the bed.g), how does the G29 command adjust for this (if at all?)

    Thanks!!


  • administrators

    G29 compensation moves the head up and down to follow the contours of the bed. Long moves get segmented into shorter ones to make this possible.

    If you have varying Z probe trigger height due to effector tilt or anything else, currently the only way to compensate for it is to edit the height map file and reload it.



  • Would you do that the same way you do the h values in bed.g? For each point measured, calculate the difference from the center measurement and add/subtract it to the height map point?


  • administrators

    Yes.



  • If you taper off with 10mm does that mean that it starts allready on second layer and has zero compensation at 10mm?

    I did a G29 today after i printet a part on glass bed with glue on it. I had a huge error of 0.5mm where the printed part was peeled off compared to the rest of the bed. Normally it is within 0.1mm. Is this normal? Does it mean I only should run G29 with a washed glass plate? Really annoying as I sometimes have to take glass on/off for removing print and then I'd like to run G29 again to be sure it's seated the same as last time. Now I have to wash between every print



  • mesh leveling has caused me quite a lot of problems. I'm starting to wonder if it's really useful to me.

    I've added G29 to my bed macro, and my slicer adds a G32 at the beginning of the gcode files.

    Most of the time it works ok, but every now and then, at least once a day it fails. Probably because glass is not cleansed enough, or sometimes some bits of filament fell on the bed during the probes…

    How about adding a new parameter to specify a acceptable deviation from G29 ?
    My maximum deviations are often between -0.08 and 0.08. I'd love to be able to skip the whole G29 results if there are values outside of this range. (I guess I would also love RRP to cancel the print if G29 is triggered from a gcode file)


  • administrators

    Unless you are swapping bed plates around, why don't you use G29 S1 to load a known good height map instead of probing each time?



  • yes, that's what I thought.
    I've been spending a lot of time playing with my duet, which is under the bed, so I decided to put G29 in bed macro. I guess I don't need it anymore.

    i guess I don't need to run G32 before every prints either.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.