It was my first engineering job and I was tasked with creating the new reliability system for our chip laser components. I had big dreams, I wanted to be able to test 256 individually addressable laser chips on a single board! Having this many high-current IO lines is difficult, unless you use a matrix! Simple, right? WRONG.


LED matrices allow individual LED's to be addressed individually. They look something like this:




So lets say I want to turn on D4 by setting AN1 high and COM0 to ground (with other pins disconnected). This works great... if the voltage at AN1 is less than the reverse bias voltage that an LED or laser can handle (normally about 5-10V). However, our lasers were driven at currents as high as 10, 20, even 30mA -- meaning that those 1k resistors were dropping... 10, 20 and even 30 volts. What happens when you have 20 volts sitting on AN1? Well, I'll tell you what




The only laser that was supposed to be on was D4. What ended up happening is that D5, D6 and D1 got a dim glow, while D2 and D3 had current going in reverse. (the current path through D6 isn't shown, but you should get the idea)


Amazingly, this didn't kill all the lasers instantaneously... but it sure did invalidate any reliability testing we did on them.


Lessons learned:

  1. Just because a circuit design works for one application doesn't mean it will work for yours.
  3. When designing for reliability it is important that your design is reliable! Simple is almost always better, even if it means a bigger connector or not getting as much bang for your buck.
  4. Simulation? Yes, simulation.


The funny thing is that a room full of electrical engineers reviewed my design and none found any flaws. Goes to show you that even if you are new, people will let you make your own mistakes.


This mistake cost thousands of dollars of parts and many hours of labor, but we managed to salvage the boards through a very painful testing method (something the design was supposed to avoid). Lesson learned.