Breadboard Circuit and PCB Functioning Differently

I have a PCB printed based on a design that I also have on a breadboard. The breadboard version works dependably and the PCB does not! I originally thought that my issue was software and posted this thread before realizing that the software was fine after resurecting the breadboard version: http://forum.arduino.cc/index.php?topic=294463.0

The circuit is based on a Nano interfaced with a 1.8" TFT display (with SD reader) and for testing purposes a DHT-11 heat sensor. The behaviours that I see on the PCB version include the DHT-11 not always working and more often the SD reader failing to close the file properly (though it does save data to it that can be read back up to a point where even that fails).

I am not even sure where to begin to diagnose this. As far as I can tell all the conductors are the same between both designs. I am going to start with measuring some resistances point to point between the two boards. Same with voltages.

Any suggestions on how to figure this out would be appreciated. Hardware is not my strongest point!

One would have to assume there is an error in the PCB CAD file. If you post that , someone MIGHT find the error. without that and the schematic of the breadboarded circuit (and preferably a photo of the breadboarded circuit taken directly above about 12" away) we really can't help.

I was hoping that someone would see the description and say "I had that happen and it was:

a. Traces to close together, b. Traces to small, c. Badly soldered connection, d. Interference between Arduino and LCD, e. Or something like that! "

Here is an image of the PCB:

c. sounds good. Reheat all pins, even if they look good.

It's probably not a good idea to short SDK & SCK together... (I never heard of SDK. What is that?) Your "SDK" is pin-D13 , which is "SCK" NOT "SDK" on the UNO and the NANO)

NANO PINOUT

(So is the other one "SCK" supposed to be SCL ?)

(That shorts the SPI clock to the I2C clock).

I don't know if that would work. Both signals are generated by different uP pins and I don't know how you would set them both to the same frequency. Maybe it isn't an issue but they are different protocols and the likelyhood that the uC is going to use the same frequency for both is probably slim to none, resulting in two conflicting signals on the same line. Are they shorted on the breadboard version ? Where is the schematic for that ?

I must say, that is an excellent PCB photo!

Yes - just needs a ground plane on both sides now, then all the long ground runs can be dropped. Will also etch much quicker as way less material needs to be removed.

raschemmel:

Sorry, my bad, typo on the SDK as it should have been SCK. One is the clock signal for the SD reader and the other for the TFT display...

MorganS:

Worth a try!

CrossRoads:

Not sure what you mean by a ground plane on both sides? I only have two ground runs with a long one on one side a bitty one on the other?

Wisar

A ground plane is an area of ground not just a run, you can have them on both sides and it cuts down pickup as it acts as a screen.

Breadboard works, PCB doesn't? I've had that problem many times! Once it was a broken trace (but your board looks good). Once I had the pinout wrong for a component in the schematic. Once I had a bad solder joint.

One thing that comes to mind is the GND connections. I had a project with an Arduino pro mini that worked sporadically using Rx, Tx and GND. When I connected all the grounds on the mini to the circuit ground it worked. You might want to try soldering some wire from the unconnected GND pin (next to Rst at the top) to the main GND on your board...

Is that based on ATmega328? The pinout is all over the place (and no decoupling).

No, it’s a Nano plugged onto a PCB.

There is always the proverbial cold solder joint. Why not post a close up photo (taken directly above) of the stuffed pcb that isn't working. (both sides).

Well then. Resoldered all the pins on the Nano socket and on the TFT and guess what? I now seem to have a working board. At least has been to a day and a half. I will have to look up "cold solder" joint. Any way, thanks for the help!

And yes, to an earlier post, it is a Nano with headers next to it that give easy access to all the pins for jumpering.

Wisar

The "floating Gnd pin" is not really floating as it would be connected to other gnd's via the Nano's PCB.

Both the breadboard and the PCB seem to work with that floating (once I cleaned up the solder points), however, I am grounding it in the next version of the PCB.

Thanks/Wisar

CrossRoads: No, it's a Nano plugged onto a PCB.

Yeah, that makes more sense. I had a picture of a standalone 328, and whichever way I turned it on the board, it would not align with power and GND pins.

A cold solder joint is when the solder is not heated enough, some of the molecules form pockets that don't conduct or conduct only enough current to pass a continuity test with a meter but not enough to power anything. If the solder is not heated long enough to flow, it can create an air pocket around the pin so it looks like it has solder on it but if you could slice it in half with a laser you'd see the pin inside this little tiny bubble of solder, pristine, or close to it.

BTW, You should change you post title to :

SOLVED: Breadboard Circuit and PCB Functioning Differently

:smiley: