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

    Endstop for additional axis - coupler for tool changer

    Scheduled Pinned Locked Moved
    Firmware installation
    4
    11
    559
    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.
    • MacNiteundefined
      MacNite
      last edited by MacNite

      Hey guys,

      I am currently setting up firmware for a custom toolchanger. I use a stepper motor to actuate the coupler and want to home that using an endstop.
      I really don't know how to Set this Up properly. I have the Stepper on the DUEX5 in Drive 5 / E2 moving the axis works (If I use G92 C0 before hand).
      The Endstop is connected to E2 endstop Input.

      How can I tie that Endstop to the Axis?
      Somehow it does Not Work...

      In DWC the Endstop for the coupler C is shown for E2 - which is correct. Somehow the values (current, acc, jerk etc) I defined for Drive 5 / E2 / coupler are used for E0 instead. The Values for E0 and E1 are used for E1 and E2....any suggestions what the problem is (see attached picture).

      ; Configuration file for Duet Maestro (firmware version 1.21)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Sun Apr 14 2019 11:30:53 GMT+0200 (MitteleuropƤische Sommerzeit)
      
      ; General preferences
      G90                                         ; Send absolute coordinates...
      M83                                         ; ...but relative extruder moves
      M667 S1                                     ; Select CoreXY mode
      
      ; Network
      M550 P"MacNite C1"                            ; Set machine name
      M552 S1                                       ; Enable network
      M586 P0 S1                                    ; Enable HTTP
      M586 P1 S0                                    ; Disable FTP
      M586 P2 S0                                    ; Disable Telnet
      
      ; Drives
      M569 P0 S0                                  ; Drive 0 x goes backwards
      M569 P1 S0                                  ; Drive 1 y goes backwards
      M569 P2 S0                                  ; Drive 2 z goes forwards
      M569 P3 S0                                  ; Drive 3 goes backwards
      M569 P5 S0				    ; Drive 5 for coupler goes backwards
      
      ; microsepping & motion settings
      M584 X0 Y1 Z2 E3:4 C5		            	; map drives 0 to 2 to x,y,z, 3 to E1, 5 to coupler
      M350 X16 Y16 Z16 E16:16 C8 I1                  	; Configure microstepping with interpolation
      M92 X80 Y80 Z1600 E415:415 C4096         	; Set steps per mm
      M84 S30                                     	; Set idle timeout
      M906 X1500 Y1500 Z1400 E1300:1300 C300 I30	; Set motor currents (mA) and motor idle factor in percent
      M566 X600 Y600 Z12 E300:300 C2       		; Set maximum instantaneous speed changes (mm/min)
      M203 X50000 Y50000 Z1000 E9000:9000 C100	; Set maximum speeds (mm/min)
      M201 X1200 Y1200 Z500 E900:900 C10     		; Set accelerations (mm/s^2)
      
      ; Axis Limits
      M208 X310 Y240 Z300 C20 S0                      ; Set axis maxima
      M208 X0 Y-40 Z0 C0 S1                          	; Set axis minima
      
      ; Endstops
      M574 Y2 S0                               	; Set active high endstops
      M574 X1 C2 S1					; Set active low endstops
      
      ; Open Door Switch
      ; M581 T2 Z S1 C1			    ; additional trigger #2 (calls trigger2.g), connected on z-endstop, trigger on  rising edge, only trigger while printing
      
      ; Z-Probe
      M574 Z1 S2				; Set endstops controlled by probe
      M558 P4 H5 F120 T6000 C2		; Set Z probe type to unmodulated and the dive height + speeds
      G31 P500 X0 Y35 Z0			; Set Z probe trigger value, offset and trigger height
      M557 X45:275 Y5:235 S45			; Define mesh grid
      
      ; Heaters
      M307 H0 B0 S1.00                            ; Disable bang-bang mode for the bed heater and set PWM limit
      M305 P0 T100000 B4138 R4700
      M143 H0 S120                                ; Set temperature limit for heater 0 to 120C
      M305 P1 T100000 B4725 C7.060000e-8          ; Set thermistor + ADC parameters for heater 1
      M143 H1 S280                                ; Set temperature limit for heater 1 to 280C
      M305 P2 T100000 B4725 C7.060000e-8          ; Set thermistor + ADC parameters for heater 1
      M143 H2 S280                                ; Set temperature limit for heater 1 to 280C
      M305 P103 T100000 B3950 X2 S"Chamber"       ; virtual heater 103 uses 100k NTC at Thermistor Input 3 (C)
      
      ; Fans
      M106 P0 S0 B1 I0 F100 H-1		       	; part cooling fan on fan0
      M106 P2 S1 B1 I0 F500 H1 T45                   	; coldend fan on fan2, standard on, Thermostatic control on at 45C associated to heater 1 (hotend1)
      ;M106 P3 S1 B1 I0 F500 H2 T45 		       	; coldend pump on fan3, standard on, Thermostatic control on at 45C associated to heater 2 (hotend2)
      ;M106 P1 S0 B1 I0 F100 H-1		       	; part cooling fan on fan1
      M106 P4 S0 I0 F500 H103 T55 L255 B30     	; fan 1 uses logical pin 2, controlled by heater 103	
      
      ; LED
      M106 P1 I0 S0 H-1 		    		; signal line for LED at fan1
      
      ; Tool 0
      M563 P0 S"E3D V6" D0 H1 F0                            ; tool 0 uses extruder 0,heater 1 and fan 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
      
      ; Tool 1
      M563 P1 S"BigBooster" D1 H2 F1                            ; tool 0 uses extruder 0,heater 1 and fan 0
      G10 P1 X0 Y0 Z0                             ; Set tool 0 axis offsets
      
      ; Filament Runout
      M591 D0 P1 C3 S1
      
      ; Automatic saving after power loss is not enabled
      
      ; Miscellaneous
      M501                                        ; Load saved parameters from non-volatile memory
      ;M572 D0 S0.05				    ; set pressure advance
      
      

      Unbenannt.png

      CorEssentials on GitHub | Instructables Profile | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • aidarundefined
        aidar
        last edited by

        Maybe this (from wiki) : M584 must come earlier in config.g than any M350 and M906 commands. If it creates new axes, it must also be earlier than any M92, M201, M203, M208, M350, M566, M574 , M667 and M669 commands.

        1 Reply Last reply Reply Quote 0
        • MacNiteundefined
          MacNite
          last edited by MacNite

          That is really interesting and must be an error within the wiki / documentation. I have multiple printers where M584 comes AFTER M667 S1. But I just tried it (moving M584 up, Moving M667 down) and it did not solve the problem.

          Thanks for the suggestion!

          In addition:
          I got these buttons in DWC for the C-Axis (connected to E2 on Duex5). If I use "G92 C0" I can move the axis / coupler in my defined limits between 0 and 4.

          1.PNG

          This is really strange. Because DWC shows that these limits are defined for the E0-Drive, not E2. If I half the steps/mm for the C-Axis (2096 instead of 4096) I can see that the coupler moves half the way - so it seems correct. Maybe the display in DWC is just wrong?

          But this won't help me....I still can't figure out how to tie the Endstop for C to the C-Axis.

          This is my homec.g file - but the coupler does not stop when the endstop is hit. If I hit the endstop manual and look in DWC it flags at E2, not at E0 where all the values seem to be "stored" (see picture).

          ; homec.g
          ; called to home the C axis (coupler  for tool changer
          ;
          ; generated by MacNite, 2019-10-13
          
          G91               	; relative positioning
          G1 S1 C2 F300 	; move quickly to X axis endstop and stop there (first pass)
          G1 C1 F1000       	; go back a few mm
          G1 S1 C2 F30  	; move slowly to X axis endstop once more (second pass)
          G90               	; absolute positioning
          
          
          

          2.png

          CorEssentials on GitHub | Instructables Profile | Thingiverse Profile

          1 Reply Last reply Reply Quote 0
          • aidarundefined
            aidar
            last edited by

            One more, probably stupid suggestion : try to change order in M584 command so, that E axis are last ones, like M584 X0 Y1 Z2 C5 E3:4

            1 Reply Last reply Reply Quote 0
            • MacNiteundefined
              MacNite
              last edited by

              I tried that already - because I looked in the E3D Toolchanger config and it is done there in this way šŸ˜„
              I also tried renaming the axis to U instead of C...did not help either.

              CorEssentials on GitHub | Instructables Profile | Thingiverse Profile

              1 Reply Last reply Reply Quote 0
              • smoki3undefined
                smoki3
                last edited by

                From my understanding this is why RRF 3.0 was introduced. There you are able to map any endstop pin to s independent axis or not?

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

                  @smoki3 said in Endstop for additional axis - coupler for tool changer:

                  From my understanding this is why RRF 3.0 was introduced. There you are able to map any endstop pin to s independent axis or not?

                  Correct. In RRF2, endstops are allocated to new axes in the order in which you create them. So if the only axis you create is the C axis, it will use the E0 endstop input, regardless of which motor you use to drive it.

                  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

                  MacNiteundefined 1 Reply Last reply Reply Quote 0
                  • MacNiteundefined
                    MacNite @dc42
                    last edited by

                    @dc42

                    That is really interesting and annoying at the same time.
                    So I could Just Setup everything with the C Axis on E0 (Drive + Endstop) and then use E1 to E7 for extruders with Filament Runout.

                    Greets
                    Max

                    CorEssentials on GitHub | Instructables Profile | Thingiverse Profile

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

                      @MacNite said in Endstop for additional axis - coupler for tool changer:

                      @dc42

                      That is really interesting and annoying at the same time.
                      So I could Just Setup everything with the C Axis on E0 (Drive + Endstop) and then use E1 to E7 for extruders with Filament Runout.

                      Greets
                      Max

                      You can connect the C drive motor to whatever output you want, but the C endstop switch must be connected to the E0 endstop input. Filament runout sensors can be connected to any spare endstop inputs (including Z if you use a Z prove to home Z).

                      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

                      1 Reply Last reply Reply Quote 0
                      • MacNiteundefined
                        MacNite
                        last edited by

                        Yes and no.

                        This make the setup "functional". But it will not use the wrong display of the Drive Configuration in DWC - Machine properties. The settings (see picture above) show the min, max instandDV etc. linked to E0, while they are in fact linked to drive E2 / C.

                        To bypass this error within DWC I have to switch my whole setup to use E0 for the C-Axis instead of E2.

                        Greets
                        Max

                        CorEssentials on GitHub | Instructables Profile | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • MacNiteundefined
                          MacNite
                          last edited by

                          Update:
                          I switched the coupler (C-axis) from E2 to E0 (Endstop + Stepper), Extruders are now E1, E2 and so on.

                          It works flawless in this way.

                          CorEssentials on GitHub | Instructables Profile | 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