Help requested, working breadboard circuit not working on stripboard unless I apply heat to one of the rails.

TL;DR:

Circuit working consistently for weeks on breadboard but once migrated to stripboard refuses to function anymore. Will work for less than one minute after applying heat to the negative rail, or random solder points, but always fails once it cools down again. Doesn't seem to be related to the obvious crossed wire or bad solder joint. Have rebuilt circuit from scratch twice with same result.

Imgur album

Code


So this is my first attempt at something a bit more ambitious than flashing LED lights since getting interested in electronics and coding a few weeks back and ordering an Arduino on a whim. However after struggling with this issue for the better part of a week, I'm completely out of ideas and would really appreciate some advice.

The node is built to run on 2xAA batteries and transmit temperature/humidity readings to my raspberry pi for logging. It uses a Attiny85, DHT22 and a NRF24L01+ wired up to work with only 3 of the attiny's pins instead of the normal 5 original source.

The circuit and code has actually been running smoothly for a couple of weeks on a breadboard, but after getting a soldering station and attempting to migrate it over to a stripboard I am running into issues I simply can't figure out myself. The node is not transmitting at all (regardless of if the DHT22 is connected or not) but will mysteriously work for a couple of seconds up to around a minute right after the ground strip of the veroboard is heated up with the iron. Sometimes heating up a random solder joint will have the same effect. I don't understand how this can really make a difference but it works every single time. I guess heating the copper increases resistance, but don't really understand how this is making the circuit come alive and can't even begin to figure out how to fix the issue short of sticking the whole thing in the oven.

I uploaded an album with Fritzing wiring diagrams and some pictures of the finished board in the hope that somebody smarter than me could take a look and point out any issues with the design of the stripboard or wiring mistakes compared to the breadboard layout or really anything else at all I might have missed. I also linked the code, although I don't think the culprit will be found here since it as mentioned works on the breadboard.

I should also mention that I so far have attempted the below without seeing any change in the performance of the circuit:

  • Changing batteries to fresh ones
  • Moving the Attiny85, DHT22 and NRF24 back to the breadboard to verify that they still work
  • Adding bypass caps to the attiny85, NRF24 and power rails to try smoothing the DC signal
  • Checking every solder joint and wire over and over again to make sure it lines up with the diagram
  • Rebuilding the whole circuit from scratch on a fresh stripboard, cleaning it with IPA both before and after soldering process

Posted Feb 5, 2016, 8:49 PM UTC

34
rudetopoint•

Only thing I could think of would be the reset pin, its floating and might be picking something up in the closer confines of the stripboard, try pulling it up to Vcc

2
niloc132•

Likewise if any of your other chips have a shutdown pin, make sure they are actually pulled in the right direction - I had a radio that behaved well when breadboarded (perhaps enough capacitance in the various rails there?), but when soldered in place it would fail until I forced it to never trigger the shutdown pin.

1
AgnosticAndroidOP•

Solid thought, I did some research on it and seems like it normally shouldn't make a difference but as you mention still has the potential to cause issues in some cases. I soldered in a 10k resistor between the reset pin and Vcc but it unfortunately didn't seem to help. I saw it suggested somewhere to put a cap in with the resistor, do you think this is needed? Sounded a bit weird to me so haven't tried that yet.

1
niloc132•

I'm going to be less help there - but I have either had cases where i just hard wired the shutdown/reset to ground or added a resistor to "pull" it.

My specialty is really software, I'm learning mostly by error in the hardware world...

1