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
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.
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