Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    G28, G29, G31, & G32 Relationship w/ Probe

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    bed leveling mesh compensation z offset z probe
    5
    21
    2.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • elliundefined
      elli @fcwilt
      last edited by

      @fcwilt Thanks for the response. Going to play with this and may have further questions.

      1 Reply Last reply Reply Quote 0
      • elliundefined
        elli @fcwilt
        last edited by

        @fcwilt I've made some small changes to my approach.

        my bed.g now looks like this:

        ; bed.g
        ; called to perform automatic bed compensation via G32
        ;
        ; generated by RepRapFirmware Configuration Tool v3.1.3 on Thu Jun 11 2020 21:09:00 GMT-0500 (Central Daylight Time)
        M561									 ; turns off mesh compensation
        
        G1 Z5 
        
        G30 P0 X10 Y130 Z-99999
        G30 P1 X270 Y130 Z-99999 S2
        
        G1 X151 Y168
        G30
        

        and my heightmap looks better. However, I'm still seeing issues in which all of my prints start with the nozzle scraping the bed. I would post more reference code in here, but frankly at this point I don't know where I would look to understand why this is happening.

        1 Reply Last reply Reply Quote 0
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          @elli said in G28, G29, G31, & G32 Relationship w/ Probe:

          S.07

          S0.07 is actually less strict a tolerance than the default. I suggest you remove that part entirely. If you're going to use the A value to force it to probe twice, you should at least let it get some accuracy out of it instead of accepting a looser range of repeatability.

          If you notice that you need to baby step up by the same amount each time after fixing that S value, then you can simply modify your G31 Z value to take that amount into effect. If Z0.926 is too close to the bed, reduce it by the amount you are baby stepping.

          Also a dive speed of 900 may be too fast to get a good probe resolution. Try M558 F300 instead and see if you get better accuracy.

          Z-Bot CoreXY Build | Thingiverse Profile

          elliundefined 1 Reply Last reply Reply Quote 1
          • elliundefined
            elli @Phaedrux
            last edited by

            @phaedrux Made those changes, but still seeing the nozzle entirely too close to the bed. After the above steps, the number I'm getting from my g30 s-1 is 1.631, which is what I'm putting as my g31 z value. With this, i have to baby step up about .46 mm because the nozzle is scraping the bed so hard. I'm just not understanding why my z probe calibration is deviating from the measured value by 25%. This feels like I'm doing something fundamentally wrong in my calibration, rather than need to make some minor changes.

            Nurgelrotundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
            • Nurgelrotundefined
              Nurgelrot @elli
              last edited by

              @elli I'm having the same issue the other way, I manually set my z offset and manually level my bed and I can print fine. But if I do a G29 and generate a height map I get a warning that the offset (that I just printed with correctly manually) is too large. The map that it creates is level. BUT all points are floating above zero .02. to.15 depending on the mood it seems. And if I apply the height map of course it prints too high.

              I'm at a total loss I've been printing with this config for while now don't know what I did to mess up G29. Feeling really dumb, whatever is causing it I cant see it--- Following and going over my settings as well.

              1 Reply Last reply Reply Quote 0
              • Phaedruxundefined
                Phaedrux Moderator
                last edited by

                Have you re-created the heightmap after making those changes?
                Are you clearing your heightmap before doing your G30 S-1 test?

                Z-Bot CoreXY Build | Thingiverse Profile

                1 Reply Last reply Reply Quote 1
                • fcwiltundefined
                  fcwilt @elli
                  last edited by fcwilt

                  @elli said in G28, G29, G31, & G32 Relationship w/ Probe:

                  @phaedrux Made those changes, but still seeing the nozzle entirely too close to the bed. After the above steps, the number I'm getting from my g30 s-1 is 1.631, which is what I'm putting as my g31 z value. With this, i have to baby step up about .46 mm because the nozzle is scraping the bed so hard. I'm just not understanding why my z probe calibration is deviating from the measured value by 25%. This feels like I'm doing something fundamentally wrong in my calibration, rather than need to make some minor changes.

                  To get accurate results from G30 S-1 you have to already have your logical Z position matching the actual Z position.

                  If that match is off G30 S-1 will return an incorrect value.

                  You can always resort to trial and error.

                  • set the Z=0 Datum at your standard XY point
                  • after it has finished probing the reported Z position should be the sum of the M558 H parameter and the G31 Z parameter
                  • move the nozzle to that XY point
                  • with something like my 1mm thickness gauge execute a G1 Zn at some slow speed where n is the thickness of your object
                  • check the gap between the nozzle and the bed
                  • if it is too large increase the G31 Z parameter by the difference - if it is too small decrease the parameter by the difference.

                  Repeat until you find the correct value for the Z parameter

                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                  elliundefined 1 Reply Last reply Reply Quote 0
                  • elliundefined
                    elli @fcwilt
                    last edited by

                    @fcwilt Sure, I can resort to trial and error, but I'm not understanding why my process is not resulting in a meaningful outcome. Rather than brute forcing this, I'd like to understand what I'm doing wrong so that I may correct it and the machine operates as expected.

                    fcwiltundefined 1 Reply Last reply Reply Quote 0
                    • fcwiltundefined
                      fcwilt @elli
                      last edited by fcwilt

                      @elli said in G28, G29, G31, & G32 Relationship w/ Probe:

                      @fcwilt Sure, I can resort to trial and error, but I'm not understanding why my process is not resulting in a meaningful outcome. Rather than brute forcing this, I'd like to understand what I'm doing wrong so that I may correct it and the machine operates as expected.

                      Well the normal approach relies on there being a fixed physical relationship in the Z axis of the Z probe and tool nozzle which is complicated a bit with multiple tools.

                      Thus I think it is best to set the Z offset of tool 0 to 0 to keep things simple and use tool 0 for determining the Z probe Z Trigger Height setting needed in G31.

                      The Z offset of all other tools can be set in relation to tool 0.


                      You set the logical Z position (what the firmware "thinks" the Z position is) to match the actual Z position by jogging the nozzle down until it is just touching the bed or some thickness gauge type object and set the logical Z position using G92 Zn where n is the thickness of the object or 0 if you didn't use one.

                      Once the logical position matches the physical position then you can use G30 S-1 to determine the Z Trigger Height setting you would use in G31.


                      Once you have set the G31 Z Trigger Height setting you can then set the Z=0 Datum using G30 and then verify that Z=0 actually has the nozzle just touching the bed.

                      It is common for folks to have the G31 command in config.g which means config.g needs to be executed to apply the new setting.

                      I use a different approach in that I have a file called config_probe.g which contains the M558 and G31 commands needed to configure the Z probe. I invoke that file whenever I want to insure the Z probe is using the most recent settings. Using M98 P"config_probe.g" in config.g insures the Z probe is setup on printer boot/reboot.

                      For testing I have a DWC Macro which contains M98 P"config_probe.g" so I can quickly and easily apply any new settings entered into the config_probe.g file.

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      1 Reply Last reply Reply Quote 0
                      • JoergS5undefined
                        JoergS5
                        last edited by

                        @elli maybe the temperature of the nozzle is the reason, is it cold at calibration? It will expand by about 0.2 mm at 200 °C increase if the hotend is 50 mm long. ( https://forum.duet3d.com/topic/8779/z-offset-depending-on-hotend-temp-setting/4 )

                        elliundefined 1 Reply Last reply Reply Quote 1
                        • elliundefined
                          elli @JoergS5
                          last edited by elli

                          @joergs5 This has definitely helped, although I'm still seeing some issues.

                          @fcwilt @Phaedrux is there anything that can be gleaned from the fact that my mesh is a "saddle" shape? I've tinkered with my z probe trigger height and the conditions under which I establish my Z=0 Datum, but I've also noticed that there is a fair deviation in trigger height at different points on the bed, roughly .2mm of deviation. When reviewing this document it states that the z trigger height should not very significantly in different XY positions. I have no way of altering the surface of the bed mechanically.

                          Regarding the z trigger height variations, I'm confident that my z probe is not under any stress causing it to move independently of the toolhead and I believe the EZABL probe is parallel to the bed (although I've been told that having a minute angle in the orientation of the probe to the bed isn't a huge deal?). What other things can I verify/assess to understand what might be causing the inconsistencies in my z trigger height?

                          I have a small concern that my x gantry is sagging, but this is only from looking at the mesh data, this is the only thing I can seem to think of that would lead to such significant variation. I'm about to get a camera set up to take photos of the profile of the gantry in relation to the bed at different x coordinates to see if there is sag when the toolhead is in the middle of the gantry, but not sure where else to go at this moment.

                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                          • fcwiltundefined
                            fcwilt @elli
                            last edited by

                            @elli

                            I've only seen one image of your mesh and it looks pretty good except I would suspect that you didn't set the Z=0 datum prior to creating the mesh.

                            Do you have a more recent image done at temp and with the setting of the Z=0 datum?

                            Frederick

                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                            1 Reply Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator
                              last edited by

                              Sag in the gantry can be a bit harder to deal with since it can have the effect of altering the trigger height as the probe moves across the arc of the sag. If that is the case you could measure the trigger height at the center of the bed and the trigger height at the edge of the x gantry to see how much it varies. Then you could try altering the heightmap points by hand to account for that trigger height variation.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              elliundefined 1 Reply Last reply Reply Quote 0
                              • elliundefined
                                elli @Phaedrux
                                last edited by

                                @phaedrux @fcwilt

                                bed_level_2.png bed_level_1.png

                                My z=0 point is meant to be 131,125, and currently is reporting a z value of -.024.

                                here is my heightmap.csv:

                                 -0.129, -0.184, -0.204, -0.224, -0.244, -0.249, -0.254, -0.279, -0.274, -0.269, -0.244, -0.244, -0.224, -0.194, -0.169
                                 -0.094, -0.124, -0.139, -0.159, -0.179, -0.184, -0.199, -0.229, -0.229, -0.214, -0.194, -0.199, -0.184, -0.169, -0.139
                                 -0.054, -0.104, -0.109, -0.114, -0.129, -0.134, -0.159, -0.194, -0.194, -0.179, -0.154, -0.164, -0.149, -0.139, -0.114
                                 -0.019, -0.039, -0.039, -0.029, -0.029, -0.039, -0.079, -0.124, -0.129, -0.114, -0.094, -0.094, -0.084, -0.084, -0.069
                                  0.026, -0.014, -0.014,  0.001,  0.011, -0.004, -0.044, -0.089, -0.094, -0.089, -0.069, -0.059, -0.049, -0.059, -0.039
                                  0.061,  0.041,  0.051,  0.056,  0.051,  0.036,  0.001, -0.044, -0.049, -0.044, -0.019, -0.019, -0.014, -0.029, -0.009
                                  0.096,  0.051,  0.051,  0.051,  0.036,  0.026, -0.004, -0.044, -0.039, -0.024,  0.001, -0.009, -0.009, -0.019,  0.001
                                  0.111,  0.091,  0.091,  0.081,  0.061,  0.046,  0.016, -0.024, -0.014,  0.006,  0.026,  0.016,  0.011, -0.004,  0.021
                                  0.121,  0.081,  0.076,  0.056,  0.026,  0.011, -0.004, -0.039, -0.024, -0.009,  0.016,  0.011,  0.001, -0.004,  0.021
                                  0.106,  0.086,  0.076,  0.061,  0.031,  0.021,  0.001, -0.029, -0.024,  0.001,  0.041,  0.021,  0.001,  0.001,  0.026
                                  0.086,  0.036,  0.021,  0.006, -0.019, -0.019, -0.034, -0.054, -0.034, -0.009,  0.021,  0.001, -0.014, -0.009,  0.031
                                  0.046,  0.021,  0.006, -0.009, -0.029, -0.029, -0.044, -0.064, -0.044, -0.019,  0.006, -0.024, -0.014, -0.004,  0.031
                                  0.011, -0.044, -0.064, -0.084, -0.094, -0.094, -0.104, -0.124, -0.109, -0.089, -0.064, -0.059, -0.029, -0.014,  0.031
                                 -0.039, -0.069, -0.089, -0.104, -0.124, -0.124, -0.144, -0.164, -0.154, -0.139, -0.104, -0.094, -0.054, -0.034,  0.006
                                 -0.089, -0.144, -0.164, -0.184, -0.204, -0.209, -0.219, -0.239, -0.219, -0.204, -0.169, -0.144, -0.104, -0.079, -0.029
                                
                                fcwiltundefined 1 Reply Last reply Reply Quote 0
                                • Phaedruxundefined
                                  Phaedrux Moderator
                                  last edited by

                                  Can you run this test print and see how your current mesh performs?

                                  bedlevel_nozzle_0.4_200x200-0.3-0.8.stl

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  elliundefined 1 Reply Last reply Reply Quote 1
                                  • elliundefined
                                    elli @Phaedrux
                                    last edited by

                                    @phaedrux Can do. Will report back later. Having contractor work done in my workshop at the moment.

                                    1 Reply Last reply Reply Quote 0
                                    • fcwiltundefined
                                      fcwilt @elli
                                      last edited by

                                      @elli said in G28, G29, G31, & G32 Relationship w/ Probe:

                                      My z=0 point is meant to be 131,125, and currently is reporting a z value of -.024.

                                      If the XY point used when setting the Z=0 Datum is one of the points in the grid the difference (in theory) should be zero.

                                      Many things can cause that to not happen.

                                      But 0.024 is not far off.

                                      Frederick

                                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                      Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                      • Phaedruxundefined
                                        Phaedrux Moderator @fcwilt
                                        last edited by

                                        @fcwilt said in G28, G29, G31, & G32 Relationship w/ Probe:

                                        If the XY point used when setting the Z=0 Datum is one of the points in the grid the difference (in theory) should be zero.

                                        Easiest way is to just pick a point from the mesh near the center of the bed, mouse over it and get the XY point coordinate and use that.

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        elliundefined 1 Reply Last reply Reply Quote 1
                                        • elliundefined
                                          elli @Phaedrux
                                          last edited by

                                          @phaedrux It seems to be working at this moment. I printed the STL that you sent over and seems to be behaving, although I'm still seeing very very slight variations in layer width across the bed, it's good enough for the time being to move forward and work on pinpointing some of these issues in getting my Z=0 datum set correctly.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA