Friday, December 11, 2009

Struggling with a bug

Hmmm... I better start with a warning:

[begin geekspeak]

In this digital age, everyone knows that a 'bug', in computer parlance, refers to a software error; usually, it's one that's hard to find. The origin of the term, as most everyone knows, dates back to the late 1940's when the precursors of computers were built with electromechanical relays, and one pernicious fault was traced to a moth trapped in the relay contacts... hence, the word 'bug' used to describe computer errors, most notably, software.

However, in the more narrow domain of hardware designers, there are 'bugs', as well. In the domain of software, the bug is found by judicious examination of pages and pages of code, combined with numerous test executions of that code. In the hardware domain, the bug is found with the aid of an oscilloscope, voltmeter, probes and tools, and, in the end, most often, by simply thinking about the problem.

That's right. The problem rarely pops out at the designer as he stares at the waveforms on the oscilloscope. Far more often, the scope traces merely provide a pile of clues... and by sifting through the clues, the designer can form a hypothesis, test it physically to form a theory, and thence, create a solution.

It's gotten far harder to do that, these days. Back in the 1970's, it was far easier. Each component had visible leads, large enough to reliably apply a voltmeter or scope probe to. The circuit boards had two layers, each side of which was accessible. Making a change to a component, or 'sky-wiring' some additional components into place, was trivial.

Nowadays, we're not so lucky. The price paid for smaller, more fully integrated electronics is smaller size... so small, that often, it's impossible to visually check anything without a stereoscope. The spacing of the leads, once a very generous tenth of an inch, is now as small as 0.5 millimeters (20 thousands of an inch), and it takes a very steady hand to be able to touch a single lead with the tip of a probe. Soldering and desolering components usually must be done under the aforesaid stereoscope. Some parts don't even have visible leads; they must be soldered in an infrared oven, hoping that the unseen leads on the bottom of the part have actually become soldered to the board. Worse yet, circuit boards often have 4, 6, 8, or even 10 layers, meaning that some connections can't be reached by a probe for testing, in any fashion.

All this gets pretty tough for the weakened eyes of the older guy, like me... I sit here wearing a 'halo', which is a headband-mounted magnifier, often turning around to another table to view something under the scope.

In my particular project, I now know what is causing the bug... now I've got to figure out how to fix it.

[end geekspeak]

No comments:

Post a Comment