I am trying to setup crash detection to determine if the printer has collided with a print or anything else to stop it and prevent significant damage to the printer.
Using the M915 command I have been changing the S parameter to calibrate the stall detection.
I am currently running S5 on both X and Y axes but it will not detect a collision with a print. If I lower the S value at all the print stalls before it even starts.
Is this the right process to calibrate this? What other values should I change and how? The H parameter? Acceleration and Jerk?
The H parameter determines the minimum full steps/second at which stall detection is activated. So you can't detect collisions at speeds that have a lower number of full steps/second.
If you are running at a high enough speed, and collisions are not detected, you will need to reduce the M915 S parameter. If that causes false stall reports, try reducing acceleration. If that fixes it except when you print corners, try reducing jerk.
Collision detection is hard to get working well, and impossible on a delta in my experience.
I lowered the acceleration significantly (from 500mm/s^2 to 100mm/s^2). I was then able to get the print to start at S1 and to detect a collision. I changed the R2 to 3 and set up rehome.g. Next, I raised the S value by 1 until it no longer detected a stall. The highest S value to detect a stall was S7. Surprising since S5 did not detect a stall earlier. I then returned the acceleration to 500mm/s^2 and was shocked to see that I did not get a false stall report and that the collision was still detected. However, when I changed R back to 2, it no longer detected the collision. Should the R value affect detection in this way? Also, when R is set to 3 is there a way to keep it from returning to the location of the collision? I was able to rehome X and Y but when I try to pause or stop it after rehoming the print head still returns to the location of the crash.
The R value should not affect detection, it should only affect what happens when a stall is detected.
When R is set to 2 should it stop as soon as it detects a crash or does it finish the current move? After more testing I believe that it detects the crash the same regardless of the R value but when R is 2 the printer keeps moving prompting me to shut off the printer to prevent damage. Since the gcode I have been using to test crash detection tells the printer to move far past the location of the crash, I need it to stop as soon as the crash is detected.
I was able to make crash detection work as I intended by using R3 to rehome and using M291 to inform the web interface of the crash and pause the printer until I am able to monitor the restart of the print.