Arduino Based Tester

Hi guys,

Ok, so up front, I'm a complete and utter newbie with Arduino's. I run an general aviation avionics shop and I want to get an automatic tester setup for the wiring harnesses that we put out. Most of the stuff is pretty straightforward for me, but once the Arduino comes in, I'm very much lost. So I figured I'd turn to you guys and see what wisdom I can get. Any help is appreciated and I can't wait to read your responses!!!

Budget is not a concern, though I don't want to go ask the owners for a small fortune. So please keep the suggestions somewhat reasonable in terms of finances.

For an Arduino, I haven't selected one yet and am open to suggestions based on my requirements. I by no means want you guys to design this for me, I'm just look to get put on the right path and going from there.

So, with that being said, read on!

These harnesses vary in size, but use standard DSub connectors. I figure that I can set up a 100 relay setup and control it with the Arduino. Using the Arduino, I'd have a program that would open and close the relative relays, pushing through a 5V signal. The signal would then run through the contacts and the wires (where it should) and then come out into a signal receiver. I'm thinking there would need to be a DMM on both ends to read the voltage going through. The display would read as follows:

Pin Input V Min Max Actual Status
1 5V 4.75V 5.25V 5V PASS

In the beginning, it would be a menu with options leading to the subsections for each harness. I'd really like for a touchscreen, if at all possible.

To put it into a practical example, say we have a harness with a DB9 (9 pin) connector. I want to have a series of relays that are controlled by the arduino. I hit a few buttons and the signal goes through each pin. The signals are read by a couple of meters and the display tells me pass/fail and why. It's basically just a continuity tester.

Let me know your guys thoughts on going about this. A friend of mine suggest a Raspberry Pi, but I have no clue what open source to go with or how to go about it. And I certainly don't have the time or energy to design my own. Thanks!

Cable testers have been discussed here many times, easy to do with an Arduino.
Up to 9 pins, you can use an Arduino as is.
9 pins connect to outputs, 9 pins connect to inputs with pullup resistors enabled.

Start with all outputs set as inputs. One at a time, turn one to an output and drive it low.
Say 2-3-4-5-6-7-8-9-10 are the outputs, and 11-12-13-14-15-16-17-18-19 ar e the mating inputs (2-11, 3-12, etc).
Check all the inputs to make sure only the one matching input is low (say 2 to start)
If only 1 is low (11 in this example), you have continuity.
If none are low, you have an open.
If more than 1 is low, you have a short.

You don't need any relays.
If you have more conductors, then bump up to a '1284P (15 conductors) or a '2560, (up to 35 with a Mega), or 42 with a full 2560 breakout board.

Then you just need adapters to go from your specific cable(s) to the test fixture.
In all cases, the 2 Serial pins are left free to talk whatever keyboard/display you are using.
Or you can use the 2 serial pins for testing and use the 2 I2C pins for the keyboard/display.

Hi CrossRoads,

What about with the larger DSub sizes? I wish it were just 9 pin, but I'm usually dealing with 70+ pin connectors.

Expanding the outputs with shift-out registers (TPIC6C595) and shift-in registers for the input side is also easily accomplished.
TPIC6C595 are open-drain outputs, they can only pull low, so you don’t have to worry about shorted cables damaging anything. The High outputs are provided by a pullup resistor on each output, either discrete resistors a bussed network part like this
https://www.digikey.com/product-detail/en/bourns-inc/4609X-101-102LF/4609X-101-102LF-ND/3593658

Principle of operation is the same - send in a pattern with just 1 low, read the other end to make sure the correct wire is low, and only the one is low. All highs = open, more than 1 low = a short connection

(Also a pilot - 1973 C177B with recent panel upgrade - Dual G5s, EDM900, IFD540, GTX345, 406 MHZ ELT with GPS blade antenna)

Hi,
How many individual circuits would you have, max??

And don't you want to check for shorts between should-be-separate circuits?

Arduino MEGA has 54 I/O pins. Maybe one Mega to drive circuit pins, another Mega to read the results? Might be easier than expansion hardware. Hmmm...

C'mon Terry - you should know better, Mega2560 has 54 digital IO, and 16 analog/digital IO, for 70 total.

Still won't do 70+ without expansion hardware.

As Usual: Robert Is Right :slight_smile:

OP talked about 100 relays. But how many actual circuits?

