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

    2 independent Z motors and limit switches on Zmax

    Scheduled Pinned Locked Moved
    General Discussion
    3
    9
    432
    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.
    • gdefrancundefined
      gdefranc
      last edited by

      hello everybody,
      I'm upgrading to fix the two Z axis threaded guides using for the Right motor Z1 and for the Left motor E1 and I'll use the M584 command like this:
      M584 X0 Y1 Z2:4 U4 E3 P3 ; Driver 0 For X, 1 for Y, Z=2:4 U=4, Extruder 3
      I wanted to insert two proximity sensors, on Z-max to align the motors, that I have in the company, these are Wenglor.
      https://www.wenglor.com/product-world/products/produktdetail/?no_cache=1&tx_wsshoploader_pi1[artikel]=IB040BM46VB8&cHash=0e56c9d600bb158fba5c601b478f659d

      Does anyone know if I can use them?

      Who can help me in the configuration?

      1 Reply Last reply Reply Quote 0
      • gdefrancundefined
        gdefranc
        last edited by

        I tested the sensor.
        powered at 24 V.
        at open circuit it signals me 0.48V at closed circuit 0.78V.

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

          First off You don't need a U axis when using RRF3. And you should be using 3.2. The Z axis would be configured to use both drivers and the endstops would both be added to the Z axis endstop. No need for a U axis anymore.

          https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_In_RepRapFirmware_Num_3

          I think that inductive sensor should work.

          https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_NPN_output_normally_open_inductive_or_capacitive_sensor

          Instead of connecting to the zprobe connector you could use one of the endstop pins.

          Z-Bot CoreXY Build | Thingiverse Profile

          gdefrancundefined 1 Reply Last reply Reply Quote 0
          • gdefrancundefined
            gdefranc @Phaedrux
            last edited by gdefranc

            @Phaedrux
            Ho installato la 3.2
            Ok I also have a bltouch to level the bed.
            My concern is the two screws on the motors.
            I don't know if I need to work on them mechanically first since they are very wobbly.

            Obviously it is a Tronxy x5sa!

            I think that solving the mechanical problems first, strengthening the two rods so that they do not dance anymore, is the best solution.

            What do you think?

            These are my configuration files:

            Config.g

            ; Configuration file for Duet WiFi (firmware version 3)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v3.2.0 on Wed Dec 30 2020 11:26:33 GMT+0100 (Central European Standard Time)
            ; General preferences
            G90                                            ; send absolute coordinates...
            M83                                            ; ...but relative extruder moves
            M550 P"DFFM 3D"                             ; 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 S1                                 ; ENABLE Telnet
            
            ; Drives
            M569 P0 S0 ; physical drive 0 goes backwards
            M569 P1 S0 ; physical drive 1 goes backwards
            M569 P2 S1 ; physical drive 2 goes forwards Z1
            M569 P3 S0 ; physical drive 3 goes backwards
            M569 P4 S1 ; physical drive 3 goes forwards Z2
            
            ; DUAL Z
            M584 X0 Y1 Z2:4 E3 P3 ; set drive mapping ;M584 X0 Y1 Z2 E3
            M671 X-90:490 Y200:200 S4 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
            
            ;M584 X0 Y1 Z2 E3                               ; set drive mapping
            M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
            M92 X80.00 Y80.00 Z560.00 E412.4137           ; set steps per mm
            ;M566 X1000.00 Y1000.00 Z800.00 E120.00         ; set maximum instantaneous speed changes (mm/min)
            ;M203 X18000.00 Y18000.00 Z900.00 E1200.00      ; set maximum speeds (mm/min) 1701ore 9:28
            ;M201 X3000.00 Y3000.00 Z1000.00 E250.00        ; set accelerations (mm/s^2)
            ;M906 X1300.00 Y1300.00 Z1300.00 E1300.00 I35                    ; set motor currents (mA) and motor idle factor in per cent
            ;M84 S30                                        ; Set idle timeout
            ; 1701ore 9:28
            M566 X600 Y600 Z12 E120                                                           ; Set maximum instantaneous speed changes (mm/min)
            M203 X18000 Y18000 Z180 E1500                                                     ; Set maximum speeds (mm/min)
            M201 X3000 Y3000 Z100 E10000                                                      ; Set accelerations (mm/s^2)
            M906 X1000 Y1000 Z1000 E1100 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 X325 Y325 Z400 S0                             ; Set axis maxima
            ;M671 X10:290:290:10 Y290:290:10:10 P0.3; point1 (10,290), point2 (290,290), point3 (290,10), point4 (10,10)
            ; Endstops
            M574 X1 S1 P"!xstop" ; configure active-high endstop for low end on X via pin xstop
            M574 Y1 S1 P"!ystop" ; configure active-high endstop for low end on Y via pin ystop
            M574 Z1 S2 ; configure Z-probe endstop for low end on Z
            ; BLTouch - Heaters
            M307 H7 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5 on the Duex board.
            ; Z-Probe
            M950 S0 C"exp.heater7"                         ; create servo pin 0 for BLTouch
            M558 P9 C"^zprobe.in" H5 F100 T6000 A10 R0.5 S0.003 B0          ; set Z probe type to bltouch and the dive height + speeds
            ;M558 P9 C"^zprobe.in" H5 F120 T6000            ; set Z probe type to bltouch and the dive height + speeds
            ;M558 H30                                       ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
            G31 P25 X-45 Y-4 Z2.977
            ;G31 P25 X-45 Y-4 Z3.200 ; set Z probe trigger value, offset and trigger height piano magnetico Tronxy
            ;G31 P25 X-45 Y-4 Z2.804
            ;G31 P25 X-45 Y-4 Z3.086 ; Piano vetro
            M557 X10:300 Y20:300 S20
            ;M557 X70:330 Y40:330 S14                       ; define mesh grid
            ; Heaters
            M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; 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
            M303 H0 S70
            ;M307 H0 B1 S1.00                               ; enable 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 B4092  ; 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 S280                                   ; 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 T45                              ; set fan 0 value. Thermostatic control is turned on
            M950 F1 C"fan1" Q500                           ; create fan 1 on pin fan1 and set its frequency
            M106 P1 S1 H-1 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    
            ; Automatic power saving
            M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
            ; Custom settings are not defined
            T0
            M116
            
            M501
            

            homex.g

            ; homex.g
            ; called to home the X axis
            ;
            G91               ; relative positioning
            G1 H2 Z5 F6000    ; lift Z relative to current position
            G1 H1 X-335 F1800 ; move quickly to X axis endstop and stop there (first pass)
            G1 H2 X5 F6000    ; go back a few mm
            G1 H1 X-335 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
            ;
            
            G91               ; relative positioning
            G1 H2 Z20 F6000    ; lift Z relative to current position
            G1 H1 Y-335 F1800 ; move quickly to Y axis endstop and stop there (first pass)
            G1 H2 Y5 F6000    ; go back a few mm
            G1 H1 Y-335 F360  ; move slowly to Y axis endstop once more (second pass)
            G1 H2 Z-5 F6000   ; lower Z again
            G90               ; absolute positioning
            

            homez.g

            ; homez.g
            ; called to home the Z axis
            ;
            ; Homez.g
            G91                ; Posizione relativa
            G1 Z10 F6000 H2    ; Alzo di 10 mm
            G90                ; Posizione assoluta 
            G1 X165 Y165 F6000 ; Posiziono la sonda al centro del piatto 
            G30                ; Sondo il piatto con il BLTouch ; Sondo il piatto con il BLTouch
            

            homeall.g

            ; homeall.g
            ; called to home all axes
            ;
            ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 02 2020 20:16:54 GMT+0200 (Ora legale dell’Europa centrale)
            G91               ; relative positioning
            G1 H2 Z5 F6000    ; lift Z relative to current position
            G1 H1 X-335 F1800 ; move quickly to X axis endstop and stop there (first pass)
            G1 H2 X5 F6000    ; go back a few mm
            G1 H1 X-335 F360  ; move slowly to X axis endstop once more (second pass)
            G1 H2 Z-5 F6000   ; lower Z again
            
            
            G1 H2 Z5 F6000    ; lift Z relative to current position
            G1 H1 Y-335 F1800 ; move quickly to Y axis endstop and stop there (first pass)
            G1 H2 Y5 F6000    ; go back a few mm
            G1 H1 Y-335 F360  ; move slowly to Y axis endstop once more (second pass)
            G1 H2 Z-5 F6000   ; lower Z again
            G90               ; absolute positioning
            
            
            G1 Z10 F6000 H2    ; Alzo di 10 mm
            
            G1 X165 Y165 F6000 ; Posiziono la sonda al centro del piatto 
            G30                ; Sondo il piatto con il BLTouch
            

            config-override.g

            ; config-override.g file generated in response to M500 at 2021-01-12 21:44
            ; This is a system-generated file - do not edit
            ; Heater model parameters
            M307 H0 R0.264 C620.819:620.819 D4.77 S1.00 V24.1 B0
            M307 H1 R3.329 C183.057:183.057 D10.15 S1.00 V24.3 B0
            ; Workplace coordinates
            G10 L2 P1 X0.00 Y0.00 Z0.00
            G10 L2 P2 X0.00 Y0.00 Z0.00
            G10 L2 P3 X0.00 Y0.00 Z0.00
            G10 L2 P4 X0.00 Y0.00 Z0.00
            G10 L2 P5 X0.00 Y0.00 Z0.00
            G10 L2 P6 X0.00 Y0.00 Z0.00
            G10 L2 P7 X0.00 Y0.00 Z0.00
            G10 L2 P8 X0.00 Y0.00 Z0.00
            G10 L2 P9 X0.00 Y0.00 Z0.00
            M486 S-1
            
            M122
            === Diagnostics ===
            RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2 running on Duet WiFi 1.02 or later
            Board ID: 08DGM-917NK-F23T0-6J1FG-3SN6T-1H8WH
            Used output buffers: 3 of 24 (11 max)
            === RTOS ===
            Static ram: 23460
            Dynamic ram: 73628 of which 228 recycled
            Never used RAM 14764, free system stack 111 words
            Tasks: NETWORK(ready,183) HEAT(blocked,295) MAIN(running,452) IDLE(ready,19)
            Owned mutexes: WiFi(NETWORK) HTTP(MAIN)
            === Platform ===
            Last reset 00:39:11 ago, cause: software
            Last software reset at 2021-01-29 20:18, reason: User, GCodes spinning, available RAM 15148, slot 0
            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 33.0, current 33.5, max 35.0
            Supply voltage: min 24.3, current 24.4, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
            Driver 0: position 6320, standstill, SG min/max 0/217
            Driver 1: position 2480, standstill, SG min/max 0/191
            Driver 2: position 4467, standstill, SG min/max not available
            Driver 3: position 0, standstill, SG min/max not available
            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-01-29 20:57:52
            Cache data hit count 2885279093
            Slowest loop: 10.30ms; fastest: 0.17ms
            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 1.4ms, write time 0.0ms, max retries 0
            === Move ===
            DMs created 83, maxWait 223563ms, bed compensation in use: none, comp offset 0.000
            === MainDDARing ===
            Scheduled moves 105, completed moves 105, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], 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 = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
            Heater 1 is on, I-accum = 0.0
            === GCodes ===
            Segments left: 0
            Movement lock held by null
            HTTP is ready with "M122 " 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: 39.32ms; fastest: 0.00ms
            Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
            HTTP sessions: 1 of 8
            - WiFi -
            Network state is active
            WiFi module is connected to access point 
            Failed messages: pending 0, notready 0, noresp 0
            WiFi firmware version 1.25
            WiFi MAC address 84:0d:8e:b2:f6:33
            WiFi Vcc 3.46, reset reason Turned on by main processor
            WiFi flash size 4194304, free heap 24048
            WiFi IP address 192.168.1.67
            WiFi signal strength -51dBm, mode 802.11n, reconnections 0, sleep mode modem
            Clock register 00002002
            Socket states: 0 2 0 0 0 0 0 0
            

            M98 P "config.g"

            	M98 P"config.g"
            HTTP is enabled on port 80
            FTP is disabled
            TELNET is enabled on port 23
            Error: Heater 7 not found
            Error: heater 0 cannot be auto tuned while it is disabled
            Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 634C
            
            Phaedruxundefined 1 Reply Last reply Reply Quote 0
            • Phaedruxundefined
              Phaedrux Moderator @gdefranc
              last edited by

              @gdefranc said in 2 independent Z motors and limit switches on Zmax:

              M574 Z1 S2 ; configure Z-probe endstop for low end on Z

              To be able to use endstops for Z you would need to define them here like they are for the other axis.

              Z-Bot CoreXY Build | Thingiverse Profile

              gdefrancundefined 1 Reply Last reply Reply Quote 0
              • gdefrancundefined
                gdefranc @Phaedrux
                last edited by

                Thanks @Phaedrux
                For the BL-Touch I used pin H7, for the 2 Z-max endstops can I use H4 and H5?
                How can I specify them in the M574 command?

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

                  You can learn more about how pin names are used here as well as a list of available pins.

                  https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_Pin_names

                  To make things easy for the endstops would you be able to use the actual endstop inputs? e0_stop e1_stop Z_stop?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 0
                  • mr.lizardundefined
                    mr.lizard
                    last edited by mr.lizard

                    Hello, I have 2 motors connected in Z (Z;E1) and connected to 2 drivers, but they drive at different speeds, it seems that they have different microsteps, what could be the problem?

                    ; Drives
                    M569 P0 S1 D3 H25 V25                          ; physical drive 0 goes forwards   X
                    M569 P1 S1 D3 H25 V25                          ; physical drive 1 goes forwards   Y
                    M569 P2 S0 D3 H25 V25                          ; physical drive 2 goes backwards  Z1
                    M569 P3 S0 D3 H25 V25                          ; physical drive 3 goes backwards  E
                    M569 P4 S0 D3 H25 V25                          ; physical drive 4 goes backwards  Z2
                    
                    M584 X0 Y1 Z2:4 E3 						       ; set drive mapping
                    ; M671 X-20:220 Y0:0 S0.5 					   ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
                    M208 X-5:205 Y0:200 						   ; X carriage moves from -5 to 205, Y bed goes from 0 to 200
                    
                    M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
                    M92 X100.00 Y100.00 Z400.00 E690.00            ; set steps per mm
                    M566 X900.00 Y900.00 Z60.00 E600.00            ; set maximum instantaneous speed changes (mm/min)
                    M203 X6000.00 Y6000.00 Z600.00 E7200.00        ; set maximum speeds (mm/min)
                    M201 X2000.00 Y2000.00 Z100.00 E800.00         ; set accelerations (mm/s^2)
                    M906 X1000 Y1000 Z800 E850 I30                 ; set motor currents (mA) and motor idle factor in per cent
                    M572 D0 S0.02 								   ;pressure advance - you may need to finetune it
                    M207 S1.5 F7200 Z0.2 						   ;firmware retraction
                    M84 S30                                        ; Set idle timeout
                    
                    
                    Phaedruxundefined 1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator @mr.lizard
                      last edited by

                      @mr-lizard I don't see anything in your config to cause that. I suggest you start a new thread though.

                      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