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

    Duet Scanning Probe and Independent Z Leveling

    Scheduled Pinned Locked Moved
    General Discussion
    7
    12
    440
    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.
    • micaheliundefined
      micaheli
      last edited by

      Feel free to move this wherever it belongs, it wasn't super obvious to me.

      I'm setting up a printer with independent z motors and want to level the bed based on the scanning probe results. I do not have a discreet toolhead mounted probe other than the scanning one.

      How is this done? I'm not seeing it in my search results or the duet documentation. I'm hoping this works without having to G30 with the scanning probe (Ive heard some inconsistent results are to be expected).

      Any help is appreciated. I'm still a week or two out from needing an answer, but figured I'd ask now.

      Thanks,
      Micah

      dc42undefined charliedrumsundefined 2 Replies Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @micaheli
        last edited by

        @micaheli you may be able to use the scanning probe touch mode that will be included experimentally in the next 3.6 beta or RC release.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        micaheliundefined 1 Reply Last reply Reply Quote 0
        • micaheliundefined
          micaheli @dc42
          last edited by

          @dc42 Sweet. Got a link to any information on that yet or do I have to go digging through git comments somewhere? Is it akin to the beacon-touch? Using the accelerometer?

          dc42undefined 1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators @micaheli
            last edited by

            @micaheli see https://docs.duet3d.com/User_manual/Tuning/scanning_z_probe_calibration#using-the-szp-in-touch-mode-to-set-z-height.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            micaheliundefined 1 Reply Last reply Reply Quote 0
            • micaheliundefined
              micaheli @dc42
              last edited by

              @dc42 thanks a lot. I'm surprised the accelerometer wasn't used for this. But I'll definitely give this a try when I can.

              gloomyandyundefined T3P3Tonyundefined 2 Replies Last reply Reply Quote 0
              • gloomyandyundefined
                gloomyandy @micaheli
                last edited by

                @micaheli said in Duet Scanning Probe and Independent Z Leveling:

                @dc42 thanks a lot. I'm surprised the accelerometer wasn't used for this.

                You may want to take a look at a discussion about this over on the Klipper discourse and Github:
                https://klipper.discourse.group/t/proof-of-concept-using-accelerometer-as-probe/4854
                https://github.com/Klipper3d/klipper/issues/3741

                They sort of gave up on it. Just to be clear some of the problems associated with using an accelerometer are also issues with touch homing with the szp. But one of the plus points is that it looks like it is possible to use lower speeds (than those discussed in the above links) when tapping the bed. I've been running some tests on the current code (along with DC42) and it looks promising, but probably still needs a little more work and fine tuning.

                Apsu created this issue in Klipper3d/klipper

                closed [FR] Use accelerometer as Z probe #3741

                1 Reply Last reply Reply Quote 0
                • T3P3Tonyundefined
                  T3P3Tony administrators @micaheli
                  last edited by

                  @micaheli seemecnc tried an accelerometer version of a delta smart effector many years ago and it was not a good choice compared to other sensing mechanisms.

                  www.duet3d.com

                  1 Reply Last reply Reply Quote 0
                  • charliedrumsundefined
                    charliedrums @micaheli
                    last edited by

                    @micaheli Right now I'm using the Scanning z probe with EZABL from th3dstudio but once the full release of 3.6 comes out I'm going to give it a try with just the scanning z probe in touch mode to see If I can get away from using two sensors. I have a 600mm^3 printer with 4 independent z motors for the gantry. How I run it is in the starting gcode I run G32 which calls bed.g. bed.g goes to all four corners and probes each one. once it finishes the fourth corner it levels out the gantry to those four corners:

                    ; bed.g
                    ; called to perform automatic bed compensation via G32
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Feb 16 2022 21:57:55 GMT-0500 (Eastern Standard Time)
                    G28 						; home
                    
                    M561 ; clear any bed transform
                    G29 S2 ;
                    G90                    		; absolute positioning
                    G30 P0 X29 Y40 Z-99999 			; probe near Z belt 1 (drive 3) front left
                    G30 P1 X609 Y40 Z-99999 		; probe near Z belt 2 (drive 4) front right
                    G30 P2 X29 Y601 Z-99999 		; probe near Z belt 3 (drive 5) back left
                    G30 P3 X609 Y601 Z-99999 S4 	; probe near Z belt 4 (drive 6) back right
                    G1 X335 Y325 F15000     		; go to center of the bed
                    G30                    		; home Z by probing the bed
                    M291 P"Automatic bed compensation complete!" R"Your bed is leveled!" S1 T5
                    

                    after this in the starting gcode I do a G29 ;Run file sys/mesh.g. In mesh.g it just does a M558.1 and G29 S0 K1 to use the scanning z probe to do the scan:

                    M150 E0 R0 U255 B0 P255 S3 F0 ; set extruder leds to green
                    G29 S2
                    M98 P"homez.g"
                    M558.1 K1 S1.5
                    G29 S0 K1
                    M150 E0 R255 U255 B255 P255 S3 F0 ; set extruder leds to white
                    

                    I also have some lights on the extrude which change color during scanning.

                    For the scanning itself I run it at a 600mm/s in a 31x31 grid giving me a total of 961 points. For the 600mmx600mm ish bed it takes shy of 1 minute to do the whole scan. This way I get a perfect first layer every time.
                    Screenshot 2025-02-18 215838.png

                    Here is how I have my probes configured in config.g

                    ; Z-Probe
                    M558 K0 P5 C"!io5.in" H3 F900:120 T36000                    ; set Z probe type to EZABL Pro and the dive height + speeds
                    G31 K0 P500 X-31.27 Y-46.64 Z2.064                          ; set Z probe trigger value, offset and trigger height
                    M557 X29:609 Y40:603 P31:31                                 ; define mesh grid
                    
                    ; Scanning Z probe
                    M558 K1 P11 C"120.i2c.ldc1612" F36000:36000:36000 T36000 B1             ; configure SZP as probe 1, type 11, on CAN address 120
                    M308 A"SZP coil" S10 Y"thermistor" P"120.temp0"             ; thermistor on SZP coil
                    G31 K1 X-25.00 Y0 Z1.964                                   ; define probe 1 offsets and trigger height
                    M558.2 K1 S13 R152893                                       ; set drive current and reading offset
                    M557 X29:609 Y40:603 P31:31                                 ; Define mesh grid for probe 1 (overwrites probe 0 mesh grid)
                    

                    of course this is just for my particular printer and these values should not be used for your printer, but it might shed some light on how it roughly goes. Hope it helps.

                    droftartsundefined micaheliundefined 2 Replies Last reply Reply Quote 1
                    • droftartsundefined
                      droftarts administrators @charliedrums
                      last edited by

                      @charliedrums said in Duet Scanning Probe and Independent Z Leveling:

                      Screenshot 2025-02-18 215838.png

                      The way the bed slopes consistently from front to back, with the min and max deviation, seems to show that your bed needs tramming, ie the back corners need to be higher, or the front corners lower. You say you're using bed.g to do the levelling, but it doesn't look very flat!

                      Ian

                      Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                      1 Reply Last reply Reply Quote 0
                      • micaheliundefined
                        micaheli @charliedrums
                        last edited by micaheli

                        @charliedrums I'm finally getting to the point of getting this printer.....printing (life got in the way), and now that I'm re-reading this post, it's becoming obvious that bed leveling using the scanning z-probe isn't possible until touch mode is a thing, yeah? It appears to be a thing in beta's, but I'd rather not use a beta if I don't have to.

                        Is there a way to level using the scanning data? I have two leadscrews and I'd like to just get the two to agree with each other. Is there a way to do a lead screw to lead screw "scan" and level based on that? At the moment, I just have a single bed-mounted "sexbolt" style endstop for determining initial offset, then I was hoping to accomplish the rest with the scanning z-probe.

                        Am I barking up the wrong tree here?

                        @charliedrums Also, thanks a TON for that huge reply. Means a lot that you went to all of that trouble. also, 600x600, that's a beast! I have a 720x350 and I consider it TOO big.

                        micaheliundefined 1 Reply Last reply Reply Quote 0
                        • micaheliundefined
                          micaheli @micaheli
                          last edited by micaheli

                          So.... I was dorking around with this and for giggles, I thought I'd try to G30 K1 (the scanning probe) and it worked.... Did a normal probe dive, stopped and appeared to work. I moved the nozzle and did it again, worked again.

                          So, I went down the path of working this into the while true loop for independent z auto level... It behaved entirely differently. This time, it just went to the scanning height, then scanned across from one lead screw position to the other. No dive, no satisfying click when it stopped diving, etc.

                          So, I went back to double check my work and I couldn't for the life of me get it to work again, even manually.

                          WTF is going on? Am I slipping silently into madness?

                          --Micahbed.g config.g homeall.g homex.g homey.g homez.g

                          jltxundefined 1 Reply Last reply Reply Quote 0
                          • jltxundefined
                            jltx @micaheli
                            last edited by jltx

                            @micaheli I got bed leveling to work using the latest unreleased firmware. See this thread. Note that I am NOT using touch mode. There are still some mysteries but it appears to be working.

                            https://forum.duet3d.com/topic/37755/szp-for-bed-level-in-3-6-rc1/19?_=1742942881479

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