I spent the last several days adding a brake to the Z-axis of my CNC router. This was needed because once the servo is disabled or power is cut, the weight of the spindle causes it to fall, risking crashing the tool or spindle into the bed or frame. I’ll try to document that in a later post. But after I got it set up, I noticed the power supply would click and an amber LED would light briefly when driving the Z-axis downward. I later learned this was due to regenerative current, and the behavior is acceptable. But that was after pursuing binding issues.

After ruling out the brake dragging, I discovered there was something wrong with the ballscrew assembly, causing it to bind as it went downward. I removed the spindle motor, which is quite heavy, and checked it again. Now the binding was very apparent.

Here I’ve disassembled most of the z-axis assembly.

Disassembled, motion is very smooth. It still seems balls are only riding in one of the helices, but it’s mostly smooth (I can feel a bit of roughness, but there’s no binding). The end bearing was getting annoying, so I removed it, and suddenly I noticed that it binds! I also noticed that it has set screws that were fully backed out. I realized it’s not a bearing, but I think it’s intended to bind downward motion, perhaps to act as a z-brake. But it’s binding too much, and now I don’t really need it.

This is the device that binds:

So, the next step is to contact AvidCNC to ask them about my options. I might be able to disassemble the device enough to use it as an extension into the bottom bearing, but that’s a bit of a hack.

Reducing Binding

I’ve heard back from AvidCNC. The part that’s binding they call a “drag brake.” It’s supposed to have about 0.15 N•m of friction in the counterclockwise (downward) direction to help balance the Z-axis load. Because I have a Z-axis brake, they said I can operate without it. This leaves the far end of the ball screw unsupported, but given its short length that should be okay.

Unfortunately, removing that didn’t address the problem. The ball screw still binds up badly when the ball nut is near the top of travel. AvidCNC replied saying that the ball nut block can benefit from up to 0.25 mm of shim. I had shimmed the ball screw bearing block with some foil, but that amounted to a tenth of the potential shim needed. I’m going to remove that and shim the ball nut block instead. Hopefully that’ll remove the binding. I’m a little annoyed it didn't come properly shimmed from the factory, though (unless it shifted?).

I've shimmed it with 0.127 mm brass shim stock, and it still binds up near the top, but also at the end. Loosening the top pillowblock vastly improves the motion. I guess I need a full 0.25 mm shim. It’s tedious because I have to remove and replace so many screws each time I try.

After a lot more experimentation (changing shim amounts, changing the order of tightening and loosening, etc.), I think I’ve reduced the bidning as much as possible. It still binds near the very top of travel, but is otherwise acceptable. I noticed that as the carriage travels to the top, the free end of the ball screw actually moves to the right. By first tightening the screws into the linear bearings on the right, and then tightening them on the left, I was able to get decently free running over most of the travel.

Regeneration Issues

After fixing the binding issues, the power supply for the z-axis servo continued to click when driving downward. I realized then it was likely due to regen (back-EMF sent back to the supply), and composed an email to send to Teknic including a video of what was happening:

I got a fantastic response from Teknic (those guys have excellent support:

Thank you for sending your video over to us, that was very helpful to be able to see the LED blinking patterns on your IPC-5. So to answer your question: yes, the behavior you are seeing is likely due to some regenerated energy when your axis is moving downward. This is common to some degree for gravitational loads, especially on mechanics that are able to backdrive somewhat. The blink codes we are seeing indicate that the power supply is working properly, and handling this regen as designed.

The green LED is blinking at a rate of 3 blinks per second. This LED code requires no further action; the power supply is working properly. This indicates that the bus voltage has gone over the Regen Control Threshold and the internal regen control circuit was activated. This code will persist until AC power is cycled.

The yellow LED is momentarily turning on when your axis moves downward means there is a mode transition within the IPC-5 (transitioning to regen control). Also, the audible "click" you are hearing is expected in this transition; it is due to an internal relay.

I would strongly encourage you to enable Vector Regen Shunt (VRS) on your ClearPath motor using MSP (if it is not already turned on). Although your IPC-5 is handling this regen well on its own, using VRS allows the motor to help dissipate some of this regenerated energy in the motor windings, giving you more margin for regen handling. The motor will likely run a bit warmer with this turned on, but should not be an issue. To turn VRS on in MSP, go to Advanced -> Vector Regen Shunt (VRS).

I wasn’t aware of the Vector Regen Shunt, so I’ll enable that next time I’m able to connect my laptop to the servo (it’s a bit out of reach most of the time).