Shift Cable Fatigue Failure and Programmable Logic Controllers

My Friend Bryan is tough on shift cables. They seem to break in his shifters after about six months of use. A while back he asked me whether he should buy premium cables and hope they last longer, or buy cheap cables and plan on changing them every six months. I’ll tell you up front, I do not answer that question in this post, so if that is your only reason for reading you can stop now. I do make a recommendation, so I hope you read on.

Bryan asked me to look into fatigue resistance of shift cables. I pondered how I might build a reasonably simple fatigue test machine in my garage, and I mentioned my plight in my blog. Reader Robert W commented with the solution I needed.

“…a pendulum with a moderate mass – say 1 or 2kg. The spindle would have a groove with a radius equal to how much you wanted to bend the shift cable … A stepper motor under Arduino control could handle the power input and cycle counting…” Thanks Robert!

If you are over thirty-five you may not know what an Arduino Programmable Logic Controller is. I happen to have an Arduino project kit given me by my daughter two years ago. I never got farther than blinking a few LEDs, so this struck me as a way to explore Arduino programming, build a Rube Goldberg contraption, and advance my scientific understanding of shift cable fatigue. I think I scored a solid two out of three.


The physical rig is a nine pound weight hanging from a shift cable attached to a shifter. I start it swinging manually, then a stepper motor gives it a kick every time the cable contacts a brass wire at the right end of the arc. A second brass wire slightly farther to the right cancels the kick if necessary to control the arc. For my pendulum length, the period is about two seconds.

The last time I wrote code it was on punch cards. So it took me a while to hit my stride with the Arduino. After about forty hours of coding and debugging I had a program that would drive the servo, count cycles, and output the count to a digital display. My digital display is only four digits, so above 9,999 the display is to the nearest ten cycles, and above 99,999 to the nearest hundred cycles. In a fun bit of coding, I arranged a red LED to blink slowly indicating to add one zero to the number on the display above 9,999, and to blink fast indicating to add two zeroes to the number on the display above 99,999.

How many cycles does a shift cable go through in a lifetime? If I ride 10,000 miles a year and shift once a mile, that’s 10,000 cycles a year. 100,000 cycles would take ten years and be clearly beyond expectations. Further, different portions of the cable are flexing when shifting between different gears.

With a period of about two seconds, I get about 43,000 cycles a day. I ran my test cable thru 200,000 cycles (a little over 4-1/2 days) without failure and called it quits. The cam diameter on shifters is quite large in comparison to the cable diameter. It is large enough that fatigue from normal use should not be an issue. To put some perspective on this, go look at where your front shift cable attaches to your front derailleur. There’s a bend radius barely larger than the cable, and that is why it is so common to see broken strands near the attachment to the derailleur. That shift cables don’t break there in a few weeks of use is testament to the marvel of stranded cable.

For some interesting background on cable design see

Anyway, I had this cool fatigue test rig set up in the garage and I really wanted to break something. So I arranged a sharp bend as shown below, hung nine pounds on it, and set it to swinging. Even this arrangement lasted over 99,000 cycles!


I was writing up this post two days ago and I was interrupted by a text from a friend who asked if I could help him remove a broken cable end from his Ultegra 6600 rear shifter. What a coincidence! Then yesterday another friend texted and asked me to help him remove a broken cable end from his Ultegra 6800 rear shifter! After performing surgery we checked the front shifter and found about half of the strands broken! Three broken shift cables in two days! That’s just weird.

Broken 6600Broken cable from an Ultegra 6600 rear shifter.

Broken 6800Broken cable from an Ultegra 6800 rear shifter. We mangled this one trying to extract it the hard way, before finding the hatch on the bottom of the shifter that gives easy access to the broken bit.

About to BreakFront shift cable from the same 6800 pair, in the process of failing.

I really don’t feel like I’ve gained much understanding of what’s going on here. It’s possible that near the end of the cable where the strands are rigidly fixed by the head, the cable strands are constrained from moving relative to one another. If so, the cable may act more like a single 1.2mm wire than a 19 strand cable, and it would fatigue a lot faster.

I would welcome thoughts on what’s happening. Anybody?

All said and done, I had a lot of fun. I built a cool machine. I learned to program an Arduino. I did not find a smoking gun. But I’m gonna make a recommendation anyway, based on nothing more than a vague feeling that it might help.

Here’s what you do. Pre-stress the head end of the shift cable into a J shape. This is the shape it is pulled into when it is tensioned.  Pre-stressing it so it naturally assumes this shape may help to equalize the load on the individual strands. Wrap the end of the cable around a pencil or something.

Pre-stressed CablePre-stressed cable

If this sounds similar to the stress-relieving done on spokes before tensioning up a wheel, it should. It performs the same function.

Pre-stressing Spokes Why? How?

I am working on a video version of this post. If you’re subscribed to you’ll get a notification when it’s ready.

Now if you’ll excuse me, I have to go change my shift cables!