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

    Something limiting max speed using external drivers and servos

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    9
    288
    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.
    • Darby Coxundefined
      Darby Cox
      last edited by Darby Cox

      Hello,
      I've been setting up a fully custom pick & place machine at my work and everything is working except for the max speed.
      I've seen the other posts on the forum about other peoples max speed problems and have tried changing those parameters like M569 T minimum driver step pulse, M92 steps per mm, M203 max speed. I was testing using a macro that runs the gantry from one side of the machine to the other and then increasing feedrate every pass and finding the top speed was much lower that the requested speed by the end of the test(maxing out at 1897mm/s)

      Since the machine is using servo drives, I am able to see the velocity over time and create a plot showing the velocity hitting a limit( about 1300 rpm)
      The orange line is the velocity over time
      Duet Scope A=16000.png
      I know its not the driver that's the problem because I am able to run a test on the servo drive software that shows its getting to full speed no problem.
      Servo Scope.png
      The only way I've gotten the duet board to show a higher top speed has been to increase the acceleration.
      1897 mm/s A=8000
      2683 mm/s A=16000
      3000 mm/s A=20000
      But the strange part is when I look at the graph with the different accelerations, I don't see a change in the max speed and this is data directly off the servo motor.

      Here is my config

      ;***Network Settings Ethernet Version only
      if {network.interfaces[0].type = "ethernet"}
      	M552   ; Set IP address
      else
      	M552 S1
      M586 P0 S1 R80              ; enable HTTP
      M586 P1 S0                  ; disable FTP
      M586 P2 S0                  ; disable Telnet
      ;***Name Controller
      M550 P"Accretech SBS PnP v3" 	; Set machine name
      
      ;***General preferences
      G90		                    ; absolute coordinates
      M83		                    ; relative extruder moves
      M669 K0                     ; select Cartesian Kinematics mode
      
      ;***Axis/Drives
      ;-M569: Set motor driver direction, enable polarity, mode and step pulse timing
      M569 P0 S1 D3 V40   	        ; Z 
      M569 P1 S1 D3 V40               ; U
      M569 P2 S0 D3 V40   	        ; V
      M569 P3 S1 D3 V40   	        ; W
      M569 P5 S1 T2.5:2.5:5:0         ; X
      M569 P6 S1 T2.5:2.5:5:0         ; Y
      
      ;***M584 Set drive mapping 
      M584 X5 R0	    ; X LIN R0 = LINEAR
      M584 Y6 R0  	; Y LIN R0 = LINEAR
      M584 Z0 R0	    ; Z LIN R0 = LINEAR
      M584 U1 R1   	; A ROT R1 = ROTATION
      M584 V2 R0      ; V LIN R0 = LINEAR
      M584 W3 R0      ; W LIN R0 = LINEAR
       
      ;***Motor Settings
      M350 Z32 U64 V32 W32 I1				                	    ; Configure microstepping with interpolation
      M92  X320 Y312.5 Z160.00 U35.5 V160.00 W160.00	          	; Set steps per mm 
      M566 X1000 Y300 Z100.00 U1000 V100.00 W100.00		        ; Set maximum instantaneous speed changes (mm/min)
      M203 X10000000.00 Y10000000.00 Z18000 U20000 V18000 W18000  ; Set maximum speeds (mm/min)
      M201 X20000 Y16000 Z1000.0 U5000 V1000.0 W1000.0  	        ; Set accelerations (mm/s^2)
      M906 Z2000 U800 I30 V2000 W2000		                        ; Set motor currents (mA) and motor idle factor in per cent
      ;M84 S30				                                	; Set idle timeout
      
      ;***Axis Limits
      M208 X0 Y0 Z0 S1     	    ; Set X/Y/Z axis minima 
      M208 X470 Y575 Z121 S0 	    ; Set X/Y/Z axis maxima
      M208 U-20000:20000          ; Set U axis minima/maxima
      M208 V-20000:20000          ; Set V axis minima/maxima
      M208 W-20000:20000          ; Set W axis minima/maxima
      ;***Endstops
      M574 X1 S1 P"!io1.in"	                    
      M574 Y2 S1 p"!io2.in"                        
      M574 Z1 S1 P"!io0.in"
      M574 U0
      
      ;***Outputs
      M950 F0 C"out0" Q20000  ;UV light Actuator
      M950 F1 C"out1" Q20000	;Nozzle Pump Actuator 
      M950 F2 C"out2" Q20000	;Glue Pump Actuator
      M950 F3 C"out3" Q20000	;LED Bottom Actuator
      M950 F4 C"out4" Q20000	;LED Top Actuator
      M950 F5 C"out5" Q20000	;Solenoid Valve Actuator
      M950 F6 C"out6" Q20000	;Glue Dispenser
      M950 J2 C"^io6.in"      ;exp.feed_stop
      M950 J3 C"^io5.in"      ;belt_stop
      M581 P2 S1 T2 R0 						 ;Feeder stop
      ;***Analog Sensors for Nozzle pressure
      ;M308 S0 P"temp0" Y"linear-analog" A"Pressure_1" F0 B0 C4095
      ;M308 S1 P"temp1" Y"linear-analog" A"Pressure_2" F0 B0 C4095
      
      ; init print time logging
      if !exists(global.runtime)
        M98 P"runtime.g"
      
      ; init glue count logging
      if !exists(global.gluecount)
        M98 P"gluecount.g"
      
      
      

      The machine is using stepper online T6 400w servos
      Any thoughts or help would be greatly appreciated

      jay_s_ukundefined oliofundefined 2 Replies Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @Darby Cox
        last edited by

        @Darby-Cox what mainboard are you using?

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        Darby Coxundefined 1 Reply Last reply Reply Quote 0
        • Darby Coxundefined
          Darby Cox @jay_s_uk
          last edited by

          @jay_s_uk duet mini 5+

          gloomyandyundefined 1 Reply Last reply Reply Quote 1
          • gloomyandyundefined
            gloomyandy @Darby Cox
            last edited by

            @Darby-Cox I may have this wrong but 1897mm/s with 320 steps/mm is 607040steps/s that seems a very high step rate. Do the servos allow you to adjust the microstepping so that you can reduce the steps/mm value (and hence the required step rate)?

            Darby Coxundefined 1 Reply Last reply Reply Quote 0
            • Darby Coxundefined
              Darby Cox @gloomyandy
              last edited by

              @gloomyandy yes you can. the default for the drive is 2500 p/rev and I've tried bringing that down with nothing changing

              1 Reply Last reply Reply Quote 0
              • Darby Coxundefined
                Darby Cox
                last edited by

                After further testing I think the machine is just maxing out the speed of the duet 3 mini 5+, I might try the faster clock speed of the duet 3 mainboard 6HC or 6XD.

                1 Reply Last reply Reply Quote 0
                • oliofundefined
                  oliof @Darby Cox
                  last edited by

                  @Darby-Cox somewhat offtopic, would you be willing to share your gantry runner macro?

                  <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                  Darby Coxundefined 1 Reply Last reply Reply Quote 0
                  • Darby Coxundefined
                    Darby Cox @oliof
                    last edited by

                    @oliof

                    G1 X20 Y505.0 F10000
                    ;G1 X420 F10000
                    ;G1 X20 F10000
                    G1 Y55 F40000
                    G1 Y505 F40000
                    G1 Y55 F80000
                    G1 Y505 F80000
                    G1 Y55 F120000
                    G1 Y505 F120000
                    G1 Y55 F160000
                    G1 Y505 F160000
                    G1 Y55 F180000
                    G1 Y505 F180000
                    

                    I have modified the feedrate over time but has the same principle

                    dc42undefined 1 Reply Last reply Reply Quote 1
                    • dc42undefined
                      dc42 administrators @Darby Cox
                      last edited by

                      @Darby-Cox this is a common issue when using external drivers. Such drivers have a limit to the speed at which they accept pulses. You have the M569 T parameters set at 2.5 microseconds high time and 2.5 microseconds low time, so the maximum pulse rate is 200kHz. You also have a high steps/mm of 320. So the maximum rate at which the belt can move is 200000/320 which is 625 mm/sec. On a CoreXY machine this will be the maximum diagonal speed. The maximum speeds of X and Y moves will be double this.

                      To get higher speeds you will either need to reduce the M569 T parameters if your servo drives can handle a higher pulse rate, or reduce the steps/mm by reducing the configured steps/rev of your servo drives or by using larger radius motor pulleys.

                      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
                      • First post
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA