When you are designing analog circuits, you may find that you are always running to the parts bin for random resistors. It gets tiresome. And when you are biasing transistors, you would rather just wire it up and adjust for quiescent current than do all math first. It gets the job done faster. I found myself at this point alot lately. Solving equations for resistor values, then finding preferred values. Then picking out resistors from their bins and putting them into the breadboard. Take them out, replace with nearest value plus or minus. It was slowing me down, and a real inspiration killer. So I decided I should build a resistor substitution box.
Here's a quick schematic of what I came up with. Only one resistor is connected at a time. Pretty standard as far as substitution boxes go. They are mostly all the same, the only differences lie in their accuracy. I used 5% resistors, but I measured them all to get the closest value out of what I had. Measured against both my Fluke 8060A and 8000A I have achieved ~0.5% tolerance across the whole range (100 - 8.2M).
There is another common design of resistor substitution boxes (actually called decade boxes) that string many resistors together in series. This accumulates the errors in each of the connected series resistors. The effect is that when you dial in a very accurate resistor value, say 5.83K, the tolerances in all the resistors combined actually make the 3 not a significant figure, and possibly add + or - 2 in the 8 position. So you think you have a value of 5.83K, but you actually have a value in a range between 5.6K to 6.0K! Misleading, for sure. But, you should always know the precision and accuracy of all your instruments before you use them!
I never ended up adding the low Ohms feature (top left of the schematic) and I probably never will. I have ranges in the 100s, 1k, 10k, 100k, 1M at preferred values of 1, 2.2, 3.3, 4.7, 6.8, 8.2. Not as versatile as some of the commercial units, but it still does the job. Cost wise, the resistors couldn't have been more than a dollar, the two switches and knobs were salvaged from an old receiver, banana connectors were from the bottom of the parts bin and the hobby box was ~5 dollars at radioshack. Not too bad.
I wired it up using a technique I saw on a high end audio potentiometer. Solid copper wire is the common connection which all the resistors connect to. The other end of the resistors are connected to their respective pole on the switch. A problem I encountered with the open frame rotary switch (pictured above) is that the flux will flow into the switch when you solder. On the lower ranges this isn't a problem, but on the higher values (+ 500K) the flux acts as a lower resistance than the actual resistor. Of course this is a big problem (two resistors in parallel). There isn't a good way to remedy this, as you need to desolder the switch to get at the contacts to clean them. But then you need to solder the resistors to the switch again, which supplies more flux to the switch contacts. If you are able to, use a sealed switch instead of an open frame switch. This will save you a huge headache.
It fits all nicely into the hobby box with room to spare for heat dissipation (I should have used 1/2W or 1W resistors) and any additional features I may add in the future.