Mesh map - how is it applied?



  • I am trying to understand the finer details of a mesh map and ran into this question:
    A mesh map is generated based on a certain Z height. If you re-home and run another mesh map, at minimum everything shifts up or down based on where z zero is.
    When z zero is reset but no mesh map is run, then the old mesh map remains.
    How does Duet calculate the offset needed to be applied when z zero changes ?
    Let's say a particular point on the map shows as -0.1 and another shows as +0.1 when the mesh was generated based on a particular z zero. Now we have re-homed z and it is 0.05 higher than it was before.
    Does the Duet just apply the -0.1 mm for point 1 and the +0.1 for the second point relative to the new z zero? In effect adding the previous generated offset to the new z zero ? If that is how things work, why do I get a warning if the map is too far above or below the z zero mark when z zero is in effect irrelevant ?

    I am just trying to wrap my mind around this to understand if a mesh generated once will still be relevant after power was cycled and z zero has changed somehow.
    I am obviously assuming that no trauma was experienced by the bed.

    I am currently probing a spot multiple times until the readings fall within an acceptable range yet if I run the mesh again then previous values are discarded. Has anyone ever devised a way of combining multiple mesh maps to generate a mesh that is based on average values of multiple mesh maps? I seem to get noticeably different mesh bed figures with each probing of the bed even if multi probing is turned on.

    Last but not least, on a cartesian printer such as a CR10, if I have installed two separately driven Z motors, what should the order of operations be? Do I zero first then equalize the gantry height are do I equalize gantry height, then run z zero? Would a gantry height equalization not invalidate any mesh map? If equalization invalidates the carefully crafted mesh map, why do I equalize since it throws everything off. It would seem to follow that turning off the printer or resetting the printer or re-running config.g would invalidate the mesh map.

    Colour me confused ......


  • administrators

    @jens55 said in Mesh map - how is it applied?:

    I am trying to understand the finer details of a mesh map and ran into this question:
    A mesh map is generated based on a certain Z height. If you re-home and run another mesh map, at minimum everything shifts up or down based on where z zero is.
    When z zero is reset but no mesh map is run, then the old mesh map remains.
    How does Duet calculate the offset needed to be applied when z zero changes ?

    It depends on how you home Z. If you home Z using a G1 H1 command, or you reset the Z origin using a G92 command, then nothing changes. The XY position of the head during Z homing doesn't matter, and the mesh continues to be applied as before.

    If you home Z with a G30 command, then after probing the firmware calculates the Z offset of the mesh at the XY point probed. It then adds an offset to shift the whole mesh up or down so as to make the mesh Z offset zero at that point. So the XY position when you home Z does make a difference. Tip: for best results, when using G30 to home Z, set the XY position so that the probe is over one of the points used for mesh probing, bearing in mind that the probe XY offset is applied when mesh probing but not when doing a plain G30.

    I am currently probing a spot multiple times until the readings fall within an acceptable range yet if I run the mesh again then previous values are discarded. Has anyone ever devised a way of combining multiple mesh maps to generate a mesh that is based on average values of multiple mesh maps? I seem to get noticeably different mesh bed figures with each probing of the bed even if multi probing is turned on.

    You could export the height maps and combine them on a spreadsheet, because the height maps are .csv files.

    Last but not least, on a cartesian printer such as a CR10, if I have installed two separately driven Z motors, what should the order of operations be? Do I zero first then equalize the gantry height

    Yes, home Z then use G32 to equalise the gantry height.

    Would a gantry height equalization not invalidate any mesh map?

    If the mesh map was generated when the gantry height was equalised, then no. Bear in mind that you may need to tun the equalisation sequence more than once to get them well-equalised, depending on your mechanics. You can do multiple probe/equalisation cycles in your bed.g file if necessary.



  • @dc42 said in Mesh map - how is it applied?:

    Would a gantry height equalization not invalidate any mesh map?

    If the mesh map was generated when the gantry height was equalised, then no. Bear in mind that you may need to tun the equalisation sequence more than once to get them well-equalised, depending on your mechanics. You can do multiple probe/equalisation cycles in your bed.g file if necessary.

    My z zero is done with a G30 command using a BLTouch. The gantry equalization results in
    :
    Leadscrew adjustments made: -0.011 0.080, points used 2, deviation before 0.051 after 0.000

    It seems to say that things are adjusted but when I run the equalization again I get:

    Leadscrew adjustments made: -0.013 0.012, points used 2, deviation before 0.011 after 0.000

    Third run:
    Leadscrew adjustments made: -0.011 0.005, points used 2, deviation before 0.008 after 0.000

    Fourth run:

    Leadscrew adjustments made: -0.000 -0.007, points used 2, deviation before 0.005 after 0.000

    Further attemps seem to vary around the same deviation with slight changes due to probing errors.

    So when it says 'deviation after 0.000' is it not equalized ?

    So let's say I am now equalized and I now run a mesh. If I now cycle power, am I correct in thinking that z positions might have changed but if I run multiple equalization and get close enough then I now have a valid mesh again ?
    Good point about making the z zero point one of the mesh probing points but with a full probing taking 2 hours (!!!) I like to sneak up to the full mesh over several different resolution values. Would it make sense to probe z zero as part of the mesh routine and adjust the probing point at that stage to be over a measuring point? I would return the probing point to whatever was defined in config.g after the mesh was generated. How does this affect further z zero probing cycles when the probe is not over a mesh point ?

    Do I need to be over a mesh point for the equalization procedure ?



  • So many questions, so few answers 😞
    Another thought just popped into my head .... my z axis minimum is defined as zero. The mesh bed probing can easily report negative values because the extended probe is well below the nozzle. What happens if a mesh bed point is set at -0.6 and the layer height is 0.2 mm. Does the nozzle somehow ignore the z min point and go to -0.4 for a 0.2 mm first layer or does the nozzle stop at z=0 causing the first layer at that point to become 0.6 mm instead of 0.2 mm ? ... and potentially screwing up anything on the bed that was probed at lower than -0.2 mm



  • Hi,

    If Z=0 is your minimum then positions below the nozzle would be greater than at the tip of the nozzle, correct?

    In any case your probe is defined with a Z offset value and that is taken into account when probing. So any negative values are not due to that offset but to other factors.

    And as I understand it the Z=0 limit is applied after compensation.

    Frederick



  • @fcwilt said in Mesh map - how is it applied?:

    Hi,

    If Z=0 is your minimum then positions below the nozzle would be greater than at the tip of the nozzle, correct?

    Um .... not in my way of understanding

    In any case your probe is defined with a Z offset value and that is taken into account when probing. So any negative values are not due to that offset but to other factors.

    And as I understand it the Z=0 limit is applied after compensation.

    Ahh, that sounds like I am worried for nothing .... thank you for clarifying!



  • @jens55 said in Mesh map - how is it applied?:

    Um .... not in my way of understanding

    As the nozzle moves away from the bed does the Z position increase?

    Frederick



  • @fcwilt said in Mesh map - how is it applied?:

    @jens55 said in Mesh map - how is it applied?:

    Um .... not in my way of understanding

    As the nozzle moves away from the bed does the Z position increase?

    CR10, cartesian, bed height is stationary and nozzle moves up and down.
    If the nozzle moves up then z goes up. As the nozzle moves down, z goes down. If the nozzle were to go below z=0 then z would go even lower ie below zero.



  • @jens55 said in Mesh map - how is it applied?:

    CR10, cartesian, bed height is stationary and nozzle moves up and down.
    If the nozzle moves up then z goes up. As the nozzle moves down, z goes down. If the nozzle were to go below z=0 then z would go even lower ie below zero.

    Thanks for the info. I have not encountered that type of printer before. My machines are all moving bed types and Z increases as the bed moves down.

    So you are correct.

    If you are in the mood I would like to see a picture of that kind of printer.

    Frederick



  • It's a standard Creality CR10 style printer. Bed movement is Y axis, the printhead travels on a gantry which is x and the gantry travels up/down making it the z axis.
    Just do a search for CR10 ... I would say that this arrangement of movements comprises the vast majority of printers out there as it (probably) the least expensive way to build a printer.



  • @jens55 said in Mesh map - how is it applied?:

    It's a standard Creality CR10 style printer. Bed movement is Y axis, the printhead travels on a gantry which is x and the gantry travels up/down making it the z axis.
    Just do a search for CR10 ... I would say that this arrangement of movements comprises the vast majority of printers out there as it (probably) the least expensive way to build a printer.

    Sorry I misread your earlier post. You said bed height was stationary - I missed the height modifier.

    While I have never built a "bed-slinger" I have seen them.

    Thanks.

    Frederick


Log in to reply