@dc42 I experimented some more and came up with testing routine. Trying to set StealthChop to SpreadCycle at low speed. No luck... Or maybe at 10mm/s is all I can get?
Accel/jerk are halved in comparison to normal operation.
Each testing sequence consists of:
Configuration
Homing with tuning
Three sets of moves of Y and U separately
Each set has different speed - 10, 50 and 100mm/s
It runs five tests with different configuration each:
StealthChop to SpreadCycle with switch at 10.4 mm/s
StealthChop to SpreadCycle with switch at 52.1 mm/s
StealthChop to SpreadCycle with switch at 93.8 mm/s
Pure SpreadCycle
Pure StealthChop
I've recorded a routine with first 3 sequences. Every time movement is above switch speed then "clack" happens. Its visibly less noticeable at low setting, but is still there. As it's increased then it gets much worse.
If you could look if I did homing/tuning correctly, please.
I'll proceed to experimenting with different speeds. Previously when I picked different values for M569 and M915 I've got some improvement - clacking was getting less and less visible.
Thanks for your time and input.
Video (last two removed for brevity):
https://youtu.be/yojaNXBJG9s
Macros:
stealthChop.home.g
; Homing and tuning
M18 X U Y Z ; Disable motors
M17 X U Y Z ; Enable motors
G4 P100 ; Wait
G91 ; Relative positioning
G1 Z5 F1000 H2 ; Lift Z relative to current position
G1 X-999 U999 Y-999 F3000 H1 ; Move and Tune
G1 X5 U-5 Y5 F6000 H2 ; Go back a few mm
G1 X-999 U999 Y-999 F360 H1 ; Move again
G1 Z-5 F1000 H2 ; Return Z to previous height
G90
; BLTouch preperation
M280 P0 S160 ; Precautionary alarm release
M280 P0 S90 ; Ensure the pin is raised
; Home Z using the Z-Probe
G91 ; Relative positioning
G1 Z10 F1000 H2 ; Lift Z relative to current position
G90 ; Absolute positioning
G1 X-130 Y-115 F6000 ; Move T0 to probing point, including probe offset
G30 ; Probe the bed and set Z to the probe offset
G1 Z10 F1000 ; Raise Z off the bed
stealthChop.test.g
; Initial settings
var distance = 30 ;mm
var speed_high = 100 ;mm/s
var speed_high_min = 60 * var.speed_high;
var speed_med = 50 ;mm/s
var speed_med_min = 60 * var.speed_med;
var speed_low = 10 ;mm/s
var speed_low_min = 60 * var.speed_low;
G1 X-999 U0 Y0 F3000 ; Prepare for test
G4 P1000
; Test Low Speed
while iterations < 3
G1 U{var.distance/4} F{var.speed_low_min}
G1 U{-(var.distance/4)} F{var.speed_low_min}
while iterations < 3
G1 Y{var.distance/4} F{var.speed_low_min}
G1 Y{-(var.distance/4)} F{var.speed_low_min}
; Test Medium Speed
while iterations < 3
G1 U{var.distance/2} F{var.speed_med_min}
G1 U{-(var.distance/2)} F{var.speed_med_min}
while iterations < 3
G1 Y{var.distance/2} F{var.speed_med_min}
G1 Y{-(var.distance/2)} F{var.speed_med_min}
; Test High Speed
while iterations < 3
G1 U{var.distance} F{var.speed_high_min}
G1 U{-(var.distance)} F{var.speed_high_min}
while iterations < 3
G1 Y{var.distance} F{var.speed_high_min}
G1 Y{-(var.distance)} F{var.speed_high_min}
stealthChop.spreadCycle.test.g
; RR VCast IDEX (Cartesian)
; Duet 3 6HC TMC5160
; Testing U and Y
; XUY using 2.5A/3.1V LDO-42STH47-2504AC
; https://www.ratrig.com/nema-17-stepper-motor.html
; 1. Load StealthChop to SpreadCycle settings
; 2. Tune drivers
; 3. Run test for StealthChop to SpreadCycle
; 4. Run test for StealthChop only
; 5. Run test for SpreadCycle only
G4 S5 ; Time to start recording :)
; Accel/Jerk are halved in comparison to normal operation
M906 X2125 U2125 Y2125 Z1600:1600 E350:350 I50 ; set currents
M566 X350 U350 Y350 Z60:60 E300:300 ; set maximum instantaneous speed changes (mm/min)
M203 X6000 U6000 Y6000 Z1800:1800 E3600:3600 ; set maximum speeds (mm/min)
M201 X400 U400 Y450 Z100:100 E600:600 ; set accelerations (mm/s^2)
M204 P400 T400
;------------------------------------
;---- StealthChop to SpreadCycle ----
;------------------------------------
echo "Enable StealthChop to SpreadCycle settings (Switch Speed - 10.4 mm/s)"
; Reset Coolstep
M915 P0.0:0.1:0.2:0.3:0.4:0.5 T1 ; disable coolstep
M915 P20.0:21.0 T1 ; disable coolstep
; Set U
M569 P0.1 S0 D3 V900 H900
M915 P0.1 T900
; Set Y
M569 P0.2 S0 D3 V900 H900
M915 P0.2 T900
; Homing and tuning
M98 p"/macros/stealthChop.home.g"
M98 p"/macros/stealthChop.test.g"
echo "Enable StealthChop to SpreadCycle settings (Switch speed - 52.1 mm/s)"
; Reset Coolstep
M915 P0.0:0.1:0.2:0.3:0.4:0.5 T1 ; disable coolstep
M915 P20.0:21.0 T1 ; disable coolstep
; Set U
M569 P0.1 S0 D3 V180 H180
M915 P0.1 T180
; Set Y
M569 P0.2 S0 D3 V180 H180
M915 P0.2 T180
; Homing and tuning
M98 p"/macros/stealthChop.home.g"
M98 p"/macros/stealthChop.test.g"
echo "Enable StealthChop to SpreadCycle settings (Switch speed - 93.8 mm/s)"
; Reset Coolstep
M915 P0.0:0.1:0.2:0.3:0.4:0.5 T1 ; disable coolstep
M915 P20.0:21.0 T1 ; disable coolstep
; Set U
M569 P0.1 S0 D3 V100 H100
M915 P0.1 T100
; Set Y
M569 P0.2 S0 D3 V100 H100
M915 P0.2 T100
; Homing and tuning
M98 p"/macros/stealthChop.home.g"
M98 p"/macros/stealthChop.test.g"
;------------------------------------
;---- SpreadCycle only ----
;------------------------------------
echo "Enable SpreadCycle settings"
; Reset Coolstep
M915 P0.0:0.1:0.2:0.3:0.4:0.5 T1 ; disable coolstep
M915 P20.0:21.0 T1 ; disable coolstep
; Set U (Factory values)
M569 P0.1 S0 D2 H200
M915 P0.1 T2000
; Set Y
M569 P0.2 S0 D2 H200
M915 P0.2 T2000
; Homing and tuning
M98 p"/macros/stealthChop.home.g"
M98 p"/macros/stealthChop.test.g"
;------------------------------------
;---- StealthChop only ----
;------------------------------------
echo "Enable StealthChop settings"
; Reset Coolstep
M915 P0.0:0.1:0.2:0.3:0.4:0.5 T1 ; disable coolstep
M915 P20.0:21.0 T1 ; disable coolstep
; Set U (Above 100mm/s)
M569 P0.1 S0 D3 V50 H50
M915 P0.1 T50
; Set Y
M569 P0.2 S0 D3 V50 H50
M915 P0.2 T50
; Homing and tuning
M98 p"/macros/stealthChop.home.g"
M98 p"/macros/stealthChop.test.g"