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

    Homing Z in wrong direction on first power cycle

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    3
    16
    1.3k
    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.
    • Jaranundefined
      Jaran
      last edited by Jaran

      Hello there! After making some changes on my printer I have been having an issue where the bed is moving to the bottom of the printer when the probe is triggered.

      I have a HyperCube Evolution. Lately I changed out the TR8 rods and re-aligned the Z axis which made the bed drop once the power shuts off. This causes the bed to be at the bottom of the printer on every power up(planning to make the bed stay on power off, just waiting for some parts). On the first power on cycle the bed moves to the probe and then starts to move all the way to the bottom again. If I power off the printer at this point and start the homing again once its powered back in it homes the Z axis like normal.

      I can't figure out whats causing it!

      My config.g:

      ; 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 Wed Mar 25 2020 15:23:24 GMT+0100 (sentraleuropeisk normaltid)
      
      ; General preferences
      G90                                     ; send absolute coordinates...
      M83                                     ; ...but relative extruder moves
      M550 P"Jarans HEVO"                     ; 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
      M569 P4 S1								; physical drive 4 goes forwards
      M584 X0 Y1 Z2 E3                   		; set drive mapping
      M671 X0:323 Y0:0 S0.5 					; leadscrews at left (connected to Z) and right 																											?????
      M350 X16 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E2688.70      ; set steps per mm Z396.08					;M92 X80.00 Y80.20 Z404.04 E2688.70 		11.05:	M92 X80.33 Y80.94 Z394.1853 E2688.70 
      M566 X480.00 Y480.00 Z24.00 E40.00     	; set maximum instantaneous speed changes (mm/min)			M566 X480.00 Y480.00 Z24.00 E40.00
      M203 X6000.00 Y6000.00 Z400.00 E10000.00 ; set maximum speeds (mm/min)
      M201 X3000.00 Y3000.00 Z200.00 E120.00     ; set accelerations (mm/s^2)
      M906 X1200 Y1200 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 X267 Y267 Z250 S0                  ; set axis maxima
      
      ; Endstops and stalldetection
      M915 X Y S3 F0 H300 R0
      M574 X1 Y1 S3
      M574 Z1 S2                              ; set endstops controlled by probe
      
      ; Z-Probe
      M307 H3 A-1 C-1 D-1                     ; disable heater on PWM channel for BLTouch
      M558 P9 H5 F120 T6000                   ; set Z probe type to bltouch and the dive height + speeds
      G31 P25 X28.00 Y3.00 Z3.305              ; set Z probe trigger value, offset and trigger height 2.20
      M557 X30:260 Y30:260 S40.4              ; define mesh grid 20	M557 X30:260 Y30:260 S30
      
      ; Heaters
      M305 P0 T100000 B4138 C0 R4700             ; set thermistor + ADC parameters for heater 0
      M143 H0 S120                            ; set temperature limit for heater 0 to 120C
      M305 P1 T100000 B4725 C7.06e-8 R4700             ; set thermistor + ADC parameters for heater 1
      M143 H1 S280                            ; set temperature limit for heater 1 to 280C
      M307 H3 A-1 C-1 D-1
      
      ; 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 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
      M579 X1.00267 Y1.00840 Z1.0
      ;M501
      

      Homez.g:

      ; homez.g
      ; called to home the Z axis
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Mar 25 2020 15:23:24 GMT+0100 (sentraleuropeisk normaltid)
      G90              ; absolute positioning
      G1 X0 Y0 F6000   ; go to first probe point
      G30              ; home Z by probing the bed
      
      ; Uncomment the following lines to lift Z after probing
      ;G91             ; relative positioning
      ;G1 Z5 F100      ; lift Z relative to current position
      ;G90             ; absolute positioning
      
      
      

      Homeall.g:

      ; homeall.g
      ; called to home all axes
      ;
      
      M400                    	; make sure everything has stopped before we make changes
      M913 X50 Y50	       		; reduce motor current to 50% to prevent belts slipping
      G91                     	; use relative positioning
      G1 S1 X-400	F3600	 		; move back 400mm, stopping at the endstop
      G1 X5	           			; move away from home
      G1 S1 Y-400 F3600		 	; move back 400mm, stopping at the endstop
      G1 Y5	           			; move away from home
      G1 S1 X-400	F3600			; move towards axis minimum
      G1 S1 Y-400	F3600			; move towards axis minimum 
      G1 X5 Y60	                ; move away from home
      G92 X0 Y0					; set coordinates to 0,0
      M400                    	; make sure everything has stopped before we reset the motor currents
      M913 X100 Y100		     	; motor currents back to normal
      
      ;G90                     	; absolute positioning
      ;G1 X0 Y60 F6000          	; go to first bed probe point and home Z
      ;G30                     	; home Z by probing the bed
      
      

      Video showing the problem: https://streamable.com/ild3we

      Does anyone have any idea whats causing this?

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

        If your bed already has a tendency to auto rotate to the bottom when power is removed, perhaps after probing and it drops the bed back down by the dive height it just keeps rolling down.

        Your Z motor current is 800ma. Is that ~80% of the rated maximum?

        For heavy beds it's a good ideal to use a lead screw with a shallower angle of attack on the threads to remove the tendency to auto rotate. 8mm lead is quite steep. 2mm or 1mm lead single start lead screws work very well to resolve this.

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • Jaranundefined
          Jaran
          last edited by

          I can clearly hear the motors getting current and spinning when its dropping down after the first homing. This also only seems to happen when the bed is at the lower part of the printer. If I start homing it at about 100mm down from the top it homes like it should.

          Yes, the motor is running at 80% of the rated current.

          Thanks for the tip! I might give that a shot. I was planning to remove one of the Z motors and run the bed with a single motor and a closed loop belt like this: https://www.thingiverse.com/thing:2761562 The parts I need should be close ish in the post πŸ™‚

          droftartsundefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @Jaran
            last edited by

            @Jaran Please send M115 (firmware versions) to the Duet and post the response. Please can you also describe the exact steps you're taking. I think its:

            1. Power on printer (runs config.g)
            2. Run homeall.g (homes only X and Y)
            3. Run homez.g (homes Z then descends)
            4. Turn off printer
            5. Turn on printer
            6. homing works?

            Also, do you have two Z motors? Are they both connected to Z (ZA and ZB)? If they are connected to separate drivers, you need to define that in you M584, eg:

            M584 X0 Y1 Z2:4 E3                   		; set drive mapping
            

            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

            Jaranundefined 1 Reply Last reply Reply Quote 0
            • Jaranundefined
              Jaran @droftarts
              last edited by

              @droftarts

              M115:

              FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.05.1 ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2020-02-09b1
              

              Yes, thats about right, except I don't run the homing files manually, I just hit the "Home all" button on the duet touch display.

              I am using two Z motors and they are wired to ZA and ZB now. I did try to run them on seperate drivers earlier but everything should be reverted back to using ZA and ZB.

              The homing has always been working fine, until I straightend up the Z axis which caused the bed to drop when its powered off. Im starting to belive this has always been an issue as its only happening when the bed is at the bottom. I can't confirm that for sure as the bed never dropped down to that point earlier and I have never printed anything that big in the Z axis.

              All in all the homing works just fine as long as the bed is not dropped down to the lower part of the printer 😲

              Phaedruxundefined 1 Reply Last reply Reply Quote 0
              • Jaranundefined
                Jaran
                last edited by

                I made a little video of the issue. Please excuse the mess πŸ™‚

                https://streamable.com/ild3we

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

                  @Jaran said in Homing Z in wrong direction on first power cycle:

                  I don't run the homing files manually, I just hit the "Home all" button on the duet touch display.

                  When you run homeall it starts with homeall.g and if it has any remaining unhomed axis when it's done (in your case the z axis) it runs the homez file.

                  Since you're running 2.05.1 you should probably update your homeall o use H1 instead of S1 for your homing G1 moves.

                  Also, you can increase your Z axis probing speed substantially and still get good accuracy by setting up a double homing routine in your homez by replacing your single G30 with this:

                  M558 A1 F400			; Set single probing at faster feed rate
                  G30 				; Do a single probe to home our Z axis
                  M558 A10 F120			; Set multi probing at slower feed rate
                  G30				; Probe again to get a more accurate position
                  

                  Not a solution to your problem, but should drastically speed up your initial homing from the bottom of the bed.

                  It's also preferable to move the probe to the center of the bed.

                  I also notice that you're using G92 in your homeall to reset the homed XY position to 0. If the 0,0 point is off the edge of the bed, it might be best to modify the M208 minima to use a slightly negative value such that 0,0 is the corner of the bed. That way the full travel size of the axis is allowed, but the location of the printable area is still preserved.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 1
                  • Jaranundefined
                    Jaran
                    last edited by

                    Hehe, I should indeed speed it up! Thanks for the little snippet πŸ™‚

                    I am going to home in the middle of the printer once im done making changes. Been struggling with the printed parts and lining up the belt so I have taken it all apart quite a few times now. The last setup I had the extruder never moved outside the buildplate, but the new parts allows it to move out of it in the Y axis. Thanks for the tip. At the moment the extruder can only move within its buildplate, but I am going to allow it to move out of it later on to make some sort of nozzle wiping brush.

                    1 Reply Last reply Reply Quote 0
                    • Jaranundefined
                      Jaran
                      last edited by

                      I have just updated my firmware to 3.1.1 so here is my new config file. Im still having the same issue on this firmware. For what its worth I sat up the setup with the online generator.

                      ; Configuration file for Duet WiFi (firmware version 3)
                      ; executed by the firmware on start-up
                      ;
                      ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Aug 14 2020 12:18:48 GMT+0200 (sentraleuropeisk sommertid)
                      
                      ; General preferences
                      G90                                              ; send absolute coordinates...
                      M83                                              ; ...but relative extruder moves
                      M550 P"Jarans HEVO"                              ; set printer name
                      M669 K1                                          ; 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 X16 Y16 Z16 E16 I1                          ; configure microstepping with interpolation
                      M92 X80.00 Y80.00 Z400.00 E2771.50               ; set steps per mm
                      M566 X480.00 Y480.00 Z24.00 E40.00               ; set maximum instantaneous speed changes (mm/min)
                      M203 X6000.00 Y6000.00 Z400.00 E10000.00         ; set maximum speeds (mm/min)
                      M201 X500.00 Y500.00 Z200.00 E120.00             ; set accelerations (mm/s^2)
                      M906 X1200 Y1200 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 X267 Y267 Z250 S0                           ; set axis maxima
                      
                      ; Endstops
                      M574 X1 S3                                       ; configure sensorless endstop for low end on X
                      M574 Y1 S3                                       ; configure sensorless endstop for low end on Y
                      M574 Z1 S2                                       ; configure Z-probe endstop for low end on Z
                      
                      ; Stall Detection
                      M915 X Y S3 F0 H100 R0
                      
                      ; Z-Probe
                      M950 S0 C"exp.heater3"                           ; create servo pin 0 for BLTouch
                      M558 P9 C"^zprobe.in" H5 F120 T6000              ; set Z probe type to bltouch and the dive height + speeds
                      G31 P25 X28 Y3 Z3.636                            ; set Z probe trigger value, offset and trigger height
                      M557 X30:260 Y30:260 S40.4                       ; define mesh grid
                      
                      ; Heaters
                      M950 H3 C"nil"                                   ; Disable heater H3 to free up pin
                      M308 S0 P"bedtemp" Y"thermistor" T100000 B4138   ; configure sensor 0 as thermistor on pin bedtemp
                      M950 H0 C"bedheat" T0                            ; create bed heater output on bedheat and map it to sensor 0
                      M307 H0 B0 S1.00                                 ; disable bang-bang mode for the bed heater and set PWM limit
                      M140 H0                                          ; map heated bed to heater 0
                      M143 H0 S120                                     ; set temperature limit for heater 0 to 120C
                      M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 R4700 ; configure sensor 1 as thermistor on pin e0temp
                      M950 H1 C"e0heat" T1                             ; create nozzle heater output on e0heat and map it to sensor 1
                      M307 H1 B0 S1.00                                 ; disable bang-bang mode for heater  and set PWM limit
                      
                      ; Fans
                      M950 F0 C"fan0" Q500                             ; create fan 0 on pin fan0 and set its frequency
                      M106 P0 S0 H-1                                   ; set fan 0 value. Thermostatic control is turned off
                      M950 F1 C"fan1" Q500                             ; create fan 1 on pin fan1 and set its frequency
                      M106 P1 S1 H1 T45                                ; set fan 1 value. Thermostatic control is turned on
                      
                      ; Tools
                      M563 P0 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
                      M575 P1 S1 B57600                                ; enable support for PanelDue
                      
                      
                      
                      droftartsundefined 1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined
                        Phaedrux Moderator
                        last edited by

                        I still think this is an issue of the bed weight causing the bed to auto rotate down, perhaps from lack of torque.

                        Can you try the following:

                        Temporarily increase the Z motor current to the max rated for the motor.

                        Reduce the max speed and acceleration for the Z motor.

                        Reduce microstepping on Z to x8.

                        You can add this code right below your current drive block and then delete it after testing.

                        M350 Z8
                        M906 Z1000
                        M203 Z200
                        M201 Z60

                        See if that makes a difference.

                        If that doesn't help, leave that block in place and then change the Z motor wiring so that one motor goes to your spare extruder driver. Then alter your M584 command to map the Z axis to both drivers as droftarts describes above.

                        M584 X0 Y1 Z2:4 E3 ; set drive mapping

                        Z-Bot CoreXY Build | Thingiverse Profile

                        Jaranundefined 1 Reply Last reply Reply Quote 0
                        • droftartsundefined
                          droftarts administrators @Jaran
                          last edited by

                          @Jaran I just watched the first video and agree that the bed is powered on the downward movement; it’s not slipping. The only thing I can think of is that the first move, from the bottom of Z to probe, is more than the 250mm set in M208:

                          M208 X267 Y267 Z250 S0
                          

                          So my suggestion is to try setting this larger than the Z movement, eg 400, and see if it still does the same thing.

                          I don’t know why it would be doing this, though. But please test and see if it makes a difference.

                          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 2
                          • Jaranundefined
                            Jaran @Phaedrux
                            last edited by Jaran

                            @Phaedrux I will for sure give this a shot, but im 99% sure its not due to the weight. The weight has never been an issue before, its only when the bed is at the bottom. If I try to "hold" the bed with my finger below it when it has no current I can simply hold my finger there without giving any preassure and it stays.

                            @droftarts This sounds like the solution! After changing parts on the printer lately I have for sure gained more Z travel and I intentinally set that limits to be lower earlier as the bed struggled when going all the way down(slightly skewed Z rods).

                            I will post back in a couple of minutes with an edit πŸ™‚

                            Edit: It was the Z axis limit that caused this. Now it works as intended even at the lowest point it can reach. I did not think about this at all until I read out your message πŸ™‚

                            Thanks alot to both of you! Im starting to get close to a result I can be happy with 🀠

                            droftartsundefined 1 Reply Last reply Reply Quote 1
                            • droftartsundefined
                              droftarts administrators @Jaran
                              last edited by

                              @Jaran Great! Glad that sorted it. Can you let me know how much travel you have on Z, from bottom to top? I don't know if there's a limit set in the firmware that aborts G30 if the distance travelled is greater than the M208 Z value + [some value], but this behaviour is not expected or documented, so may be a ... (drum roll) ... bug!

                              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
                              • Jaranundefined
                                Jaran
                                last edited by

                                @droftarts I have about 290-300mm travel in total on the Z axis. I sat the new limit to 280mm which works fine.

                                Hehe yeah, it looks like it. As long as you set the limits to match the travel length you will never experience this, but if someone for some reason put the limits on 50% of the travel length I belive you would.

                                droftartsundefined 1 Reply Last reply Reply Quote 0
                                • droftartsundefined
                                  droftarts administrators @Jaran
                                  last edited by

                                  @Jaran I asked @dc42 if this was a bug, but it isn’t. He said β€œmax travel is 1.1 * the total Z axis length” so your Z was limited to 275mm with M208 Z250.

                                  A couple more questions; on the first home, did the probe actually trigger, or did it stop short and reverse? Also when it did reverse to the bottom, did it stop, or just keep going and grind the motors when it got to the bottom?

                                  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

                                  Jaranundefined 1 Reply Last reply Reply Quote 0
                                  • Jaranundefined
                                    Jaran @droftarts
                                    last edited by

                                    @droftarts Aha, I see.

                                    The probe did trigger. The bed kept moving until it hit the probe no matter how far down it was. It did not stop at the bottom, it kept on going and grinding the motors.

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