# Designing a cable tester

I need to check the integrity of 40+ custom cables. Each cable is meant to be the same, and is meant to have 19 ways.

I bought an enclosure, some mating connectors, some LEDS and a bunch of resistors and diodes. My first and second attempts at building tester circuits were unable to catch the three conditions I want to check for:

• short circuits
• open connections
• cross wiring

So now I'm back at the computer. I have searched the internet, and I have found a CAT5 tester circuit here.

I recreated part of this circuit using the awesome tool at Falstad,

Here is the result:

Only when each adjacent LED pair lights when the switch is flipped, can the cable be considered good.

I’m somewhat confident I can extend the circuit so that it can test each way in my cable, but can anyone offer improvements or advice before I start my third implementation? I have a nagging suspicion I am overlooking something, or there might be a really simple way to do this!

-
If you want the falstad circuit to play with, I have exported it here: pastebin.com/mU445JVN – jon May 22 '12 at 11:06
What does "is meant to have 19 ways" mean in english? – Olin Lathrop May 22 '12 at 11:33
@OlinLathrop I would speculate that he means there are 19 conductors in the cable. – vicatcu May 22 '12 at 16:44
@OlinLathrop $E$nglish. merriam-webster.com/dictionary/english – Telaclavo May 22 '12 at 16:45
@vicatcu: 20, more likely; have to have a ground, and it doesn't count as one of the "ways". – Warren Young May 22 '12 at 17:04

For me, the simplest way would be this one.

For an N-wire cable, get an MCU with at least 2·N available GPIO lines. Connect both ends of your cable to the 2·N lines, like this (where I've used a 3-conductor cable as an example):

The N upper lines would be open-drain outputs. The N lower lines would be inputs. For each one of the N wires of your cable, you would activate (pulling down) only one output (keeping the other N-1 outputs in high impedance), and read all N inputs. This way, you'd be able to detect opens, shorts, and crossings.

You would have an immediate and thorough result, without needing a human to watch LEDs.

-
I have done exactly this for custom hdmi cables we make. There are about 14 connections to check, and it does it almost instantly. There's also a 7-seg LED display to tell me which wire has an error. – Rocketmagnet May 22 '12 at 12:45
For 19 conductors, you need 38 GPIO pins - something like an Atmel ATXMEGA128 would do the trick (there are countless others too I'm sure) – vicatcu May 22 '12 at 16:51

Instead of having dedicated circuitry that lights a LED for each wire, I'd test the whole thing with a microcontroller.

The microcontroller would be capable of driving each line high or low at one end, although small series resistors should be used to prevent damage in case lines of the cable are shorted to each other. At the other end it can apply either a pullup or pulldown and read the state of each line. A walking 0s and walking 1s pattern should be all you need to check for any opens or cross-conductor shorts. That's only twice as many tests as there are conductors in the cable.

The whole test would be instantaneous in human time, and you'd get a single simple good/bad indication immediately. That's a lot better than a bunch of individual good/bad indications. People get tired and make mistakes. Asking production techs to look at a bunch of different indicators to ultimately get a single yes/no answer is not a good idea. Make it simple, and thereby difficult to mess up.

-
You don't mention series resistors at the outputs, or open-drain outputs. Without them, if two wires of the cable are shorted, you will damage the MCU outputs. – Telaclavo May 22 '12 at 15:50
@Telaclavo: Good point, fixed. – Olin Lathrop May 22 '12 at 16:24