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

    Duet 2 Wifi: First layer too high. Not hardware related.

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    4
    20
    907
    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.
    • Streamlineundefined
      Streamline
      last edited by Streamline

      Hi, I have recently finished building a CoreXY build and I am using a Duet 2 Wifi.

      For endstops I am using a microswitch on every axis. The build is working great, and the Duet 2 is great piece of hardware.

      However, I am having trouble configuring the software correctly for that all important first layer.

      The bed is leveled manually in a hot state, and yes, I have been working with 3D printers for around 3 years now. I know how to level a bed.

      The Z carriage also sits level inside the frame.

      Still, when I want to start printing, the first layer always comes out too high, and I need to babystep the bed down by -0.2mm for a good first layer. If this would be all I had to do to get good prints, I would understand that my leveling is off.

      However, the following layers now are too low and the nozzle digs into the part, and for the rest of the print to work out, I need to babystep up to 0.3mm, so in total a 0.5mm difference between the first layer and second layer. If I don't do this, the first 10 or so layers will come out scrambled.

      The weirdest thing to me about all this is, that when I manually move the nozzle to the middle of the bed as if it would start printing, and then raise the nozzle by whatever my first layer-height should be, it looks fine and as if it should work.

      However, when the printer then takes over and does the first layer, the nozzle is way too high above the bed, even though it's displayed as if it was raised by the same amount in the web interface as when I did it manually.

      e-steps are also not off, parts come out dimensionally correct.

      Anyone able to help me out here?

      Here is my config file:

      ; Configuration file for Duet WiFi (firmware version 2.03)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun Apr 26 2020 19:19:34 GMT+0200 (Central European Summer Time)
      
      ; General preferences
      G90                                                ; send absolute coordinates...
      M83                                                ; ...but relative extruder moves
      M550 P"V-Core Pro"                                 ; set printer name
      
      M667 S1                                            ; select CoreXY mode
      
      ; Network
      M552 S1                                            ; enable network
      M586 P0 S1                                         ; enable HTTP
      M586 P1 S0                                         ; disable FTP
      M586 P2 S0                                         ; disable Telnet
      
      ; Drives
      M569 P0 S1                                         ; physical drive 0 goes forwards
      M569 P1 S1                                         ; physical drive 1 goes forwards
      M569 P2 S1                                         ; physical drive 2 goes forwards
      M569 P3 S1                                         ; physical drive 3 goes forwards
      M584 X0 Y1 Z2 E3                                   ; set drive mapping
      M350 E16 I0                                        ; configure microstepping without interpolation
      M350 X16 Y16 Z16 I1                                ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E824.73                  ; set steps per mm
      M566 X500.00 Y500.00 Z12.00 E120.00                ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z3000.00 E1200.00           ; set maximum speeds (mm/min)
      M201 X900.00 Y900.00 Z30.00 E250.00                ; set accelerations (mm/s^2)
      M906 X800 Y800 Z800 E800 I30                       ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                            ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                                   ; set axis minima
      M208 X290 Y310 Z250 S0                             ; set axis maxima
      
      ; Endstops
      M574 X1 Y2 Z1 S1                                   ; set active high endstops
      
      ; Z-Probe
      ;M558 P0 H5 F120 T6000                              ; disable Z probe but set dive height, probe speed and travel speed
      ;M557 X15:215 Y15:195 S20                           ; define mesh grid
      
      ; Heaters
      M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
      M305 P0 T100000 B3950 R4700                        ; set thermistor + ADC parameters for heater 0
      M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
      M305 P1 T100000 B4725 C7.060000e-8 R4700           ; set thermistor + ADC parameters for heater 1
      M143 H1 S280                                       ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M106 P0 S0 I0 F500 H-1                             ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
      M106 P1 S1 I0 F500 H1 T45                          ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      
      ; Tools
      M563 P0 S"E3D V6" D0 H1 F0                         ; define tool 0
      G10 P0 X0 Y0 Z0                                    ; set tool 0 axis offsets
      G10 P0 R0 S0                                       ; set initial tool 0 active and standby temperatures to 0C
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
      
      

      And also my start g-code:

      G21 ;metric values
      G90 ;absolute positioning
      M82 ;set extruder to absolute mode
      M107 ;start with the fan off
      G28 ;home axes
      G1 Z15.0 F{speed_travel} ;move the platform down 15mm
      G92 E0 ;zero the extruded length
      G1 F200 E6 ;extrude 6 mm 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

        What do you have in your homeall?

        Can your Z axis actually use 3000mm/min feed rate without skipping steps?

        Are your motor currents set to ~60-85% of the rated max for the motor?

        Z-Bot CoreXY Build | Thingiverse Profile

        Streamlineundefined 1 Reply Last reply Reply Quote 0
        • Streamlineundefined
          Streamline @Phaedrux
          last edited by Streamline

          @Phaedrux

          Here is my homeall

          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun Apr 26 2020 19:19:34 GMT+0200 (Central European Summer Time)
          G91                    ; relative positioning
          G1 H2 Z5 F6000         ; lift Z relative to current position
          G1 H1 X-295 Y315 F1800 ; move quickly to X or Y endstop and stop there (first pass)
          G1 H1 X-295            ; home X axis
          G1 H1 Y315             ; home Y axis
          G1 X5 Y-5 F6000        ; go back a few mm
          G1 H1 X-295 F360       ; move slowly to X axis endstop once more (second pass)
          G1 H1 Y315             ; then move slowly to Y axis endstop
          G1 H1 Z-325 F360       ; move Z down stopping at the endstop
          G90                    ; absolute positioning
          G92 Z0                 ; set Z position to axis minimum (you may want to adjust this)
          
          ; Uncomment the following lines to lift Z after probing
          ;G91                   ; relative positioning
          ;G1 Z5 F100            ; lift Z relative to current position
          ;G90                   ; absolute positioning
          
          
          
          

          As far as I can tell, the Z motors can move this fast without skipping, but they practically never do because of the slow acceleration.

          As for current, I haven't looked into it yet, but I could not hear any skipped steps yet, nor do the motors get really hot, maybe just a little warm. All of the motors are the same, except for the extruder. I have printed at 100mm/s already and did not encounter any issues, except for the one I made this post for.

          The issue occurs no matter at what speeds I print at though.

          Edit:

          About motor current, I have done a bit of research and finally found a spec-sheet for the LDO-42STH47-2504AC motors I am using. They are rated for 2.5A per phase. So 800mA is a bit low right? Unsure what I should set it to with a 24V PSU?

          Phaedruxundefined sebkritikelundefined 2 Replies Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator @Streamline
            last edited by

            @Streamline said in Duet 2 Wifi: First layer too high. Not hardware related.:

            Unsure what I should set it to with a 24V PSU?

            @Phaedrux said in Duet 2 Wifi: First layer too high. Not hardware related.:

            set to ~60-85% of the rated max for the motor

            Homeall looks ok.

            Z-Bot CoreXY Build | Thingiverse Profile

            Streamlineundefined 1 Reply Last reply Reply Quote 0
            • sebkritikelundefined
              sebkritikel @Streamline
              last edited by

              @Streamline said in Duet 2 Wifi: First layer too high. Not hardware related.:

              Edit:

              About motor current, I have done a bit of research and finally found a spec-sheet for the LDO-42STH47-2504AC motors I am using. They are rated for 2.5A per phase. So 800mA is a bit low right? Unsure what I should set it to with a 24V PSU?

              I'm unable to find a datasheet after a cursory search, do you have a datasheet on hand? Common practice is to set M906 to 85% of the rated stepper current (so in your case, ~2.1A).

              Can you post a sample print file? First 5 or so layers should give us enough information.

              Large(ish?) IDEX - 6HC, 1HCL
              Stratasys Dimension 1200es to 6HC Conversion

              1 Reply Last reply Reply Quote 0
              • Streamlineundefined
                Streamline @Phaedrux
                last edited by

                @Phaedrux said in Duet 2 Wifi: First layer too high. Not hardware related.:

                set to ~60-85% of the rated max for the motor

                I guess the driver takes input voltage into consideration? I'll set it to 2.1A then.

                @sebkritikel said in Duet 2 Wifi: First layer too high. Not hardware related.:

                I'm unable to find a datasheet after a cursory search, do you have a datasheet on hand? Common practice is to set M906 to 85% of the rated stepper current (so in your case, ~2.1A).

                Yes, here:

                https://drive.google.com/open?id=1UDBD8BTQWq4__84nZrEikKAiVsDGqI-3

                Found it on a french website that sells the motor.

                Can you post a sample print file? First 5 or so layers should give us enough information.

                First 5 layers of the testcube I printed this morning, I hope external links are OK:

                https://drive.google.com/open?id=1HohdGKb9zibHRC15CTzHSTeWIl-YqZAL

                Which resulted in the following part where I didn't do any babystepping. As you can see, the first layer is way too shallow and lines barely stuck to the bed. However, the next layers are mushed onto each other until the issue resolves itself after enough layers were printed. Which can be seen in the Z on the bottom, which should be clean in the middle but has some lines in it that also stuck to the bed.

                alt text

                alt text

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

                  @Streamline said in Duet 2 Wifi: First layer too high. Not hardware related.:

                  I guess the driver takes input voltage into consideration?

                  Yes, you don't need to worry about the voltage.

                  @Streamline said in Duet 2 Wifi: First layer too high. Not hardware related.:

                  I hope external links are OK:

                  Yup, no problem.

                  Try again with increased motor current and see if it improves. Perhaps the Z axis is having some sticktion.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  Streamlineundefined 2 Replies Last reply Reply Quote 0
                  • Streamlineundefined
                    Streamline @Phaedrux
                    last edited by

                    @Phaedrux

                    Still the same. I will try to get the issue on video with an explanation.

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

                      @Streamline I am no endstop specialist and a 3D print beginner, so please take the following information as rough ideas:

                      I really don't understand the meaning of the line
                      G1 Z15.0 F120 ;move the platform down 15mm
                      in the startup part, after homing, which is included in your sampleGcode also.

                      (BTW G1 H1 Y315 ; then move slowly to Y axis endstop in the stampleCode is wrong, but has nothing todo with the problem, (s)low F is missing)

                      Are you sure the Z screw does not have a backlash problem when changing direction? If it's a V-Core Pro, it has three screws for Z movement also, so the bed could stuck as well (enlarging the backlash throught the friction). After the first layer printed, Z is moved into one direction only, so no more backlash effect.

                      Streamlineundefined 1 Reply Last reply Reply Quote 0
                      • Streamlineundefined
                        Streamline @JoergS5
                        last edited by Streamline

                        @JoergS5

                        Yes, this is a V-Core Pro, but only with 2 lead-screws. I have different lead-screws though that seem to be better quality than the ones that come with the kit because as they are they already have less backlash. I have also adjusted the anti-backlash nuts so there is no play, but also close to no friction. I have also lubed the lead-screws.

                        @JoergS5 said in Duet 2 Wifi: First layer too high. Not hardware related.:

                        I really don't understand the meaning of the line
                        G1 Z15.0 F120 ;move the platform down 15mm

                        This moves the platform away from the nozzle by 15mm so that the nozzle can extrude a few mm of filament before starting to print so as to have a clean start. The bed and nozzle then move back together while the nozzle is moving to its first coordinates.

                        @Phaedrux said in Duet 2 Wifi: First layer too high. Not hardware related.:

                        Try again with increased motor current and see if it improves. Perhaps the Z axis is having some sticktion.

                        The increased motor current did increase print quality (little bit less ghosting), but the problem persists. I have recorded a video explaining the issue.

                        https://www.youtube.com/watch?v=mtcjGbymnV4&feature=youtu.be

                        Here are two more screenshots where you can clearly see the difference in nozzle-height. Both are "0.3mm" from the bed, as displayed by the web interface. However, before the print looks like 0.3, and while printing it's much higher, looks like double the height:

                        Before print:
                        alt text

                        While printing:
                        alt text

                        This resulted in the following:
                        First layer from underneath, no adhesion
                        alt text

                        Next layers from above, too close, mushed layers since nozzle is dragging through the part
                        alt text

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

                          @Streamline If I understand you correctly, the problem is that:

                          G1 H1 Z-255 F360 ; move Z down stopping at the endstop
                          G90 ; absolute positioning
                          G92 Z0
                          ;homing done
                          G1 Z15.0 F120 ;move the platform down 15mm
                          G92 E0 ;zero the extruded length
                          G1 F200 E6 ;extrude 6 mm of feed stock
                          G92 E0 ;zero the extruded length again
                          G1 F120
                          M83 ;relative extrusion mode
                          G1 F1500 E-2
                          ;LAYER_COUNT:99
                          ;LAYER:0
                          M107
                          G0 F3600 X133.403 Y143.255 Z0.3

                          doesn't move to Z0.3, but to Z0.5

                          Could you try to abbreviate the code to:
                          G1 H1 Z-255 F360
                          G90
                          G92 Z0
                          G0 F3600 X133.403 Y143.255 Z0.3

                          and check that it is also wrong 0.5? Maybe with a slow speed to exclude mechanical reasons like vibrations. And as first test, not moving X and Y to exclude an uneven or tilted print bed or up-bended X axis.

                          Streamlineundefined 1 Reply Last reply Reply Quote 0
                          • Streamlineundefined
                            Streamline @JoergS5
                            last edited by

                            @JoergS5

                            The lines you suggested did not work, but I excluded the 15mm raise and extrude stock filament lines in the start-code and this might have done the trick for the first layer.

                            Next layers still appear to be mushed down, but I think that might be my aggressive leveling, which is pretty low to the bed, which is also apparent when removing the printed part, the first layer is way too close to the bed now.

                            I have a BLTouch on the way, so this will resolve that issue anyway.

                            However, I am still interested in why the 15mm raise is making problems, because it is neat to be able to extrude some filament before the print, so one can start with a clean line.

                            1 Reply Last reply Reply Quote 0
                            • Streamlineundefined
                              Streamline @Phaedrux
                              last edited by

                              @Phaedrux said in Duet 2 Wifi: First layer too high. Not hardware related.:

                              Try again with increased motor current and see if it improves.

                              Here's another question:

                              As I am using two Z motors, which are wired in series, does that mean I need to double the current in the firmware? I didn't find any mention of this in documentation, but that's how it had to be done on my old Wanhao i3.

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

                                @Streamline If you use two steppers for Z, each time you power up the steppers' positions can be different, up to about 2 full steps for each one in every direction, 4 in total in worst case. This results in a tilted distance to the bed and/or stuck Z movement. The print bed, if you have the configuration with 4 screws, is very stiff and little tilting or thermal expansion will result in stuck effects with backlash if direction of the Z axis changes. You had M107 additionally in the short G-Code, so maybe there is an additional thermal effect.

                                If you have a free motor controller on your board (maybe your second E is free), you can address both steppers separately. The firmware supports the assignment of both stepper/controllers to one axis Z and a separated calibration of the two steppers at startup and later movement together.
                                There is explicit documentation for it: https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
                                An alternative is to use one stepper for Z and drive a belt which is connected to both spindles.

                                An additional problem is steppers in serial: the 800 mA current flows through both of course, but voltage is split. No two steppers are really identical, so they differ in voltage and behavior.

                                An additional possibility is a problem of the coupling between stepper and spindle, which type is it? The aluminium ones with diagonal interruptions can produce backlash.

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

                                  Couple things:

                                  In your homing file you move to the Z endstop and set the position to Z0. But is the nozzle actually touching the bed at that point?

                                  After homing if you command the Z axis to Z0 with G90 G1 Z0 does the nozzle touch the bed or is it above?

                                  If removing the 15mm move helps the situation that would indicate again that there is some binding in the Z axis.

                                  Also, as @JoergS5 says, when you have multiple z motors that aren't mechanically linked together they will drift apart over time. Using independant Z motors and a probe to return them to a match position is a good software solution. Using a belt to link them is a good mechanical solution.

                                  If you are using the dual Z connector for the Z motors they are wired in series internally, so you only need to set the current as you would for a single motor. They are getting half voltage though, so there is a limitation. If you have a free driver (E1 perhaps) you can use independent steppers which will give best performance to the motors, but that doesn't solve the problem of getting out of sync or binding.

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  Streamlineundefined 1 Reply Last reply Reply Quote 0
                                  • Streamlineundefined
                                    Streamline @Phaedrux
                                    last edited by

                                    @Phaedrux @JoergS5

                                    Thank you both so much, I learned a lot in this thread.

                                    I will look into driving both Z motors independently, or in the future drive the whole Z axis with only one motor, or somehow get both motors to synch up.

                                    I have also observed the couplings (yes, the springy kind) and they do introduce backlash when moving up with the bed coming to a stop. I have introduced a second, slower, homing move to compensate for this. I know about plum-couplings, and they should be better than the springy ones right?

                                    Also waiting for my BLTouch to arrive.

                                    For now I can print pretty reliably with how I have it set up. However I want to reintroduce the 15mm distancing to extrude some filament before printing. It's a very clean way to start a print.

                                    JoergS5undefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @Streamline
                                      last edited by JoergS5

                                      @Streamline nice to know that you found some solutions.

                                      A good not too expensive replacement of the couplers are the "dog clutch" (called Rotex, or spider, or jaw also) couplings*). There were discussions in this forum at
                                      https://forum.duet3d.com/topic/6841/rigid-vs-flexible-couplers-for-trapezoidal-leadscrews
                                      and
                                      https://forum.duet3d.com/topic/7424/spider-coupling-for-lead-screw

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

                                        @Streamline said in Duet 2 Wifi: First layer too high. Not hardware related.:

                                        However I want to reintroduce the 15mm distancing to extrude some filament before printing. It's a very clean way to start a print.

                                        I use a short thick extrusion line at the corner of the bed to prime the extruder and clean the nozzle. It gets called from the start gcode.

                                        ;M98 P"0:/sys/PrimeNozzle.g"
                                        
                                        G90 			; Absolute positioning
                                        G1 X1 Y270 F6000 	; Move to rear left corner
                                        M400 			; clear movement buffer
                                        M116 			; Wait for temps
                                        G1 Z0.3 F100		; Move Z to prime height
                                        G91 			; Relative positioning
                                        M83 			; Relative extrusion
                                        G1 X40 E10 F300 	; Prime nozzle
                                        G10			; Retract
                                        G1 Y-1 X1 F10000 	; Wipe nozzle
                                        M400
                                        

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        Streamlineundefined 1 Reply Last reply Reply Quote 2
                                        • Streamlineundefined
                                          Streamline @Phaedrux
                                          last edited by

                                          @Phaedrux

                                          Thanks for the script, I will try it out.

                                          I have further investigated the issue, and finally did realize, that the Z axis is binding at the top and first few mm of movement: moving the bed up or down by 0.5mm at the very top resulted in 0 movement. Replaced the springy couplings with solid ones that I had laying around, installed my BLTouch and it seems to now be working reliably. Still some work to do, but at least I can start a print without worries now.

                                          I will rework my frame and look if there's any issues there, probably also get spider/rotex/plum couplings.

                                          I also put my second Z motor on E1, which works great and will allow me to get tilt compensation working in the future.

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

                                            Glad you found it! Might want to edit the title to be "Ok turns out it was hardware related." 😁

                                            Z-Bot CoreXY Build | Thingiverse Profile

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