The max I’d be dealing with is 100 contacts. With the harnesses that are being dealt with, there’s no need for testing shorts between individual wires. A continuity test will reveal if there’s an issue. These aren’t contained cables from point A to point B (like an HDMI cable, if you will). These are harnesses designed with anywhere from 3 to 40 wires (some multiconductor) that individually split off to different sources for their respective unit. So you’ll have some running to power, ground, etc.

In the case of your G5, CrossRoads, you’ll have Pin 7 for Power, Pin 9 for Ground, and Pins 4, 5, 6 running the RS-232. Since you have two G5’s, then you’ll also have a Can-Bus on Pins 1 & 2 of both units, interconnecting the two. The ends of these wires are unterminated until installed into the aircraft. I’m basically checking the pinout and shield connections. If I was doing something like a Boeing engine harness with heat shielding, epoxy seals, and is completely contained, then I would like to HiPot, Insulation Resistance Testing, and really checking for those shorts. In this instance, it’s just overboard.

I’m basically looking to have a touch screen display, which when powered on, brings up a menu with each of my unit manufacturers. From there, you pick your option (Garmin for example). Then you pick the unit (G5, to continue the theme). Then you can pick the type of G5 harness (since there’s about 4 or 5). From there you would have a pinout display showing the pins that the harness needs and a brief description. At the bottom of that page, you can hit the Test button and choose between Manual and Automatic testing. Automatic, runs through the aformentioned setup and gives you the results. The manual lets you run whichever you want as you want.

My two biggest things are the interface, as well as having enough contacts (with some extra so there’s some flexibility). I’m trying to keep the interface as straightforward as possible, so a tech can just plug it in, run that first test, then move it onto the final inspection stages. Is there a touch screen option with the Arduinos? I thought I had heard of one, but I could be completely wrong.

(Nice panel, I do a lot of G3X’s, ADS-B equipment and stuff to the like there. Still don’t have my own plane, but when I do, it’s getting all glass)

To the OP: you may not want to check for wire to wire shorts - but using logic levels as discussed so far is not a valid test. A wire or connection that that has hundreds of ohms of resistance will pass the micro to milliamp levels of logic levels associated with a continuity check and then fail with the real world current required.

If you want a proper and valid test, you need to pass a predetermined current which is based on the wire and connector sizing and then measure the resulting voltage drop. An Arduino can be used but you need significantly more than just outputs routed through relays to inputs.

While I appreciate your concern with the type of test that has been put forward, I am not here to have the testing method questioned or criticized. A standard continuity test is all that's required and needed for these types of harnesses. I am here for advice on Arduinos, not the testing method of a FAA Approved avionics shop. If you do not have anything to contribute for an Arduino configuration of the test I put forward in my OP, then please find another post.

ageichman:
While I appreciate your concern with the type of test that has been put forward, I am not here to have the testing method questioned or criticized. A standard continuity test is all that's required and needed for these types of harnesses. I am here for advice on Arduinos, not the testing method of a FAA Approved avionics shop. If you do not have anything to contribute for an Arduino configuration of the test I put forward in my OP, then please find another post.

I guess I missed the memo where you were given permission to rewrite the rules of a public forum. No worries though, I’m done here as it is quite clear that you’ve got this project alll worked out with the obvious exception of the hardware and software.

ageichman:
A standard continuity test is all that's required and needed for these types of harnesses.

Here is what Fluke have to say about 'Continuity Testing'

Continuity testing overview
Continuity is the presence of a complete path for current flow. A circuit is complete when its switch is closed.
A digital multimeter’s Continuity Test mode can be used to test switches, fuses, electrical connections, conductors and other components. A good fuse, for example, should have continuity.
A DMM emits an audible response (a beep) when it detects a complete path. The beep, an audible indicator, permits technicians to focus on testing procedures without looking at the multimeter display. When testing for continuity, a multimeter beeps based on the resistance of the component being tested. That resistance is determined by the range setting of the multimeter.
Examples: If the range is set to 400.0 Ω, a multimeter typically beeps if the component has a resistance of 40 Ω or less.
If the range is set 4.000 kΩ, a multimeter typically beeps if the component has a resistance of 200 Ω or less.
The lowest range setting should be used when testing circuit components that should have low-resistance value such as electrical connections or switch contacts.

This might be of Interest, testing wire connections for model aircraft;

https://www.rcgroups.com/forums/showthread.php?3111105-Servo-Lead-Switch-Lead-Test-Unit