I wanted to create an ICT to check for shorts and validate some of the voltage levels on a PCB that I created, using a jig. I have placed probe points on the desired nets and will be using pogo pins on a jig to test the PCB. If possible I wanted to use an ATMEGA-328P AU (Arduino nano/uno/etc) on my custom jig. The way I could think of to detect shorts, was to have a shift register which goes through all the pins and sets them to high (5V) one at a time, then the arduino will check the voltage on all the other nets which should be zero unless they are shorted.

I'm just not sure how the "input" on the arduino acts ... is it a high impedance input? I couldn't find any data sheet / info about that. The problem is that if the input is not high impedance, then capacitors that are placed between certain nets, can be reverse charged and reverse 5v will definitely blow a polar capacitor which is obviously not good for a debugging circuit! I thought about other ways, like adding 10k resistors to all the inputs as well as the outputs of the shift register but I'm not sure if that's needed.

Alternatively I can make sure that the nets which have the capacitors, are not reverse polarized, but I would prefer to find a general solution as I will be creating different circuits and not having to change the code every time for different circuits would be great.

  • \$\begingroup\$ Depending of the device under test (most ICs), you can't just apply 5V on a part of the circuit and expect the other parts to be zero volts (internal diodes on I/Os, resistors on the circuit, etc). Best case you will get false positives and worst you will fry some parts. So this test method shouldn't work for most cases. \$\endgroup\$
    – Wesley Lee
    May 6 '19 at 14:33
  • \$\begingroup\$ what are the other alternative methods I can use? I don't have experience with designing test jigs but I've seen them used very often in production facilities. This will make my life a lot easier but I can't find any details on how to properly do it. most of the results are "DIY short circuit detector" which acts exactly as I described: having a probe at 5v and the other probe with and LED or buzzer to ground. \$\endgroup\$
    – OM222O
    May 6 '19 at 14:36
  • \$\begingroup\$ You do your "shorts and opens" testing on a bare board. Once the board is populated, you have to operate the circuit within its design parameters. This is where you do functional testing. You need to carefully think through what you want to test and how you're going to test it. As it stands, this question is far too broad. \$\endgroup\$
    – Dave Tweed
    May 6 '19 at 14:39
  • \$\begingroup\$ The PCBs are checked using electrical testing already. I have seen motherboards being tested AFTER they are populated for shorts. it is done by BOTH optical inspection AND probe testing (depending on the manufacturer, they choose one or the other). obviously this is possible and not too broad. \$\endgroup\$
    – OM222O
    May 6 '19 at 14:53
  • 1
    \$\begingroup\$ actually @DaveTweed after assy, > 90% of faults are solder related , short , open, bridge, tombstone etc. So shorts and open ICT is most common in MFG not only to detect these but locate them for repairs. Then you do Funtest. \$\endgroup\$ May 6 '19 at 14:54

Atmega328P inputs are 1 megaohm equivalent or higher. That's how the max input current can be 1uA max per the datasheet.

  • \$\begingroup\$ Does that mean I won't have issues with reverse polarity if I limit the time taken to read the pin? The capacitor will be charging with a huge time constant if the input is >1Meg ohm \$\endgroup\$
    – OM222O
    May 6 '19 at 14:33
  • \$\begingroup\$ Why would the caps be charged up to more than the voltage being applied to them? If that will be more than 5V, than voltage dividers can be used, maybe with transzorbs and current limit resistors at the input to the '328P. \$\endgroup\$
    – CrossRoads
    May 6 '19 at 16:01
  • \$\begingroup\$ it's not a case of over voltage, it's a case of reverse polarity. polar capacitors will blow up if they are put in reverse polarity by more than about 1 volt (meaning the negative terminal is at 5 and the positive terminal is at 5v) \$\endgroup\$
    – OM222O
    May 6 '19 at 16:45

Test Engineers basically use impedance checks by back driving outputs or inputs or caps with a series R of choice like 1000 Ohms to check voltage and thus impedance.

thus you have a bidirectional switch in an array to mux any node to you shared input or output, then you can test 1 node by back driving to see load response or connect nodes for transfer function like to an input and to and output from Arduino as a simple bed of nails impedance analyzer with Arduino Logic input or ADC input.

  • fixture may be suggest to board static, protection on each I/O pin must be designed to protect both DUT and Arduino.

Usually a header interface and JTAG is best, but a bed-of-nails will work too.

I have seen my former staff and colleagues do it both ways, with high fault coverage on both In Circuit and Functional testing combined.

Self Test by design is best plan, with current limit on supply to detect/protect faults and fault indicators.

  • \$\begingroup\$ that is a very interesting idea. the product uses an atmega-328p already (which is why I chose the same part for the test jig as well) and I can drive some pins high and check the neighboring pins to create a self test. however this will not help with the entire board because some ICs are purely analog and not connected to MCU, so the jig will be mandatory at the end. function testing will be carried by the internal ADC of the arduino as it has to do ball park voltage measurements \$\endgroup\$
    – OM222O
    May 6 '19 at 14:57
  • \$\begingroup\$ Yes they used to call it BIST or something with loopback to all nodes . We once had a MOBO with 4 bit slice CPU’s and 16 x 32 busses all with loopback and 64kB of self test code with an on board cheap uC with 98 % fault coverage and location. Not my design but we built it. Circa mid 80’s and insufficient solder joints were a plague, so I forced Board shop to do vibration during self test and our yields went from 10% to 95% \$\endgroup\$ May 6 '19 at 15:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.