Continuity tester for a 12 pin connector

Hi all,

I want to make generic continuity cable tester on my arduino, which means it can test x amount of conductors in a cable.

I wonder if this is even possible because if I am not mistaken, the maximum amount of conductors in a cable that you can do continuity test on is equal to the total amount of GPIO pins on the board divided by two because one half will be sending the signal and the other half will be receiving the signal.

So the arduino uno has 14 I/O and 6 analog, if I use all of the pins, then the maximum pins I can test is a cable with 10 conductors, am I correct on this?

If I am correct on the above statement, that is the continuity test is limited by the amount of pins on the MCU, is there anything I can do on the breadboard side or some smart trick I can do on the coding side?

I've been researching this on the forum and came across this term "shift register" in this post (#4):
https://forum.arduino.cc/index.php?topic=186461.0
It looks promising but I don' really know what it is or how it works,

Here is the sketch I came up with, it tests a single wire continuity, a_1 will be sending the signal and b_1 will be receiving the signal

const int a_1 = 1
const int b_1 = 2

void setup() {
    pinMode(a_1, OUTPUT);
    pinMode(b_1, INPUT);
}


void loop() {
   digitalWrite(a_1, HIGH);

   if(digitalRead(b_1) == HIGH) {

       // display success!

    }
}

Thank you

Have you looked at the Arduino MEGA, https://store.arduino.cc/usa/mega-2560-r3, for this project?

Can you tell us if the ends of the cable have connectors installed or is this just bare wire? What type of cable, ribbon, twisted pair, color coded wires, etc?

Are you testing for broken wires or for improperly installed connectors? Makes a difference.

If the cable has connectors on each end, are you wanting to wire up mating connectors in order to make contact with the cable?

Paul

I have a 12 pin female cable that goes into a 16 position connector, these wires are terminated and must go into a specific position of the connector, that is what I am trying to test. If a wire is in a wrong position in the connector, then I would need a failure condition to show, so yes I need to test improper placement in a connector

Also, yes, I have a male counterpart for the female cable,

Thank you

If you just need a "yes"/"no" test, wire all the wires in series with a resistor and LED on one end and a DC power connection on the other.

Paul

But how does this test the position on the connector?

supercheungchinyau:
But how does this test the position on the connector?

Have you designed something with a ambiguous connector? Asking for trouble.

Paul

On the female end assume wire 1 goes to D2 . . . wire 12 goes to D13.

On the male end wire 1 goes to D14 . . . wire 12 goes to D25.

Make all i/o pins inputs (INPUT_PULLUP).

Make D2 an output then set to HIGH/LOW.

Read D14 thru D25 for associated level, i.e. only D14 should see a LOW.

ETC.


If there is not a one to one relationship of male to female, use an array to make translations.

Hi,
Your strategy would be to scan the wires at one end and check the wires at the other;

  • Apply HIGH to wire 1.
  • Scan all the wires at the other end, checking for continuity on the correct wire (Pass), check for continuity to other wires (Fail);
  • If there is a FAIL, STOP and report wire numbers concerned.
  • Go back to step 1 but now apply HIGH to the next wire, eg. 2.

Once you have your strategy, then work out your hardware needs.
You will probably need some I/O multiplexers to address all the inputs and outputs.

Tom.... :slight_smile:

Suggest you use a couple of these "port expanders":

Each has 16 I/O pins and up to eight of these boards will parallel to the two I2C pins (A4 and A5) on the Nano (better than the UNO for actual applications) while you can also connect your display to indicate the success of a test.

The test process is to set one at a time of the I/O pins LOW and check that only the correct one on the other end of the cable reads LOW.

These port expanders can only pull LOW, so there is no conflict if a short circuit is present. (You can of course do the same on the Arduino by setting one pin to OUTPUT and LOW while the others are set to INPUT_PULLUP but it is inherent in the way the port expanders operate.)