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

    Nozzle rams into bed when not near center

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    5
    20
    762
    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.
    • deltwalrusundefined
      deltwalrus
      last edited by

      ...I'm ready to pull out whatever is left of my hair over this.

      I've been slowly working on my converted Anycubic Kossel Linear Plus printer over the past 12 months or so, putting in a Duet WiFi board, Haydn's magnetic arms, a Duet Smart Effector, and a borosilicate glass plate (among other rebuild items).

      The issue I'm having now is that I can print small objects (20mm calibration cube, 3D Benchy, etc.) without major problems and they look great. But once I print anything that is larger and requires travel any considerable distance away from the center of the plate, the nozzle drags against the glass and I have to emergency stop the printer to avoid damage.

      I have auto-calibration included in the start G-Code in Cura for each print, and I do not have an auto-home set after that. My bed is almost perfectly level, I have a bubble level that, when placed on various parts of the plate, reads the same at each position. Also, it looks the same (the same amount of almost perfectly level) when placed atop the Smart Effector, bubble is in the same place.

      I have performed Z trigger height calibration with paper at 5 points on the bed (X0/Y0, X100/Y100, X-100/Y100, X100/Y-100, and X-100/Y-100), and they're all within 0.1mm of each other, but I'm not sure how to take that variance into account in G-Code (or if I need to at all).

      I took a speed square and checked for warping on the glass plate, and there doesn't appear to be any of that going on, but just in case, I've ordered some mirrors that are due to arrive tomorrow and I will try those to see if that changes anything.

      The magnetic arms are all within 0.02mm of each other in length, 304.12mm-304.14mm.

      I'm going to post my config files in the hopes that I have made some obvious, boneheaded mistake, but I'm starting to wonder if this thing will ever work. Any advice on what to check next or tweak would be very much appreciated. At this point, I feel equally like I could be one tweak away or completely turned around, I just don't know.

      dc42undefined 1 Reply Last reply Reply Quote 0
      • deltwalrusundefined
        deltwalrus
        last edited by

        config.g config-override.g

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

          Include your homedelta.g and bed.g as well as the out put put M122 and M98 P"config.g" please.

          Have you seen these?

          https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer
          https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareDeltaPrinter

          Z-Bot CoreXY Build | Thingiverse Profile

          deltwalrusundefined 1 Reply Last reply Reply Quote 0
          • deltwalrusundefined
            deltwalrus @Phaedrux
            last edited by

            @Phaedrux said in Nozzle rams into bed when not near center:

            Include your homedelta.g and bed.g as well as the out put put M122 and M98 P"config.g" please.
            homedelta.g bed.g

            M122
            === Diagnostics ===
            RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet WiFi 1.02 or later
            Board ID: 08DGM-917DA-G4MSJ-6JTD6-3S86L-19N7A
            Used output buffers: 3 of 24 (6 max)
            === RTOS ===
            Static ram: 25712
            Dynamic ram: 92664 of which 336 recycled
            Exception stack ram used: 392
            Never used ram: 11968
            Tasks: NETWORK(ready,764) HEAT(blocked,1232) MAIN(running,3816) IDLE(ready,160)
            Owned mutexes:
            === Platform ===
            Last reset 00:02:19 ago, cause: power up
            Last software reset at 2021-01-20 13:59, reason: User, spinning module GCodes, available RAM 11944 bytes (slot 3)
            Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
            Error status: 0
            Free file entries: 10
            SD card 0 detected, interface speed: 20.0MBytes/sec
            SD card longest block write time: 0.0ms, max retries 0
            MCU temperature: min 2.6, current 8.6, max 8.7
            Supply voltage: min 12.7, current 12.8, max 13.0, under voltage events: 0, over voltage events: 0, power good: yes
            Driver 0: standstill, SG min/max 0/378
            Driver 1: standstill, SG min/max 0/391
            Driver 2: standstill, SG min/max 0/369
            Driver 3: standstill, SG min/max not available
            Driver 4: standstill, SG min/max not available
            Date/time: 2021-01-20 15:47:44
            Cache data hit count 413972580
            Slowest loop: 3.60ms; fastest: 0.06ms
            I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
            === Move ===
            Hiccups: 0, FreeDm: 160, MinFreeDm: 154, MaxWait: 126689ms
            Bed compensation in use: none, comp offset 0.000
            === DDARing ===
            Scheduled moves: 5, completed moves: 5, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
            === Heat ===
            Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
            Heater 1 is on, I-accum = 0.0
            === GCodes ===
            Segments left: 0
            Stack records: 2 allocated, 0 in use
            Movement lock held by null
            http is idle in state(s) 0
            telnet is idle in state(s) 0
            file is idle in state(s) 0
            serial is idle in state(s) 0
            aux is idle in state(s) 0
            daemon is idle in state(s) 0
            queue is idle in state(s) 0
            autopause is idle in state(s) 0
            Code queue is empty.
            === Network ===
            Slowest loop: 15.46ms; fastest: 0.00ms
            Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
            HTTP sessions: 1 of 8
            - WiFi -
            Network state is running
            WiFi module is connected to access point 
            Failed messages: pending 0, notready 0, noresp 0
            WiFi firmware version 1.23
            WiFi MAC address 60:01:94:2e:12:42
            WiFi Vcc 3.38, reset reason Turned on by main processor
            WiFi flash size 4194304, free heap 23648
            WiFi IP address 192.168.1.36
            WiFi signal strength -55dBm, reconnections 0, sleep mode modem
            Socket states: 0 0 0 0 0 0 0 0
            
            M98 P"config.g"
            HTTP is enabled on port 80
            FTP is disabled
            TELNET is disabled
            

            Have you seen these?

            https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer
            https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareDeltaPrinter

            I have read them and followed them, yes.

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

              Cura start gcode?

              Z-Bot CoreXY Build | Thingiverse Profile

              deltwalrusundefined 1 Reply Last reply Reply Quote 0
              • deltwalrusundefined
                deltwalrus @Phaedrux
                last edited by

                @Phaedrux said in Nozzle rams into bed when not near center:

                Cura start gcode?

                G32          ; auto-calibration
                G21          ; metric values
                G90          ; absolute positioning
                M107         ; start with the fan off
                G92 E0       ; zero the extruded length
                G1 F4000 E3  ; extrude 3mm of feed stock
                G92 E0       ; zero the extruded length again
                G1 F{speed_travel}
                
                1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by

                  Thanks. I'm not a delta user, so I can't really see anything that is obvious to my eyes, but at least we now have all your relevant files posted so someone with a better feel for deltas might spot something off.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 0
                  • garyd9undefined
                    garyd9
                    last edited by garyd9

                    Contrary to many (most?) other duet (+ smart effector) delta users, I do NOT include G32 in my slicer's start gcode. I've found that, depending on the filament in use, the bit of ooze from the nozzle can impact the calibration negatively.

                    What I typically do is, whenever I change the filament to something that requires different heating parameters, I heat the bed and plate to what new filament requires, clean the nozzle (cleaning filament, then wire brush the nozzle until there's no oozing whatsoever) and manually run G32 a few times until the deviation values are consistent, and then save that to config-override.g (via M500.)

                    (I have the re-running of G32 automated via conditional gcode, but it's best to do everything manually until you understand what's going on.)

                    Then in my slicer config, I use G28 (to just home the printer) before it starts printing.

                    "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

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

                      @deltwalrus, please run G29 after auto calibration and shown us the resulting height map.

                      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

                      1 Reply Last reply Reply Quote 0
                      • deltwalrusundefined
                        deltwalrus
                        last edited by

                        G29
                        89 points probed, min error -0.240, max error 0.062, mean -0.035, deviation 0.046
                        

                        heightmap.csv

                        1 Reply Last reply Reply Quote 0
                        • Vetiundefined
                          Veti
                          last edited by

                          the picture please

                          1 Reply Last reply Reply Quote 0
                          • deltwalrusundefined
                            deltwalrus
                            last edited by

                            Sorry about that.

                            Screen Shot 2021-01-21 at 10.03.42 AM.png

                            1 Reply Last reply Reply Quote 0
                            • Vetiundefined
                              Veti
                              last edited by

                              did you use M500 to save the calibration or did you put the values in config.g?

                              1 Reply Last reply Reply Quote 0
                              • deltwalrusundefined
                                deltwalrus
                                last edited by

                                I did not run an M500 immediately after running the mesh grid compensation, no. I wasn't aware that was necessary, I figured it stored that information automatically after it ran. Thanks for the tip on that.

                                I will run another auto-calibration, then another mesh bed compensation routine, then I will run an M500 and try the print again.

                                As a side note, is there ever an instance where you would not want to store the results of a calibration or mesh bed routine? Shouldn't that be done automatically (in a macro maybe)?

                                Phaedruxundefined Vetiundefined 2 Replies Last reply Reply Quote 0
                                • deltwalrusundefined
                                  deltwalrus
                                  last edited by

                                  No change in behaviour after running calibration, G29, M500, then starting print. Nozzle hits the bed near the "top left" part of the print, starts to actually rotate the glass bed with it, and even managed to dislodge one of the magnetic arms from the ball before the emergency stop halted the motion and reset the board.

                                  1 Reply Last reply Reply Quote 0
                                  • deltwalrusundefined
                                    deltwalrus
                                    last edited by

                                    This post is deleted!
                                    1 Reply Last reply Reply Quote 0
                                    • Phaedruxundefined
                                      Phaedrux Moderator @deltwalrus
                                      last edited by

                                      @deltwalrus said in Nozzle rams into bed when not near center:

                                      I figured it stored that information automatically after it ran.

                                      It does, but only while the printer is powered on. The values are lost after a power cycle unless they are either saved to config-override.g with M500 and adding M501 to the end of config.g to load it. Or manually copying the resulting calibration command into config.g

                                      Z-Bot CoreXY Build | Thingiverse Profile

                                      1 Reply Last reply Reply Quote 0
                                      • Vetiundefined
                                        Veti @deltwalrus
                                        last edited by

                                        @deltwalrus said in Nozzle rams into bed when not near center:

                                        I did not run an M500 immediately after running the mesh grid compensation, no. I wasn't aware that was necessary, I figured it stored that information automatically after it ran. Thanks for the tip on that.

                                        G32 not G29.

                                        1 Reply Last reply Reply Quote 0
                                        • deltwalrusundefined
                                          deltwalrus
                                          last edited by

                                          I just got the new mirrors today, will test them for thermal suitability then give the problematic print another go.

                                          1 Reply Last reply Reply Quote 0
                                          • deltwalrusundefined
                                            deltwalrus
                                            last edited by

                                            It appears either my old glass plate was warped, or in the process of removing it and installing the mirror I fixed this issue, because a larger print is going right now and the bed ramming seems to be resolved.

                                            Go figure.

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