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

    how do i do dual endstops for X and Y axis on my cnc

    Scheduled Pinned Locked Moved Solved
    CNC
    5
    21
    1.6k
    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.
    • Svenvdbundefined
      Svenvdb
      last edited by

      I am very new to the CNC world. I am making an MPCNC with a duet 2 wifi (latest 3.0 firmware I think). it uses 5 NEMA 17 motors.
      X - 2 motors, 2 endstop
      Y - 2 motors, 2 endstop
      Z - 1 motor, manual zero
      I got the motors working with the M564 S0 H0 command.

      Problem is when I want to home the X and Y axis. I want to use a dual endstop system so it squares automatically.
      I don't have any experience with writing Gcode so i generated a part of the home gcode with the RepRap configurator.
      when I press homeX or homeY it only moves the z-axis about 1cm up and down and it says home failed. this is my file to home the X axis. the Y axis it

      ; homex.g
      ; called to home the X axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sat Nov 14 2020 18:37:55 GMT+0100 (Midden-Europese standaardtijd)
      M581 X0:3 S-1 T2 C0  ;disable trigger for endstop X
      G21  ; set to mm
      G91               ; relative positioning
      M584 X0 W3 P4  ; seperate Y axis for alingning
      G1 H2 Z5 F6000    ; lift Z relative to current position
      G1 H1 X-805 F1800 ; move quickly to X axis endstop and stop there (first pass)
      G1 H2 X5 F6000    ; go back a few mm
      G1 H1 X-805 F360  ; move slowly to X axis endstop once more (second pass)
      G1 H2 Z-5 F6000   ; lower Z again
      G90               ; absolute positioning
      M581 X S1 T2 C0   ; enable trigger for endstop X
      

      I hope some of you can help me.

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

        @Svenvdb said in how do i do dual endstops for X and Y axis on my cnc:

        (latest 3.0 firmware I think)

        update to 3.1.1

        for dual endstop config see. this works for other axis as well
        https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_In_RepRapFirmware_Num_3

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

          Please post your config.g file.

          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

          Svenvdbundefined 1 Reply Last reply Reply Quote 0
          • Svenvdbundefined
            Svenvdb @dc42
            last edited by

            @dc42 this is my config file.

            ; Configuration file for Duet WiFi (firmware version 3)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sat Nov 14 2020 18:37:55 GMT+0100 (Midden-Europese standaardtijd)
            
            ; General preferences
            G90                            ; send absolute coordinates...
            M83                            ; ...but relative extruder moves
            M550 P"MPCNC"             ; set printer name
            
            ; 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:3 Y1:4 Z2              ; set drive mapping
            M350 X16 Y16 Z16 I1            ; configure microstepping with interpolation
            M92 X80.00 Y80.00 Z400.00      ; set steps per mm
            M566 X900.00 Y900.00 Z12.00    ; set maximum instantaneous speed changes (mm/min)
            M203 X3000.00 Y3000.00 Z180.00 ; set maximum speeds (mm/min)
            M201 X500.00 Y500.00 Z20.00    ; set accelerations (mm/s^2)
            M906 X800 Y800 Z800 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 X800 Y800 Z70 S0          ; set axis maxima
            
            ; Endstops
            M574 X1 S1 P"xstop+e0stop"            ; configure active-high endstop for low end on X via pin xstop
            M574 Y1 S1 P"ystop=e1stop"            ; configure active-high endstop for low end on Y via pin ystop
            
            ; 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
            M140 H-1                       ; disable heated bed (overrides default heater mapping)
            
            ; Fans
            
            ; Tools
            
            ; Custom settings are not defined
            
            
            
            Phaedruxundefined 1 Reply Last reply Reply Quote 0
            • Svenvdbundefined
              Svenvdb @Veti
              last edited by Svenvdb

              @Veti i am using 3.1.1 (2020-05-19b2).

              Thank you for the link. this is definitely helpful.

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

                @Svenvdb said in how do i do dual endstops for X and Y axis on my cnc:

                "ystop=e1stop"

                That should be a + not an =

                Z-Bot CoreXY Build | Thingiverse Profile

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

                  also you might want to switch to cnc mode

                  https://duet3d.dozuki.com/Wiki/Gcode#Section_M453_Select_CNC_Device_Mode

                  1 Reply Last reply Reply Quote 0
                  • Svenvdbundefined
                    Svenvdb
                    last edited by

                    I fixed it !!. my endstops were on NC, I put a ! in front of it to make it a NO and now it works
                    I used the normal code for the home command and the M574 in my config.

                    I found this other forum post from a guy with a similar problem. https://forum.duet3d.com/topic/20318/mpcnc-duet-3-sbc-dual-endstop-for-x-and-y-axes?_=1609092505581

                    And I read from this link https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_In_RepRapFirmware_Num_3
                    that @Veti provided that in 3.0 and above you don't have to separate the axis.

                    Thanks, @Phaedrux for noticing my error in the code, that would probably have taken me a day to figure out.

                    1 Reply Last reply Reply Quote 1
                    • shanteundefined
                      shante
                      last edited by

                      Hi
                      Can someone help mi with problem i have?
                      there is something wrong with my homing Y.
                      I do homig, steppers are moving, they both hit endstops, move back a bit, but then, only one on my steppers is going to hit endstop (Zstepper is triggers zstop).
                      Ystepper is not hitting the endstop. LED on mb is not lid.
                      Board: Duet 2 WiFi (2WiFi)
                      Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.2.2 (2021-02-11)
                      Duet WiFi Server Version: 1.25

                      ; Configuration file for Duet WiFi (firmware version 3)
                      ; executed by the firmware on start-up
                      ;
                      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Feb 20 2021 18:30:24 GMT+0100 (Central European Standard Time)
                      
                      ; General preferences
                      G90                                     ; send absolute coordinates...
                      M83                                     ; ...but relative extruder moves
                      M550 P"Primo"                       ; set printer name
                      
                      ; Network
                      M552 S1                                 ; enable network
                      M586 P0 S1                              ; enable HTTP
                      M586 P1 S0                              ; disable FTP
                      M586 P2 S0                              ; disable Telnet
                      
                      ; Drives
                      M569 P0 S0                              ; physical drive 0  X
                      M569 P1 S1                              ; physical drive 1  Y
                      M569 P2 S0                              ; physical drive 2  Z
                      M569 P3 S0								; physical drive 3  E0
                      M569 P4 S1								; physical drive 4  E1
                      M569 P5 S1								; physical drive 5 goes forwards
                      M584 X0:3 Y1:2 Z4 P3						; set drive mapping
                      M350 X16 Y16 Z16 I1                 ; configure microstepping with interpolation
                      M92 X80.00 Y80.00 Z400.00				; set steps per mm
                      M566 X900.00 Y900.00 Z60.00				; set maximum instantaneous speed changes (mm/min)
                      M203 X6000.00 Y6000.00 Z280.00			; set maximum speeds (mm/min)
                      M201 X500.00 Y500.00 Z20.00				; set accelerations (mm/s^2)
                      M906 X900 Y900 Z900 I30            ; set motor currents (mA) and motor idle factor in per cent
                      M84 S60                                 ; Set idle timeout
                      
                      ; Axis Limits
                      M208 X0 Y0 Z0 S1                        ; set axis minima
                      M208 X480 Y350 Z200 S0                  ; set axis maxima
                      
                      ; Endstops
                      M574 X1 S1 P"xstop+e0stop"              ; configure active-high endstop for low end on X via pin xstop
                      M574 Y1 S1 P"ystop+zstop"
                      
                      ; 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
                      M140 H-1                                ; disable heated bed (overrides default heater mapping)
                      
                      ; Fans
                      
                      ; Tools
                      
                      ; Custom settings are not defined
                      
                      ; Miscellaneous
                      M575 P1 S1 B57600                       ; enable support for PanelDue
                      M501                                    ; load saved parameters from non-volatile memory
                      
                      
                      

                      homex.g

                      ; homex.g
                      ; called to home the X axis
                      ;
                      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Feb 20 2021 18:30:24 GMT+0100 (Central European Standard Time)
                      G91               ; relative positioning
                      G1 H2 Z5 F6000    ; lift Z relative to current position
                      G1 H1 X-235 F1800 ; move quickly to X axis endstop and stop there (first pass)
                      G1 H2 X5 F6000    ; go back a few mm
                      G1 H1 X-235 F360  ; move slowly to X axis endstop once more (second pass)
                      G1 H2 Z-5 F6000   ; lower Z again
                      G90               ; absolute positioning
                      

                      homey.g

                      ; homey.g
                      ; called to home the Y axis
                      ;
                      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Feb 20 2021 18:30:24 GMT+0100 (Central European Standard Time)
                      
                      G91               ; relative positioning
                      G1 H2 Z5 F6000    ; lift Z relative to current position
                      G1 H1 Y-235 F1800 ; move quickly to Y axis endstop and stop there (first pass)
                      G1 H2 Y5 F6000    ; go back a few mm
                      G1 H1 Y-235 F360  ; move slowly to Y axis endstop once more (second pass)
                      G1 H2 Z-5 F6000   ; lower Z again
                      G90               ; absolute positioning
                      

                      thank you for any help

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

                        @shante said in how do i do dual endstops for X and Y axis on my cnc:

                        G1 H2 X5 F6000 ; go back a few mm

                        @shante said in how do i do dual endstops for X and Y axis on my cnc:

                        G1 H2 Y5 F6000 ; go back a few mm

                        Remove the H2 on those moves in your homing files. It's ok on the Z axis.

                        @shante said in how do i do dual endstops for X and Y axis on my cnc:

                        G1 H1 X-235 F1800 ; move quickly to X axis endstop and stop there (first pass)

                        @shante said in how do i do dual endstops for X and Y axis on my cnc:

                        G1 H1 Y-235 F1800 ; move quickly to Y axis endstop and stop there (first pass)

                        You need to increase the distance of the first homing moves. They must be longer than your axis length.

                        @shante said in how do i do dual endstops for X and Y axis on my cnc:

                        M584 X0:3 Y1:2 Z4 P3 ; set drive mapping

                        Why do you have P3?

                        Z-Bot CoreXY Build | Thingiverse Profile

                        shanteundefined 1 Reply Last reply Reply Quote 0
                        • shanteundefined
                          shante @Phaedrux
                          last edited by

                          @Phaedrux said in how do i do dual endstops for X and Y axis on my cnc:
                          Ok, removed H2 and increased the distance in both home.g files. Thanks.
                          But nothing changed, X homing OK, Y does not.

                          Why do you have P3?

                          Isn't that P3 to show those 3 axes? To home them and move them?

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

                            @shante said in how do i do dual endstops for X and Y axis on my cnc:

                            @Phaedrux said in how do i do dual endstops for X and Y axis on my cnc:
                            Ok, removed H2 and increased the distance in both home.g files. Thanks.
                            But nothing changed, X homing OK, Y does not.

                            Why do you have P3?

                            Isn't that P3 to show those 3 axes? To home them and move them?

                            You can leave the P3 off entirely. It's mainly used for when you have multiple temporary axis like UVW. You're not doing anything like that since with RRF3 you don't need to split up the axis for homing anymore.

                            What exactly happens with the Y axis when you do homey?
                            Does it move in the correct direction towards the endstop?
                            Does it stop before it hits the endstop?
                            If you click the endstop by hand while it's moving does it stop the axis?

                            Z-Bot CoreXY Build | Thingiverse Profile

                            shanteundefined 1 Reply Last reply Reply Quote 0
                            • shanteundefined
                              shante @Phaedrux
                              last edited by

                              @Phaedrux said in how do i do dual endstops for X and Y axis on my cnc:

                              You can leave the P3 off entirely. It's mainly used for when you have multiple temporary axis like UVW. You're not doing anything like that since with RRF3 you don't need to split up the axis for homing anymore.

                              What exactly happens with the Y axis when you do homey?
                              Does it move in the correct direction towards the endstop?
                              Does it stop before it hits the endstop?
                              If you click the endstop by hand while it's moving does it stop the axis?

                              P3 removed.
                              when i try to home Y. Steppers are moving, direction is ok. They both hit endstops, if misaligned stepper that did not hit the unstop is mooving until he does hit endstop. Then they move back together, and together in correct direction moving lowly towards endstops. However only one endstop is triggered and then steppers stops, homig ends as homed.

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

                                @shante Can you send M98 P"config.g" in the console and report the response?

                                M574 Y1 S1 P"ystop+zstop" Do both endstop LEDs work correctly when you manually click the switch?

                                Z-Bot CoreXY Build | Thingiverse Profile

                                shanteundefined 1 Reply Last reply Reply Quote 0
                                • shanteundefined
                                  shante @Phaedrux
                                  last edited by

                                  @Phaedrux they do, if tested manualy and in first homing pas. After second pas, that slow approach, only one is triggered, Ystop, and Zstop is not. Stepper do not come close to trigger it, its like 0.5mm away.

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

                                    @shante Can you send M98 P"config.g" in the console and report the response? Also the results of M122 please.

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    shanteundefined 1 Reply Last reply Reply Quote 0
                                    • shanteundefined
                                      shante @Phaedrux
                                      last edited by shante

                                      @Phaedrux
                                      M98 P"config.g"
                                      HTTP is enabled on port 80
                                      FTP is disabled
                                      TELNET is disabled
                                      Warning: Macro file config-override.g not found

                                      m122
                                      === Diagnostics ===
                                      RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2.2 running on Duet WiFi 1.02 or later
                                      Board ID: 08DGM-9T6BU-FG3S4-6J1FL-3SN6S-9SNRH
                                      Used output buffers: 4 of 24 (20 max)
                                      === RTOS ===
                                      Static ram: 23460
                                      Dynamic ram: 72128 of which 52 recycled
                                      Never used RAM 16440, free system stack 119 words
                                      Tasks: NETWORK(ready,187) HEAT(blocked,366) MAIN(running,543) IDLE(ready,20)
                                      Owned mutexes: WiFi(NETWORK)
                                      === Platform ===
                                      Last reset 00:00:50 ago, cause: software
                                      Last software reset at 2021-02-25 21:13, reason: User, GCodes spinning, available RAM 16408, slot 2
                                      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
                                      Error status: 0x00
                                      Aux0 errors 0,0,0
                                      MCU temperature: min 38.0, current 38.4, max 38.6
                                      Supply voltage: min 24.0, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
                                      Driver 0: position 0, standstill, SG min/max 0/109
                                      Driver 1: position 0, standstill, SG min/max not available
                                      Driver 2: position 0, standstill, SG min/max not available
                                      Driver 3: position 0, standstill, SG min/max 0/69
                                      Driver 4: position 0, standstill, SG min/max not available
                                      Driver 5: position 0
                                      Driver 6: position 0
                                      Driver 7: position 0
                                      Driver 8: position 0
                                      Driver 9: position 0
                                      Driver 10: position 0
                                      Driver 11: position 0
                                      Date/time: 2021-02-25 21:14:03
                                      Cache data hit count 60171643
                                      Slowest loop: 8.73ms; fastest: 0.21ms
                                      I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
                                      === Storage ===
                                      Free file entries: 10
                                      SD card 0 detected, interface speed: 20.0MBytes/sec
                                      SD card longest read time 3.2ms, write time 1.5ms, max retries 0
                                      === Move ===
                                      DMs created 83, maxWait 34339ms, bed compensation in use: none, comp offset 0.000
                                      === MainDDARing ===
                                      Scheduled moves 10, completed moves 10, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                      === AuxDDARing ===
                                      Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                      === Heat ===
                                      Bed heaters = -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
                                      === GCodes ===
                                      Segments left: 0
                                      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
                                      USB is idle in state(s) 0
                                      Aux is idle in state(s) 0
                                      Trigger is idle in state(s) 0
                                      Queue is idle in state(s) 0
                                      LCD is idle in state(s) 0
                                      Daemon is idle in state(s) 0
                                      Autopause is idle in state(s) 0
                                      Code queue is empty.
                                      === Network ===
                                      Slowest loop: 201.46ms; fastest: 0.11ms
                                      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
                                      HTTP sessions: 2 of 8
                                      - WiFi -
                                      Network state is active
                                      WiFi module is connected to access point 
                                      Failed messages: pending 0, notready 0, noresp 1
                                      WiFi firmware version 1.25
                                      WiFi MAC address cc:50:e3:4a:ad:68
                                      WiFi Vcc 3.31, reset reason Turned on by main processor
                                      WiFi flash size 4194304, free heap 25680
                                      WiFi IP address 192.168.1.81
                                      WiFi signal strength -73dBm, mode 802.11n, reconnections 0, sleep mode modem
                                      Clock register 00002002
                                      Socket states: 0 0 0 0 0 0 0 0
                                      

                                      M122 sent after homig X and Y

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

                                        @shante said in how do i do dual endstops for X and Y axis on my cnc:

                                        when i try to home Y. Steppers are moving, direction is ok. They both hit endstops, if misaligned stepper that did not hit the unstop is mooving until he does hit endstop. Then they move back together, and together in correct direction moving lowly towards endstops. However only one endstop is triggered and then steppers stops, homig ends as homed.

                                        So they are aligning properly on the first pass until both endstops are triggered, but not on the second pass?

                                        Can you make a video showing what's happening?

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        shanteundefined 1 Reply Last reply Reply Quote 0
                                        • shanteundefined
                                          shante @Phaedrux
                                          last edited by

                                          @Phaedrux

                                          So they are aligning properly on the first pass until both endstops are triggered, but not on the second pass?

                                          Can you make a video showing what's happening?

                                          Yes, exactly.
                                          No video yet, as im rewiring endstop and stepper. Tried replaced endstop, no joy.
                                          New wiring will be with yet another endstop, we will see.

                                          Do i need to split steppers if adding offset to one of steppers will be needed?
                                          If so can you write me example code how to do that?

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

                                            @shante Some videos/photos of the setup would help to understand what's going on.

                                            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