2
\$\begingroup\$

I've built a custom Arduino shield using a PCB and surface mount components. The board has a short between power (5V) and ground (GND) when it is connected to an Arduino Due.

When the shield is not connected, the short does not appear to be present. With a continuity checker on my multimeter and the board disconnected from the Arduino, I've tested for continuity between GND and all the shield pins (including 5V). I only get continuity where I am supposed to - on the GND pins. I also tested for continuity between the 5V pins and the other shield pins (including GND), and only get continuity where I am supposed to - on the 5V pins.

How can I debug this problem? Why doesn't the shield show a short to ground when it is not connected, but when it is connected, there is a short? What am I missing?

\$\endgroup\$
5
  • \$\begingroup\$ That's a tough one. Maybe the short is caused by pressure on the headers when the shield is connected. Well, it's just a wild guess. \$\endgroup\$
    – Ricardo
    Commented Dec 28, 2013 at 3:07
  • \$\begingroup\$ How exactly did you determine that there is a short to ground when Arduino is connected? \$\endgroup\$
    – AndrejaKo
    Commented Dec 28, 2013 at 3:07
  • \$\begingroup\$ It might be worth adding the schematic and layout of your board. Maybe it's just a simple pin mismatch you've missed, but are you sure something doesn't get physically shorted when you connect it to the top of a USB connector or similar? \$\endgroup\$
    – PeterJ
    Commented Dec 28, 2013 at 3:08
  • \$\begingroup\$ @PeterJ, That's a possibility. I had to insulate the top of the USB connector on my Arduino UNO with tape, just because of that. \$\endgroup\$
    – Ricardo
    Commented Dec 28, 2013 at 3:10
  • \$\begingroup\$ PeterJ - it was a pin mismatch as you suggested. \$\endgroup\$
    – Adam F
    Commented Dec 28, 2013 at 16:35

1 Answer 1

3
\$\begingroup\$

I found the problem. It was a pin mismatch. The Eagle schematic was correct, but I had the shield XIO connector reversed in the Eagle board layout - so I had two pins connected to what I thought was ground, but on the Arduino Due, they were connected to +5V.

It's a 4-layer board. I found the problem by looking at the different layers in gerbv - when looking at the ground (GND) layer, I noticed there were two ground connections that shouldn't be there... that led me to discover the connector was placed backwards in the Eagle board file.

Here's a picture of part of the ground layer of the board that has the problem. The two pins in the upper right are +5V on the Arduino, but connected to ground on my board.

\$\endgroup\$
1
  • \$\begingroup\$ "a pin mismatch" I hate those, +1 \$\endgroup\$ Commented Dec 28, 2013 at 18:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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