# Design of Wiring Harness Tester for Automobiles

I've been given a task to design a wiring harness tester for automobiles. The tester's job is to test wiring harnesses which can contain upto 300 wires. My initial design was quite simple. Feed the wires 5V and connect them to multiplexers. The AVR can address the mux and test each line to see if its high. If its high, the wire is good to go. In my "back of the envelope" design I chose to use 10 32-channel mux.

Of course, addressing each would also take 50 pins in itself - not practical. But I could address each using the same pins - that is, I could wire them in parallel. So if I set mux 1 to select line 12, the rest of the 9 mux also do that. The uC can then check to see if all these 10 lines are high - if so, they are all good to go.

However, I also need to check to see if two lines (or more) are short circuited. Obviously, this means that I'll need to make sure that the only the line being addressed is high. How can I ensure this? To my understanding, I'm going to need some sort of device which can switch voltages for lines.

I thought of using a demultiplexer to switch the 5V onto the wire being tested. So suppose wire 'B' is being tested - the uC would switch 5V onto wire 'B' and then run through all wires to see if they are high. If only the other end of wire 'B' (i.e. B`) are high, then the wire is good.

What would be the best way to approach this problem? My ultimate goal is to test the entire wiring harness and then display the errors (or lack of) on a 20 x 4 LCD.

A few other things to consider. Is this a 12 vdc system (the most common voltage on autos) or 24 or even 48 (commercial and military)? As a general rule of thumb you want to test at two to three times your rated voltage. So 24 to 36 VDC. for a standard 12 volt system. This helps find weak spots in the insulation.

Next, is this strictly power and signal wiring? Most autos today use data buses like CAN. In this case you need to send signals, not just voltage. You also need to look for cross talk.

You need to pay special attention to any shields. Ignition wiring must be adequately shielded to prevent EMI.

There needs to be a load on the system and not just testing for voltage. A high resistance connection will show a good voltage as long as current is low. You could test for resistance instead of voltage, but I have seen a few cases where even a circuit that shows very low resistance cannot conduct enough amperage.

Finally you should subject the harness to flexing and even thermal effects to simulate what it will experience in use.

I realize this an extensive list for testing. Some will argue it is not needed, but a bad wire harness on a car or truck will lead to expensive down time and repairs. I know I had the misfortune of having such a car a couple of decades ago. I still will not buy that brand of vehicle.

• Hi, the wiring harnesses do not have CAN or any such advanced data networks. Just simple power and signal wiring. Flexing and other mechanical issues are checked after the electrical test. It's for mostly 12V vehicles. So I should use a 24V system? That shouldn't be too hard. My main concern at this point is really how to switch voltage on 300 wires.
Aug 22, 2011 at 18:44
• You can't test for mechanical issues after the electrical test -- what if the flexing causes an electrical issue or worse, an intermittent electrical issue? Dec 13, 2012 at 19:20

The obvious solution would be to string together a bunch of IO expanders such as the MCP23S17 which gives you 16 IOs. For bilateral testing of 300 lines you'd need about 40 of them which at about a dollar each shouldn't be a problem.

Jim gives good info about what to test, but I think you're still stuck on how to drive 300 wires. With 300 wires you're really looking at 600 connections: 300 input at one end and 300 readers at the other.

I did something similar a long time ago, albeit with around half the connections, and programmed a fistful of FPGAs as serial shift registers, daisy chaining them to get the required connection count. The whole thing was driven by a small AVR and used only 4 signals: clock to drive the shift register, data out, data in and latch inputs.

Doing it like this will take a bit longer to set up a test, but not that much longer: 60ms to shift the data out and then shift the inputs in at 10kHz. Ignoring settle and processing time, that's around 20 secs to run through every wire.