2
\$\begingroup\$

I've designed, ordered and assembled a PCB to act as an Arduino shield that takes sensor input and interfaces with a set of (again, custom design) motor driver cards. PCB images top and bottom attached and brief description at the bottom.

I have some stray voltage occurring, which is threatening to damage the Arduino. I first noticed it when I connected the Arduino and the 5V regulator started smoking. I then removed power, removed the Arduino, and voltage-probed the shield pins with the power back on.

When the voltage regulator was attached, I got 0.7 and 1.1V on A4 and A5 w.r.t. ground; Vin was 11.8V; 5V was 2.8V; and the other 4 power pins were successively slightly less. Trace voltages were also seen on digital pins 3 (0.04V), 7 (0.12V) and 8 (0.13V).

With the voltage regulator removed, I still get some stray voltage. On the power pins it's 0.4-0.5V and on the other side digital 7 and 8 are at around 0.7V.

I'm very confused as to why this is happening and I can only imagine it's some sort of electromagnetic effect I hadn't accounted for. I can't see any shorts and even if there were, it doesn't explain the behaviour.

PCB Description

PCB PictureA terminal block in the corner which takes 20V DC from a laptop charger. A 20V rail runs from there, 2/3 of the way around the circumference of the board taking power to motor driver headers. Other pins on the headers are Ground (2nd pin from edge of board, adjacent to 20V), 2 x relay actuating pins and a PWM.

Next to the terminal block is a 4-pin header for a voltage regulator which steps down the voltage for the Arduino. It's outputting 11.8V which goes to Vin.

https://www.amazon.co.uk/gp/product/B08CZBHLNH/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1

The bottom plane is 95% ground apart from a couple of sets of traces; two traces run from the middle of the H-bridge to the relay lines at 3 o'clock on the board, and eight run from the traces connecting the 10K resistors and the headers, diving underneath the Vin trace before reappearing to go into the PISO.

Other components on the board include a 3-pin header for an IR receiver; a 16-pin header for 8 reed switches, which are pulled down by 8 x 10k resistors and input to a PISO shift register; and an H-bridge made of 4 x NPN transistors (plus diodes and 1k resistors) to power the relay. None of IR, reed switches or motor driver cards were connected when the issues were noticed.

PCB Schematic

\$\endgroup\$
10
  • \$\begingroup\$ A schematic diagram of the board would do more good than the description. \$\endgroup\$
    – JRE
    Jan 26 at 20:04
  • \$\begingroup\$ Hi, is the picture not showing? If it is, is there more info required? \$\endgroup\$
    – Josh
    Jan 26 at 20:15
  • 1
    \$\begingroup\$ You posted the layout. That's not a schematic diagram. \$\endgroup\$
    – JRE
    Jan 26 at 20:18
  • \$\begingroup\$ The voltage regulator module is adjustable. Did you adjust it to 5V output, or modify it as per the instructions for fixed un-adjustable 5V output? \$\endgroup\$
    – Justme
    Jan 26 at 20:32
  • \$\begingroup\$ Besides needing to post a schematic, you should also post the BOTTOM of the board. \$\endgroup\$
    – Kyle B
    Jan 26 at 21:39
2
\$\begingroup\$

I don’t see anything inherently wrong with your schematic or layout at first glance. This leads me to suspect that you created a short during assembly.

Something that I haven’t seen you mention is that you performed continuity checks between traces at every component lead, both before and after assembly. This is a critical step before applying first power: You want to make sure that the bare PCB is correct, and you also want to make sure that you didn’t inadvertently cause unintended connections with a stray pin, wire, solder glob, or even flux residue. (The latter is particularly sneaky since flux is translucent and may contribute a low-resistance path rather than a full short.) Also double-check for correct and correctly-rated components (like your transistors - are they EBC or CBE?) and reversed components (e.g. diodes).

I would suggest a full continuity check (or ‘ohming out’) as your next debugging step. I’d also recommend taking well-lit, high resolution photos of both sides of your board, preferably from multiple angles, to give both yourself and us a chance to examine it for potential problem areas.

\$\endgroup\$
2
  • \$\begingroup\$ Hi, thanks for your answer. I think you're right and it was the flux residue that was causing the issues. Vin at 12V was leaking into GND and then back up through the diodes and the pins connected to them; to the clock, data and latch pins of the PISO and to the H-bridge control pins. I found non-zero conductivity in places I wasn't expecting it when ohming out the board. Fortunately I got a minimum order of five boards where I only need one that works so back to the soldering station and using less flux this time! I wasn't aware it could cause those problems so I had been laying it on. \$\endgroup\$
    – Josh
    Jan 28 at 12:27
  • 2
    \$\begingroup\$ Hi Pion, while flux was definitely an issue I think I found the main culprit. If you look on the PCB layout at the 'IR Receiver' header, and bearing in mind it's a through-hole connection...it's directly over the USB-B socket on the Arduino, and when the boards were mated the 5V was shorting to GND! \$\endgroup\$
    – Josh
    Jan 29 at 11:19
2
\$\begingroup\$

For everybody's reference, the problem was found. There were two, in fact.

(1) As Pion suggested, flux residue was causing high-resistance shorts in the circuit which were detectable with a high resistance setting on the DMM. I couldn't clean it off, so I rebuilt with a spare board and it's not a problem. I was using waaay too much flux as my soldering isn't great and required rework.

(2) The main issue was discovered when I noticed some crackling between the board and the Arduino. On inspection, the 'IR Receiver' header was shorting against the housing of the USB-B socket (which I believe is grounded) and causing a 5V-GND short which burned out the voltage regulator.

Consider this when laying out Shields for Arduino - leave the space above the USB-B alone! I'm going to wrap it in rubber or something I think.

\$\endgroup\$

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.