About a month ago, I designed a PCB for a project. For the purposes of this post, the project isn’t particularly important – but it was an addon for an old 8-bit home computer.
The circuit itself was not especially complicated – four ICs, three LEDs, plus some other bits – but there was a lot of interconnections. I was keen to cram it into as small a PCB as I could manage, so it took a few failed attempts before I nailed it. I was really rather pleased with the results.
It took two weeks for the manufactured PCB to arrive. Naked PCBs are sexy – they just are. Don’t look at me like that!
Populating the board was straightforward, but when I came to testing it … one of the indicator LEDs that should have been on constantly, was flashing. The circuit was power-cycling – repeatedly turning on and off. This Is Bad. Did I have a crossed-wire somewhere? A short? Was it constantly rebooting the motherboard? This is not a fault you want to leave running, so I quickly switched it off.
I’ve made a design error somewhere, then! I printed out the PCB design as large as I could, and carefully compared the PCB layout with my schematic, marking-off traces as I checked them. It took a good few evenings, looking at it in between other jobs around the house (we’re fostering a couple of toddlers at the moment, so the only spare time we have is after their bedtime). I couldn’t find any mistakes.
Then I began to doubt my design. It was based on a much older schematic, which I’d butchered for my purposes. So then I spent days comparing my schematic with the original. Did I get some pins swapped or joined whilst editing the design? I couldn’t find any problems. Next I spent another evening redoing the design … producing the same result at the end.
By this point, I was getting desperate. I figure the next stage is to keep it running for a while, and see if one component gets much hotter than the others. That would narrow it down to a faulty component, perhaps. Fizzing and sparks aren’t usually desirable, but I’d at least I’d know.
I kept it running for an hour. No smoking components, nothing even remotely warm. In a fit of mild boredom before I switch off for the night, I spent two seconds with a logic probe on the pin that was driving the LED. The signal was NOT oscillating – it was constant. Which meant …
It wasn’t a standard LED. It was a flashing LED. A LED that looks like an ordinary one, but made to flash. Mixed-in with all my others. Otherwise, my project is working fine.
That flashy little bugger was mocking me.
So … other than “I don’t have the back-strength to flip my desk”, what can I learn from this?
I don’t ever remember buying flashing LEDs. I don’t trust them for exactly this reason. But I sometimes get sent free components when placing a large order, so it’s possible I received some as freebies. Also, part of my electronics stock came from a friend when he last moved house, so that sneaky little bugger could have infiltrated my collection via either of those routes. All I know is that I have a tub of a few hundred red LEDs that I now do not trust. So I must now either test each one before I use it, or spend a few more evenings testing each one individually … or I throw out the whole lot and buy new.
And that makes for an interesting point: What is my time worth? 100 new red LEDs will cost me around five pounds, so I estimate my current stock is worth between ten and twenty pounds. The cost of the rum I drank whilst debugging this project has already cost me double that.
But … if I only did things that made financial sense, I wouldn’t do any hobbies at all.