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

    CoreXY homing

    Scheduled Pinned Locked Moved Solved
    Documentation
    5
    8
    503
    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.
    • brunofportoundefined
      brunofporto
      last edited by brunofporto

      I was having a lot of issues with my homing with my CoreXY printer depending on the relative position of the tool head at the start of the home all. The home X, Y and Z individually worked like a charm but the Home all was always a surprise.

      As a good Duet user I go to the documentation, cleaned my home all g file and started from scratch testing it line by line.

      I will discuss it in more detail on other post but here is something I noted that is an Issue with the current example.

      Sometimes after the homeall my printer did not register the G90 and was kept at the relative movement!

      I did need to add a M400 after the last homing movement before the G90 and the Z homing sequence.

      Another issue is that sometimes when homing the Y it moved a few mm the X so it is a good practice to go back a few mm both X and Y after the coarse homing to avoid it.

      G91                     ; relative mode
      G1 H1 X-240 Y-240 F3000 ; coarse home X or Y
      G1 H1 X-240             ; coarse home X
      G1 H1 Y-240             ; coarse home Y
      G1 X4 Y4 F600           ; move away from the endstops
      G1 H1 X-10              ; fine home X
      G1 X4 Y4 F600           ; move away from the endstops
      ; this last one avoids the "residual" X movement that can or not happens when stalling at Y homing.
      G1 H1 Y-20              ; fine home Y
      M400                        ; wait for movement to finish
      G90                            ; Absolute positioning
      ; Z homing section follows
      ...
      
      mrehorstdmdundefined 1 Reply Last reply Reply Quote 0
      • mrehorstdmdundefined
        mrehorstdmd @brunofporto
        last edited by

        @brunofporto X should not move at all when homing Y and Y should not move at all when homing X. You have to be able to move X and Y independently or you won't be able to make quality prints. I suspect a mechanical problem such as a belt layout error. Can you post photos of the XY stage?

        You're not using steel core belts, are you?

        https://drmrehorst.blogspot.com/

        brunofportoundefined 2 Replies Last reply Reply Quote 0
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          Can you post your config.g?
          What firmware version are you using?

          Z-Bot CoreXY Build | Thingiverse Profile

          1 Reply Last reply Reply Quote 0
          • brunofportoundefined
            brunofporto @mrehorstdmd
            last edited by

            @mrehorstdmd No misaligment for sure. It clearly move X when it fails to detect the first stall "jump".

            As it move diagonally on the first move it is only using one motor. When it fails to detect the first stall it forces a few steps into Y0 making X move by consequence. If I set it to be more sensitive it does not happens at all BUT it also detect false hits.

            No steel core belts also. The prints are well calibrated along 5 to 150mm on both axis and without skeweness and right angle reference parts are perpendicular.

            But the homing issue is not the topic of this thread.

            The topic here is that the printer fails to detect G90 after the fine home Y (line 9 of the example above) and it caused issues. A m400 failsafe that.

            I will open another post to discuss the homeall issues 😄 As soon as I have time to describe it and organize to post I put the link here.

            1 Reply Last reply Reply Quote 0
            • brunofportoundefined
              brunofporto @mrehorstdmd
              last edited by

              @mrehorstdmd yes. But the topic here is fail to detect the G90 command after the last movement. It was solved by a M400.

              I using latest firmware release on a Duet 2 Ethernet

              ; General preferences
              G90                                                     ; send absolute coordinates...
              M83                                                     ; ...but relative extruder moves
              M550 P"forkLIFT"                                        ; set printer name
              M669 K1                                                 ; select CoreXY mode
              
              ; Network
              M551 P"notyourbusiness"                                        ; set password
              M552 P0.0.0.0 S1                                        ; enable network and uses defined IP
              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 S0                                              ; physical drive 2 goes backwards
              M569 P3 S0                                              ; physical drive 3 goes backwards
              M569 P4 S0                                              ; physical drive 4 goes backwards
              M584 X0 Y1 Z2:4 E3                                      ; set drive mapping
              M350 E256 I0                                            ; configure microstepping without interpolation
              M350 X16 Y16 Z16:16 I1                       		    ; configure microstepping with interpolation
              M92 X80.18 Y79.71 Z398.98 E6640                          ; set steps per mm
              M201 X700 Y700 Z100 E3000                               ; Set accelerations (mm/s^2) 
              M201.1 X300 Y300 Z20                                    ; Set reduced acceleration for special move types
              M203 X15000 Y15000 Z1400 E3600                          ; Set maximum speeds (mm/min)
              ;M204 P500 T2500		                                    ; Set printing and travel accelerations
              M566 X720 Y720 Z300 E3600                               ; Set maximum instantaneous speed changes (mm/min)
              M906 X1800 Y1800 Z1500 E1500 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 X298 Y300 Z290 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
              M915 X Y R0 F0 S4   									; Configuring Sensorless Homing
              
              ; Z-Probe
              M950 S0 C"exp.heater7"                                  ; create servo/gpio 0 on heater 7 pin on expansion connector
              M558 P5 C"^zprobe.in" H5 F120 T12000                    ; set Z probe type to switch and the dive height + speeds
              G31 P600 X0 Y-41.9 Z0.321                               ; set Z probe trigger value, offset and trigger height
              M557 X20:278 Y0:258 P5:5                                ; Define mesh grid
              
              ; Heaters
              M308 S0 P"bedtemp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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 S150                                            ; set temperature limit for heater 0 to 150C
              
              M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8  ; 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
              M143 H1 S285                                            ; set temperature limit for heater 1 to 280C
              
              ; 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
              
              ; Tools
              M563 P0 S"Basic" 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
              T0                                                      ; select first tool
              M703                                                    ; reload loaded filament settings
              M912 P0 S-23.6                                          ; MCU temperature Calibration
              M501                                                    ; load saved parameters from non-volatile memory
              
              dc42undefined 1 Reply Last reply Reply Quote 0
              • A Former User?
                A Former User
                last edited by A Former User

                This post is deleted!
                1 Reply Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators @brunofporto
                  last edited by

                  @brunofporto said in CoreXY homing:

                  But the topic here is fail to detect the G90 command after the last movement. It was solved by a M400.

                  Assuming that you are using one of our standard stable builds of RRF, I can't see any way that RRF could fail to execute a G90 command. Please check using M115 or M122 exactly which firmware version you are using and tell us.

                  The M400 is redundant because the H1 parameter in the G1 move that precedes it causes RRF to wait for motion to stop already.

                  This sequence from your homing file:

                  G1 H1 X-240 Y-240 F3000 ; coarse home X or Y
                  G1 H1 X-240 ; coarse home X
                  G1 H1 Y-240 ; coarse home Y

                  is unlikely to work when using stall detection endstops. The reason is that the first line movement will terminate when either motor stalls, but that motor will likely remain stalled so the next two lines may be skipped.

                  With stall detection endstops you should do the following instead:

                  • Home one of the axes
                  • Back that axis off a little (to un-stall whichever motor stalled)
                  • Home the other axis
                  • Back that axis off a little

                  There is no point in doing a "fine hope" step, because stall detection endstops are not very accurate and don't work at low speeds.

                  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

                  brunofportoundefined 1 Reply Last reply Reply Quote 0
                  • brunofportoundefined
                    brunofporto @dc42
                    last edited by

                    @dc42 said in CoreXY homing:

                    Assuming that you are using one of our standard stable builds of RRF, I can't see any way that RRF could fail to execute a G90 command. Please check using M115 or M122 exactly which firmware version you are using and tell us.

                    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.4.5 ELECTRONICS: Duet Ethernet 1.02 or later FIRMWARE_DATE: 2022-11-30 19:36:12

                    Thanks, I will remove the "fine hope" part

                    1 Reply Last reply Reply Quote 0
                    • droftartsundefined droftarts marked this topic as a question
                    • droftartsundefined droftarts has marked this topic as solved
                    • First post
                      Last post
                    Unless otherwise noted, all forum content is licensed under CC-BY-SA