I once worked as the firmware developer for Sun's SPARCstation-1 computer. We were able to get most of the prototypes working reliably, but there was one unit that would intermittently reset itself and then display the firmware prompt. The resets didn't seem to correlate with any obvious workload or software. They seemed to happen randomly. Since firmware tends to get blamed for every problem, I was on the hook for solving it.
We looked at all of the usual suspects, but we came up with nothing. The problem continued to plague us for several weeks.
Finally, we caught a break in the case. This particular unit –- instead of being powered by a normal, small computer power supply -– was connected to a high-end and very expensive HP lab-grade supply. When we monitored the supply voltage to the unit over a long period of time, we found that the 5V supply to the computer was glitching for a few milliseconds just prior to the reset. Of course, that just prompted more questions. Why would a high-end lab power supply have a glitch?
We examined the setting carefully. The power supply and the computer were sitting on a lab bench. The bench was supported on either end by painted metal panels. Each panel had a round hole in it to support the ends of a cylindrical, chrome-plated footrest bar. The footrest bar was insulated from the support panels by the paint, and it could spin in the round holes.
When someone was working at the bench, it was common for them to rest a foot on the bar. Often they would idly spin the bar without thinking about it. A rubber-soled shoe spinning a metal bar that is insulated from the rest of the world is essentially a Van de Graaf generator. Static charges will build up on the bar until the potential is high enough to arc over to the metal bench supports. Of course. The charge would go to ground through the power supply's power cord, confusing the power supply.
Grounding the footrest stopped the resets.
This entry was submitted by Mitch Bradley and edited by Rob Spiegel.
Mitch Bradley is a firmware engineer who developed Open Boot/Open Firmware. He currently spearheads the firmware and diagnostics for the One Laptop per Child project.
Tell us your experience in solving a knotty engineering problem. Send stories to Rob Spiegel for Sherlock Ohms.