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

    Probing issues

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    4
    33
    2.8k
    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.
    • medicusdkfzundefined
      medicusdkfz
      last edited by medicusdkfz

      Hi,

      I noticed the following when probing: When generating a height compensation mesh, the sensor does not show the reached depth at every point. This is represented by the P-value in the display and in the web gui. I have entered a P-value of 500. What is the background for this and how can I achieve a clean measurement at every point of the mesh? This worries me a lot, because this leads to massive problems with the first print layer. Because the determined heights are then obviously not correct. The same happens with quad gantry levelling.But there is also no error message that the measurement is not complete. For background understanding: I have a Voron 2.4 with 4 Z-belts and a bed aligning gantry. My probe used is a SuperPinda from Prusa (NPN, 5V, 3 mm trigger depth). Mainboard: D3 6HC with RRF3.2

      M558 K0 P5 C"io4.in" H3 F150 T18000 A5 S0.01 B0 R0.2
      G31 P500 X0 Y25 Z0.845
      

      my mesh routine:

      ; Heat the bed to 110C
      M291 P"Heating up the bed..." R"Probing New Bed Mesh" T5
      M190 S110
      
      ; Set the hotend to 270C
      M291 P"Heating up the hotend..." R"Bed Mesh" T5
      G10 P0 S260
      M116
      
      ; ignore current heightmap
      M561
      
      ; Level the gantry again while everything is hot
      M291 P"QGL while everything is hot..." R"Bed Mesh" T5
      G32
      
      M98 P"/macros/print_scripts/do_nozzle_wipe.g"
      M98 P"/macros/print_scripts/do_nozzle_wipe.g"
      
      ; Probe a new bed mesh!
      M291 P"Probing now!" R"Bed Mesh" T5
      
      ;M98 P"/macros/Mesh/mesh_121_points.g"
      ;M98 P"/macros/Mesh/mesh_81_points.g"
      M98 P"/macros/Mesh/mesh_49_points.g"
      ;M98 P"/macros/Mesh/mesh_36_points.g"
      ;M98 P"/macros/Mesh/mesh_25_points.g"
      ;M98 P"/macros/Mesh/mesh_16_points.g"
      
      M98 P"/macros/print_scripts/goto_bed_center_probe.g"
      G1 Z5
      G30
      G1 Z5
      
      G29 S0
      
      ; Done, move to center and turn off heat
      M98 P"/macros/print_scripts/goto_bed_center.g"
      

      my QGL macro:

      ; bed.g
      ; Called to align the gantry to the bed plane via G32
      
      ; Clear any bed transform
      M561
      
      ; Turn off noisy Extruder motor
      M84 E
      
      ; Home all axes
      if !move.axes[0].homed || !move.axes[1].homed
        echo "Printer was not homed. Homing now."
        G28
      
      ; Lower currents, speed & accel
      M98 P"/macros/print_scripts/speed_probing.g"
      ;M98 P"/macros/print_scripts/z_current_low.g"
      M98 P"/macros/print_scripts/xy_current_low.g"
      
      ; Probe the bed at 4 points multiple times
      while true
        if iterations = 7
          abort "Too many auto calibration attempts"
        
        G30 P0 X10 Y28 Z-99999 ; probe near front left belt
        if result != 0
          continue
        
        G30 P1 X10 Y315 Z-99999 ; probe near back left belt
        if result != 0
          continue
        
        G30 P2 X340 Y315 Z-99999 ; probe near back right belt 
        if result != 0
          continue
      
        G30 P3 X340 Y28 Z-99999 S4 ; probe near front right belt 
        if result != 0
          continue
      
        if move.calibration.initial.deviation <= 0.007
          break
      
        ; If there were too many errors or the deviation is too high - abort and notify user  
        echo "Repeating calibration because deviation is too high (" ^ move.calibration.initial.deviation ^ "mm)"
      ; end loop
      echo "Auto calibration successful, deviation", move.calibration.initial.deviation ^ "mm"
      
      ; Restore high currents, speed & accel
      M98 P"/macros/print_scripts/speed_printing.g"
      M98 P"/macros/print_scripts/xy_current_high.g"
      ;M98 P"/macros/print_scripts/z_current_high.g"
      
      G28 Z
      
      M98 P"/macros/print_scripts/goto_bed_center.g"
      G1 Z5
      

      my home.g:

      ; homez.g
      ; called to home the Z axis
      
      ; do nothing if XY is not homed yet
      if move.axes[0].homed && move.axes[1].homed
      G91               	; relative positioning
      G1 H2 Z10 F6000    	; lift Z relative to current position
      G90				  	; absolute positioning
      
      M98 P"/macros/print_scripts/speed_probing.g"; Setup low speed & accel
      
      ; Home Z microswitch
      M98 P"/macros/print_scripts/goto_z_switch.g"
      G1 H1 Z-600 F360      	; move Z down until the endstop is triggered
      G1 Z4 F1800			; go back a few mm
      G1 H1 Z-600 F80		; move slowly to Z axis endstop once more (second pass)
      G92 Z-0.45; <-- using a Z-microswitch; height difference from the switch to the plate surface
      G1 Z10
      M98 P"/macros/print_scripts/speed_printing.g"; Restore normal speed & accel
      M98 P"/macros/print_scripts/goto_bed_center.g"
      

      Thank you for your help again,
      Pierre

      1 Reply Last reply Reply Quote 0
      • medicusdkfzundefined
        medicusdkfz
        last edited by medicusdkfz

        First I do a homing of all axes. Then a quad gantry levelling when everything is heated. But the distortion due to heating will probably not always be the same either. That's why I make a new 49-points mesh before each printout. I initiate this with a G30. Only the values there are very fluctuating, by up to 0.2 mm. Therefore, it occasionally happens that the initial height is not correct when printing and the nozzle rams into the bed or is too high. But as I understand it, the measurement should be stable. Even my Prusa, which was worlds cheaper, does this without a problem.

        Also the PINDA is one of the most accurate inductive sensors on the market. I am getting desperate as I have tested and tried a lot. Even the use of a BLtouch has not really led to success. If things don't get better, I will have to switch to SKR boards and Klipper.

        The printer is aligned well. The prints, as long as they have a small footprint, are perfect. No line distortion or anything else that might indicate that the linear rails are out of alignment or there might be distortion in the gantry area.

        1 Reply Last reply Reply Quote 0
        • medicusdkfzundefined
          medicusdkfz
          last edited by medicusdkfz

          For me the G30 S-3 before a mesh bed leveling seems more logical than a simple G30... The G30 depends on the trigger height set in config.g. But this could vary with the increasing temperature of the heat bed. So it would be better to have the actual height difference between the sensor and the bed. Or am I wrong?
          Right now I have a trigger height in G31 from 2 mm. Does it makes a difference, when I set it to 0.5 or 0 mm? Then the sensor maybe should sense at every probing point...

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

            @medicusdkfz said in Probing issues:

            For me the G30 S-3 before a mesh bed leveling seems more logical than a simple G30

            G30 S-3 assumes the current Z position value is correct and can be used to determine how far the probe moved when it was triggered.

            You want to use G30 to set the Z=0 datum - which assumes the Z trigger height value in G31 is correct.

            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

            medicusdkfzundefined 1 Reply Last reply Reply Quote 0
            • medicusdkfzundefined
              medicusdkfz @fcwilt
              last edited by medicusdkfz

              @fcwilt But this doesn't solve, that the trigger signal isn't shown in the right way... And the G30 S-3 have to have the same distance all over the bed after a mesh or at the gantry level probing points. But that isn't so...

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

                @medicusdkfz said in Probing issues:

                But this doesn't solve, that the trigger signal isn't shown in the right way

                I don't know what you mean.

                And the G30 S-3 have to have the same distance all over the bed after a mesh or at the gantry level probing points. But that isn't so...

                Again I don't know what you mean.

                Using G30 to set the Z=0 datum is only done at one XY position and always at the same position.

                I use the center of the bed as that position.

                You need to set the Z=0 datum before...

                • creating the height map for mesh compensation using G29
                • loading an existing height map previously created using G29

                You need to set the Z=0 datum after...

                • using the manual bed leveling assistant (if you do that)
                • using the auto bed leveling feature (if you do that)

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

                medicusdkfzundefined 1 Reply Last reply Reply Quote 0
                • medicusdkfzundefined
                  medicusdkfz @fcwilt
                  last edited by medicusdkfz

                  @fcwilt I also do this. You can see it in my code snippets above...But sometimes you can see a trigger value of P=1000 in the web gui (with a red background) or on the display and sometimes not. And for my opinion it has to sense always - of course with a small difference, but it has to sense... That's my problem. I don't trust the hardware... And I've tried it with different z-values in the G31 from -0.1 up to 2 mm...

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

                    @medicusdkfz said in Probing issues:

                    @fcwilt I also do this. You can see it in my code snippets above...But sometimes you can see a trigger value of P=1000 in the web gui (with a red background) or on the display and sometimes not. And for my opinion it has to sense always - of course with a small difference, but it has to sense... That's my problem. I don't trust the hardware... And I've tried it with different z-values in the G31 from -0.1 up to 2 mm...

                    But using that G30 S-3 changes the Z trigger height setting in G31 meaning the result of the subsequent G30 will be wrong.

                    Also I'm not sure why you find you have to run have that conditional code in your bed.g file. My bed.g simply probes the bed near the locations of each of the three Z steppers and I invoke bed.g twice with two G32. That always obtains accurate leveling.

                    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
                    • medicusdkfzundefined
                      medicusdkfz
                      last edited by

                      I suppose I still have a thinking error when calibrating the Z height in G31. So far I have followed the instructions in the wiki. I have done a homing of all axes, then a quad gantry levelling and a G28 Z again.

                      All this at 110 degrees bed temperature and heated the nozzle to 260 degrees. Then I moved the nozzle to the center of the bed and lowered it to the paper surface so that the paper could still be moved with some resistance. Then followed a G92 Z0 and several G1 Z5 and G30 S-1 commands.
                      The determined value was then entered in config.g as Z-value at G31.
                      But actually, after G92 Z0, I should have moved the inductive sensor over the former nozzle position in the middle of the bed, right? I have an offset Y-position from nozzle to sensor of 25 mm....
                      Of course, it would be best if the sensor position would match the nozzle position. This would mean that I get reliable values only from Y > 25, because I can drive with my nozzle only to Y=0 but not into the minus...

                      fcwiltundefined 1 Reply Last reply Reply Quote 0
                      • medicusdkfzundefined
                        medicusdkfz
                        last edited by

                        ... and now I get the error again and again: "Warning: the height map has a substantial Z offset. Suggest use Z-probe to establish Z=0 datum, then re-probe the mesh."
                        To fix the mesh bed levelling is getting me me mad...

                        The papertest with G28 Z (z microswitch) is ok!

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

                          @medicusdkfz

                          You seem to be on the right track.

                          Yes you want to probe the spot where you touched the nozzle to the bed.

                          I always use the center of the bed for both of those operations.

                          Of course after you determine the correct value for the Z trigger height parameter for the G31 you have to be sure that the G31 command gets executed.

                          The probe X and/or Y offsets will limit where you can move the probe to as you near the edges of the bed - that's perfectly normal.

                          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
                          • fcwiltundefined
                            fcwilt @medicusdkfz
                            last edited by

                            @medicusdkfz said in Probing issues:

                            ... and now I get the error again and again: "Warning: the height map has a substantial Z offset. Suggest use Z-probe to establish Z=0 datum, then re-probe the mesh."
                            To fix the mesh bed levelling is getting me me mad...

                            The papertest with G28 Z (z microswitch) is ok!

                            So you do the equivalent of...

                            • move to Z=5
                            • move the nozzle to the center of the bed
                            • jog Z so to just touch the nozzle to the bed
                            • execute G92 Z0 to establish the Z=0 position
                            • move to Z=5
                            • move the probe to the center of the bed
                            • execute G30 S-1 to determine the probe trigger height
                            • enter that value into G31 as the Z trigger height parameter
                            • execute the G31 command with the new parameter (however you do that)

                            Now at that point to verify that all is working as it should be I...

                            • move to Z=5
                            • execute G30 to set the Z=0 datum using the new G31 Z trigger height parameter
                            • move to Z=5
                            • move the nozzle to the center of the bed
                            • move to Z=1 and use a 1mm thickness gauge to verify the gap (or move to Z=0 and use paper)

                            All should be good.

                            Now to make all that easier I have created a few macros to save time and keystrokes.

                            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 1
                            • medicusdkfzundefined
                              medicusdkfz
                              last edited by

                              That all is logic and clear to me and is working right now. But when I perform the G30 and perform a mesh bed levelling (G29 S0) I get this warning...

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

                                @medicusdkfz said in Probing issues:

                                That all is logic and clear to me and is working right now. But when I perform the G30 and perform a mesh bed levelling (G29 S0) I get this warning...

                                You need to go back and do the G30 with G29 to create a new height map.

                                Then the G30 with G29 S0 should load the height map without issue.

                                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
                                • medicusdkfzundefined
                                  medicusdkfz
                                  last edited by medicusdkfz

                                  Sorry, that is exactly what I have done (line 32 in my mesh.g)... And than I get this warning!

                                  But thank you for your help!

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

                                    @medicusdkfz said in Probing issues:

                                    Sorry, that is exactly what I have done (line 32 in my mesh.g)... And than I get this warning!

                                    I cannot find where you execute G30 after leveling the gantry but before creating the height map.

                                    In the bed.g file I see where you execute G28 Z but in the homez.g file I see that you are homing to an end stop switch but I don't see G30.

                                    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
                                    • medicusdkfzundefined
                                      medicusdkfz
                                      last edited by

                                      In my mesh macro you will find in line 15 a G32 command and after that before the G29 S0 the G30...

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

                                        @medicusdkfz said in Probing issues:

                                        In my mesh macro you will find in line 15 a G32 command and after that before the G29 S0 the G30...

                                        Yes I see that but you also have to do a G30 BEFORE creating the height map as well as before loading a height map.

                                        Also remember that you don't need to load the height map after just creating it - the height map remains loaded after creation until something else unloads it.

                                        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
                                        • medicusdkfzundefined
                                          medicusdkfz
                                          last edited by medicusdkfz

                                          I have done all this, but this doesn't explain the warning... I go a step further and perform with every print a mesh. I know, that's an overkill, but I suppose, that the thermal expansion is not consistent. But again: I don't understand the warning...

                                          @medicusdkfz said in Probing issues:

                                          ... and now I get the error again and again: "Warning: the height map has a substantial Z offset. Suggest use Z-probe to establish Z=0 datum, then re-probe the mesh."
                                          To fix the mesh bed levelling is getting me me mad...

                                          The papertest with G28 Z (z microswitch) is ok!

                                          1 Reply Last reply Reply Quote 0
                                          • medicusdkfzundefined
                                            medicusdkfz
                                            last edited by

                                            Is there any perspective of help here? If it has a professional service, I would also pay for it... The issue is important to me and I would like to get it solved!

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