Short version
I have had issue with my X2 motor skipping. I have replaced the motor and it made no difference.
I am asking for some help.
The problem is very easy to replicate so either;
a. There is an issue with the X2 driver code; or
b. I have a hardware issue with my driver boards; or
c. My old motor and the new replacement motor are failing / failed.
Demonstration of issue
-Loosen the belt driving X and X2 motors so the motor spin without moving the gantry.
-Run the test code
-Watch X2 start to fail about 7-10 cycles.
Can some people please run this code and see if they get a clean 100 movements without movement retries.
=======
Long version
I have been having issue with X axis with occasional movement retries. I have never been at a point where I had clear data - until now.
When FB is doing its usual watering, the errors randomly occur and it sort of fixes itself but then the movement was out (no longer calibrated requiring a rehome) . In response, I decided to write a soak test for X axis.
The code cycles through 100 movement on X axis over 300 mm just back and forth over, and over. This caused constant failures with the X2 motor, failing to engage or stopping movement early.
I obtained a new motor and the problem was still persistent - so now I am wondering, is the a hardware failure in my rig or is there a bug in the code for X motors. With my X2 motors, when I apply gentle pressure (a small pinch) to the driving gear, - when it is working properly I cannot stop it but when it fails, I can stop the motor with a small amount of pressure.
My request is can some people please run this code and see if they get a clean 100 movements without movement retries.
-- Define the number of cycles for the soak test
local cycles = 100
-- Perform the soak test for the specified number of cycles
for i = 1, cycles do
move_absolute(500, 0, 0)
move_absolute(800, 0, 0)
-- Report the current cycle count
toast("Completed cycle " .. i .. " of " .. cycles)
end
-- Move to the final position 0,0,0
move_absolute(0, 0, 0)
-- Ask the user to verify there are no movement errors and the head is at 0,0,0
send_message("info", "Please verify there are no movement errors in the log and visually confirm the head is at 0,0,0.", "toast")