I was having issues with the z-axis losing registration while milling a part. Finally tracked it down to a spot on the belt that was worn. When that part of the belt reached the drive gear it would slip. I removed the z-axis plate and moved the belt around to get that worn part away from the drive wheel. When I re-assembled it I over tightened the belt and it snapped almost immediately right at that worn point as soon as I moved the z-axis. Unfortunately Carbide does not sell the belts separately. I found them on Amazon. I could have gotten 2 for $15 plus shipping or 10 for $25 with Prime free shipping so going for the set of 10. I guess I’ll have a ton of spares. If you’re looking for spares, the z-axis belt appears to be a 520-2GT-6. At least that’s what is marked on the belt. I hope these fit.
I suspect the issue started with the z-axis being driven to the top physical limits but the stepper continued to run. That was occurring after setting the z origin with a probe. The g-code switches the units from mm to inches and when I raised the bit I absently hit up 3 or 4 times which is fine if the units is mm but way too much when it’s moving an inch at a time. What would fix this is if the firmware would notice that the axis is already against the limit and stop the stepper from any further upward movement. Maybe even back it off a couple of mm. The same could be done for the x and y axis. A step further would be to add limit switches to the other ends of the x and y axis to stop movement in those directions as well if you hit the physical limits. Not much that you can do about the down side of the z-axis since your bit would likely hit something before the plate got the bottom of the z axis. They would probably need something like a closed loop servo to handle that.