[SOLVED] Odd behaviour with voltages

PROBLEM SOLVED! The new library doesn't use the same data rate syntax as the old one, so I had initially deleted it. When I reverted back to the old library, I added the line back in, however I neglected to pay attention where I inserted it back in. While the line itself was identical to what the old file said, it was one line number lower and I didn't catch that. Amazing what a glass of wine does ...


So here's today's problem. I have several WS2801 strings that are designed for 5V and SPI operation. I have used these many times before. Last time was this past December as part of a window display. Doing the developing and coding stage, I have one of them (32 pixels) hooked up to my Uno, with them getting voltage straight from the Uno which is connected to my computer's USB. I've never had an issue with that setup (I make sure not to overload the current on USB.)

Today was the first time I've reconnected one of those strings to my Uno again in preparation for some new coding I'm working on. Same thing, signal and voltage are coming from the Uno while it's connected to my computer's USB. I loaded the same exact test sketch I have always used ... lo and behold, it's not working. The string is erratic, it's not lighting up all the LEDs, colors are flashing all over the place on the LEDs that do light up. This is the typical situation I get when I forget to set the data rate, but this sketch has worked before, as-is, and it does have a data rate defined. So why wouldn't it work?

On a whim, I decided to switch the string's voltage to 3V3 instead and boy was I surprised when it worked properly! Switched it back to 5V and it doesn't work. Ok, now I'm scratching my head. So what follows is a step-by-step sequence of changes I made, trying to figure out what's going on:

  1. Maybe the string got broken somehow. Tried 3 others and they all behave the same way.
  2. Maybe something's off with the voltage to the string, so I used a 5V wall wart to power them. Same problem.
  3. Maybe something happened to the Uno, let's swap it with my Mega2560. 5V, same erratic behavior. Change to 3V3 and they work perfectly.
  4. At some point I upgraded the FastSPI library, let's revert back. Same erratic behavior.
  5. I also recently upgraded the IDE from 1.0.3 to 1.0.4, let's try 1.0.3 with the old FastSPI that previously worked. No dice, same thing.
  6. Ok, maybe it's the USB voltage. Tried using both a 5V PSU as well as a 5V wall wart. Same thing, if I power the string at 5V, it goes berserk. Power it at 3V3 and everything works fine.

At this point I'm left scratching my head. I have reverted back to the same setup as I used back in December for my Christmas lights display, version 1.0.3 for the IDE and the same FastSPI library. And the strings will NOT work when powered at 5V, but they work perfectly at 3V3. And I know for a fact that a) they are made to work with voltages up to 6V, and b) back in December, they were all powered with 5V.

So, what gives?! What am I missing here? Why won't things suddenly not work at the expected 5V? I have to believe it's something that I'm not doing right, but for the life of me I can't figure it out. Maybe someone else here can help figure out what's going on.

My guess would be to look at what suppy decoupling caps you have on your chips.
It could be before it was on the bring of not working and temprature or ageing components has pushed it over the edge.

P.s. this is the totally wrong section to post a question like this in. Read the description, this is not a question about installation it is one about your project.

That's the thing, this is all stock. There's nothing custom about anything here. Stock, genuine Uno, and stock WS2801 strips. I just tried it on my custom made LED drivers as well (also based on a 328P with a ProMini bootloader) and the same thing happens. This is also the exact same setup that I create when I first get the reel or even last December while working on them.

There is absolutely no reason why they wouldn't work on 5V as far as I can tell. It's just completely baffling to me.

And yes, if I can move the thread, I would ...