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

    adding multiple z endstops

    Scheduled Pinned Locked Moved
    STM
    2
    10
    1.1k
    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.
    • Sbutterfieldundefined
      Sbutterfield
      last edited by Phaedrux

      Hey guys, I have 2 endstop questions.

      corexy creativity elf printer
      dual lead screw with endstops
      mellow super 8 board
      RRF3

      1. I have a dual lead screw corexy 3d printer that uses endstops and so far only one works. I looked up M574 and tried the example for using independent endstop switches for z axis but I must be missing something. when I run M119 one endstop is recognized but the other shows as "z probe: at min stop"
        I added M569 and mapped the second Z motor with M584

      2. my y endstop doesnt trigger very fast and the gantry crashes into it and the motors skip for half a second. How do I get it to trigger faster?

      ; Configuration file for Fly Super8 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+4 on Sat Dec 03 2022 13:21:04 GMT-0600 (Central Standard Time)
      
      ; General preferences
      G90                                                   ; send absolute coordinates...
      M83                                                   ; ...but relative extruder moves
      M550 P"elf 1"                                         ; 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 S0                                            ; physical drive 0 "X" goes forwards using default driver timings
      M569 P1 S0                                            ; physical drive 1 "Y" goes forwards using default driver timings
      M569 P2 S1                                            ; physical drive 2 "E" goes forwards using default driver timings
      M569 P3 S0                                            ; physical drive 3 "Z" goes backwards using default driver timings
      M569 P4 S0                                            ; physical drive 3 "Z1" goes backwards using default driver timings
      M584 X0 Y1 Z3:4 E3                                    ; set drive mapping #=drive number
      M350 X16 Y16 Z16 E16 I1                               ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E415.00                     ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E1200.00                  ; set maximum instantaneous speed changes (mm/min)
      M203 X24000.00 Y24000.00 Z180.00 E1200.00             ; set maximum speeds (mm/min)
      M201 X3500.00 Y3500.00 Z20.00 E2000.00                ; set accelerations (mm/s^2)
      M906 X1100 Y1100 Z900 E650 I30                        ; set motor currents (mA) and motor idle factor in per cent
      M84 S1800                                             ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                                      ; set axis minima
      M208 X310 Y310 Z320 S0                                ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"io2"                                     ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io2
      M574 Y1 S1 P"io1"                                     ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1
      ;M574 Z0 S1 P"io3"                                     ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io3
      ;M574 Z1 S1 P"io0"                                     ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io0
      M574 Z1 S1 P"io3+io0"                               ; Z axis with two motors, individual min endstops, active high
      
      ; 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
      M308 S0 P"ADC_0" Y"thermistor" T100000 B4092          ; configure sensor 0 as thermistor on pin ADC_0
      M950 H0 C"bed" T0                                     ; create bed heater output on bed 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
      M143 H0 S120                                          ; set temperature limit for heater 0 to 120C
      M308 S1 P"ADC_5" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin ADC_5
      M950 H1 C"heat0" T1                                   ; create nozzle heater output on heat0 and map it to sensor 1
      M307 H1 B0 S1.00                                      ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S320                                          ; set temperature limit for heater 1 to 320C
      
      ; Fans
      M950 F0 C"fan0" Q500                                  ; create fan 0 on pin fan0 and set its frequency
      M106 P0 C"Part Cooling Fan" S0 H T45                  ; set fan 0 name and value. Thermostatic control is turned on
      M950 F1 C"fan1" Q500                                  ; create fan 1 on pin fan1 and set its frequency
      M106 P1 C"Hotend Fan" S0.01 H1 T45                    ; set fan 1 name and 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 S0 B57600                                     ; enable support for Flymaker 4.3/7" screen
      
      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        Can you send M122 and M98 P"config.g" in the gcode console tab in DWC and copy the results here?

        Can you also share your homing files?

        Z-Bot CoreXY Build | Thingiverse Profile

        Sbutterfieldundefined 1 Reply Last reply Reply Quote 0
        • Sbutterfieldundefined
          Sbutterfield @Phaedrux
          last edited by Phaedrux

          good morning @Phaedrux

          M98 P"config.g"
          HTTP is enabled on port 80
          FTP is disabled
          TELNET is disabled
          Error: in file macro line 62 column 33: M106: expected number after 'H'
          
          m122
          === Diagnostics ===
          RepRapFirmware for STM32F4 based Boards (fly_super8) version 3.4.4_102 (2022-11-08 14:19:10) running on STM32F4
          Board ID: P10J3-0417A-G83VJ-6N9DA-H6ATU-70000
          Used output buffers: 3 of 40 (13 max)
          === RTOS ===
          Static ram: 19480
          Dynamic ram: 76508 of which 164 recycled
          Never used RAM 33892, free system stack 214 words
          CCMRam static ram: 16760 dynamic ram: 19076 free ram 29696
          Tasks: NETWORK(notifyWait,166.5%,261) HEAT(notifyWait,0.5%,347) Move(notifyWait,0.1%,316) FSWRITE(notifyWait,0.0%,474) MAIN(running,303.1%,397) IDLE(ready,0.3%,29), total 470.4%
          Owned mutexes: WiFi(NETWORK)
          === Platform ===
          Last reset 13:26:44 ago, cause: software
          Last software reset at 2022-12-05 20:07, reason: User, GCodes spinning, available RAM 33892, slot 2
          Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
          Error status: 0x00
          Aux0 errors 0,0,0
          Step timer max interval 0
          MCU temperature: min 46.1, current 55.1, max 59.1
          Supply voltage: min 24.0, current 24.2, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
          Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
          Events: 0 queued, 0 completed
          Driver 0: 
          Driver 1: 
          Driver 2: 
          Driver 3: 
          Driver 4: 
          Driver 5: 
          Driver 6: 
          Driver 7: 
          Driver 8: 
          Driver 9: 
          Driver 10: 
          Driver 11: 
          Driver 12: 
          Driver 13: 
          Date/time: 2022-12-06 09:34:20
          Slowest loop: 6.40ms; fastest: 0.07ms
          === Storage ===
          Free file entries: 10
          SD card 0 detected
          SD card longest read time 5.0ms, write time 1.2ms, max retries 0
          === Move ===
          DMs created 83, segments created 3, maxWait 555503ms, bed compensation in use: none, comp offset 0.000
          === MainDDARing ===
          Scheduled moves 14, completed 14, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === AuxDDARing ===
          Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === Heat ===
          Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
          === GCodes ===
          Segments left: 0
          Movement lock held by null
          HTTP 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: 26.20ms; fastest: 0.00ms
          Responder states: HTTP(0) HTTP(2) HTTP(0) HTTP(0) FTP(0)
          HTTP sessions: 1 of 8
          Uploads/Errors: 1/0
          = WiFi =
          Network state is active
          WiFi module is connected to access point 
          Failed messages: pending 0, notready 0, noresp 0
          Bad header: 0/0
          WiFi firmware version 1.27-01S32-D
          WiFi MAC address ##############
          WiFi Vcc 0.00, reset reason Power up
          WiFi flash size 0, free heap 124388
          WiFi IP address ##########
          WiFi signal strength -51dBm, mode 802.11n, reconnections 0, sleep mode none
          Clock register 00002003
          Socket states: 0 0 0 0 0 0 0 0
          
          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+4 on Sat Dec 03 2022 13:21:04 GMT-0600 (Central Standard Time)
          G91                     ; relative positioning
          G1 H2 Z5 F6000          ; lift Z relative to current position
          G1 H1 X-315 Y-315 F500 ; move quickly to X or Y endstop and stop there (first pass)
          G1 H1 X-315             ; home X axis
          G1 H1 Y-315             ; home Y axis
          G1 X5 Y5 F6000          ; go back a few mm
          G1 H1 X-315 F360        ; move slowly to X axis endstop once more (second pass)
          G1 H1 Y-315             ; then move slowly to Y axis endstop
          G1 H2 Z325 F360         ; move Z up stopping at the endstop
          G90                     ; absolute positioning
          G92 Z320                ; set Z position to axis maximum (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
          
          ; homex.g
          ; called to home the X axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+4 on Sat Dec 03 2022 13:21:04 GMT-0600 (Central Standard Time)
          G91               ; relative positioning
          G1 H2 Z5 F6000    ; lift Z relative to current position
          G1 H1 X-315 F1800 ; move quickly to X axis endstop and stop there (first pass)
          G1 X5 F6000       ; go back a few mm
          G1 H1 X-315 F360  ; move slowly to X axis endstop once more (second pass)
          G1 H2 Z-5 F6000   ; lower Z again
          G90               ; absolute positioning
          
          ; homey.g
          ; called to home the Y axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+4 on Sat Dec 03 2022 13:21:04 GMT-0600 (Central Standard Time)
          G91               ; relative positioning
          G1 H2 Z5 F6000    ; lift Z relative to current position
          G1 H1 Y-315 F500 ; move quickly to Y axis endstop and stop there (first pass)
          G1 Y5 F6000       ; go back a few mm
          G1 H1 Y-315 F360  ; move slowly to Y axis endstop once more (second pass)
          G1 H2 Z-5 F6000   ; lower Z again
          G90               ; absolute positioning
          
          ; homez.g
          ; called to home the Z axis
          ;
          ; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+4 on Sat Dec 03 2022 13:21:05 GMT-0600 (Central Standard Time)
          G91              ; relative positioning
          G1 H2 Z5 F6000   ; lift Z relative to current position
          G1 H1 Z325 F1800 ; move Z up until the endstop is triggered
          G92 Z320         ; set Z position to axis maximum (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
          
          Phaedruxundefined 2 Replies Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator @Sbutterfield
            last edited by

            @Sbutterfield said in adding multiple z endstops:

            Error: in file macro line 62 column 33: M106: expected number after 'H'

            @Sbutterfield said in adding multiple z endstops:

            M106 P0 C"Part Cooling Fan" S0 H T45

            You probably want H-1 here for the part cooling fan and can remove the T45.

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • Phaedruxundefined Phaedrux moved this topic from General Discussion
            • Phaedruxundefined
              Phaedrux Moderator @Sbutterfield
              last edited by

              In your homeall.g

              @Sbutterfield said in adding multiple z endstops:

              G1 H2 Z325 F360 ; move Z up stopping at the endstop

              This is not a homing move. You need H1 instead of H2. H2 allows moving an axis that is not yet homed.

              @Sbutterfield said in adding multiple z endstops:

              G1 H1 Z325 F1800 ; move Z up until the endstop is triggered

              Your homez.g looks correct though.

              Z-Bot CoreXY Build | Thingiverse Profile

              Sbutterfieldundefined 1 Reply Last reply Reply Quote 0
              • Sbutterfieldundefined
                Sbutterfield @Phaedrux
                last edited by

                @Phaedrux I made the changes you suggested. thank you. Any idea on how to get both endstops to work? right now if I trigger the endstop that is recognized both motors stop.

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

                  What exactly are you trying to do?

                  Have you seen this?

                  https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_auto_levelling#axis-levelling-using-endstops

                  Z-Bot CoreXY Build | Thingiverse Profile

                  Sbutterfieldundefined 1 Reply Last reply Reply Quote 0
                  • Sbutterfieldundefined
                    Sbutterfield @Phaedrux
                    last edited by

                    @Phaedrux yeah I've seen that. I have a creativity elf printer with 2 lead screws that each have an endstop. I was trying to get both of the endstops to work. so far I have the both motors moving independently but only one endstop is recognized.

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

                      If the other endstop isn't triggering at all and doesn't change state when you check with M119 then double check the wiring.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      Sbutterfieldundefined 1 Reply Last reply Reply Quote 0
                      • Sbutterfieldundefined
                        Sbutterfield @Phaedrux
                        last edited by

                        @Phaedrux I'll check it out. thank you

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