How many times while prototyping a circuit you had to search for a particular resistor value spending almost half an hour trying to find it? How many times you measured a resistor with your multimeter, just to make sure it really is the value you think it is before putting it on the breadboard? And how many times you realized you just don't have the resistor value you need and you have to put many resistors in series and / or in parallel to make it.

If you answered any of those questions with "**a lot**" then you are on the right place. In this instructable I will show you how to make you own, very simple but yet extremely useful decade resistance box, which is going to make your life much easier while working with electronics.

## Step 1: Tools and Parts

**To build the resistance box you are going to need the following parts:**

- 8 x Decimal (0-9) Pushwheel Switch Encoders
**KSA-2**- Make sure to get exactly the same with me (see photo), otherwise soldering SMD resistors might not be as easy.

- 8 x
**1Ω**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**1Ω**Through Hole Resistor 1% tolerance

- 8 x
**10Ω**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**10Ω**Through Hole Resistor 1% tolerance

- 8 x
**100Ω**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**100Ω**Through Hole Resistor 1% tolerance

- 8 x
**1K**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**1K**Through Hole Resistor 1% tolerance

- 8 x
**10K**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**10K**Through Hole Resistor 1% tolerance

- 8 x
**100K**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**100K**Through Hole Resistor 1% tolerance

- 8 x
**1M**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**1M**Through Hole Resistor 1% tolerance

- 8 x
**10M**SMD Resistors (**0805**package) 1% tolerance

- 1 x
**10M**Through Hole Resistor 1% tolerance

- 2 x Gold Plated BananaBinding Posts - Any banana binding post pair will do, but in my opinion gold plated ones on a glossy black enclosure look really nice.

- 1 x Glossy Black Plastic Enclosure
**135 x 75 x 50mm**(L x W x H) - In case you get a different size enclosure be very careful with the height, make sure it is at least**50mm**.

- Solid Core Wire -
**0.65mm**(**22 AWG**) or slightly thicker is all you need.

- 1 x Hot Glue Stick

- Solder Wire

- Solder Wick

- Flux - As always the key to SMD soldering is flux. For me liquid rosin flux works the best, but you can use any flux you like.

**And the following tools:**

- Soldering Iron

Diagonal Cutter

- Phillips Screwdriver

- Hot Glue Gun

- Dremel - With a disk that can cut through plastic, plus drill bits.

- Multimeter - With at least
**100mΩ**resolution on the resistance measurement setting.

*All parts can be found easily on eBay. You can get resistors will less than 1% tolerance if you want to make a more accurate decade resistance box, but the better the tolerance the higher the cost. You can find 0805 SMD resistor kits with 1% tolerance very cheap on eBay.*

## Step 2: Soldering the Resistors

Let's start by soldering the **1 Ω** resistors first. First, apply some solder on the pad '**0**' of the first encoder, then add some flux on top of it and solder the right side of the first resistor. Next, apply some flux of the left side of the resistor and solder that one to. Apply some more flux on top of the solder on pad '**1**', and solder the right side of the second resistor.

Continue the same way until you reach pad '**4**'. After soldering the left side of the fourth resistor, apply some solder on the pad '**5**' and using the same technique solder the remaining four resistors.

Finally, solder the **though hole** 1 Ω resistor between the pads '**4**' and '**5**', while trying to keep the leads as short as possible. Don't throw the remaining leads away after cutting them, you will need them for later.

In the same way, continue soldering the resistors on the seven remaining encoders. Be careful to not accidentally use different resistor values on the same encoder. In case you accidentally short two pads together, the solder bridges can be easily removed using some solder wick.

After you are done soldering all the resistors on the encoders make sure to test them using your multimeter. Most multimeters beep during continuity testing if the resistance is less that 30 Ω. So, for testing the 1 Ω and 10 Ω ranges use the **resistance** measurement setting of your multimeter, not the continuity test.

The major reason why I decided to use SMD resistors instead of through hole ones was to minimize parasitic inductances and capacitances. Also, in my opinion soldering SMD resistors is much easier than through hole ones. Unfortunately, I couldn't exclusively use SMD resistors because one resistor has to jump over the '**C**' pad on each encoder. And since the distance was very far, it had to be a though hole one.

## Step 3: Joining the Encoders

Now it's time to connect the individual decade encoders together. Start by putting the **10 Ω** range encoder on top of the **1 Ω** one and push them together until they fuse. Then, go ahead and solder the '**C**' pad of the **1 Ω** range encoder to the '**0**' pad of the **10 Ω** range encoder. To do that, you can use the leads of the through hole resistors you kept from the last step.

Next, put the **100 Ω** range encoder on top of the **10 Ω** one and again solder the '**C**' pad of the **10 Ω** range encoder to the '**0**' pad of the **100 Ω** range encoder.

Continue the same way, until you join all the encoders together. After you are done, set all the encoders to zero and verify that between the '**0**' pad of the **1 Ω** range and the '**C**' pad of the **10 MΩ** range the resistance is close to **0 Ω**.

## Step 4: Preparing the Enclosure

Now, you need to prepare the enclosure. The very first thing you need to do is to carefully **measure** the total width and length of the encoders and **mark** the spot where you want to open the rectangle hole. In my case the rectangle hole had to be exactly **80 x 30mm**, which is also going to be the case with you if you got the exact same decade encoders with me.

Next, mark the spots where you want to drill the holes for the binding posts. Drilling the holes for the binding posts may add a lot of tension on the plastic, so make sure to open them first **before** opening the rectangle hole. The size of the holes for the binding posts should be around **3.5mm**, depending the biding posts you have. Their size though is not very critical as the binding posts are usually mounted using nuts and washers.

Finally, using your Dremel open the rectangle hole for the encoders. The size of the hole is critical, so make sure to go slow and carefully.

## Step 5: Putting Everything Together

After you are done with the enclosure, it's time for the fun part. Start by putting the binding posts on the holes you made on the enclosure and screw them in place. After that, push the encoders inside the rectangle hole and secure them using hot glue.

Next, solder some solid core wire from the '**0**' pad of the **1 Ω** range to one of the binding posts and another one form the '**C**' pad of the **10 MΩ** range to the other binding post. Try to keep the wires as short as possible to minimize parasitics.

Finally, put the two pieces of the enclosure together, screw the lid and your decade resistance box is finally ready!

In the following steps I'm going to do a quick analysis about the accuracy of the decade resistance box, using some actual measurement data. Next, I'll also attempt to measure its parasitic inductance using a fast edge pulse generator. And finally, I'll demonstrate how the parasitic inductance can affect the accuracy of the resistance box on higher frequencies.

I know that some people may find the next part a little boring, so if your goal is to just make your own decade resistance box and that's it, you don't have to continue reading. But, if your goal is also to learn, I highly recommend continue reading. In case you find some concepts hard to grasp or there are parts that you can't understand please feel free to leave a comment and I'll try to help you as much as I can.

## Step 6: Accuracy Testing

After finishing the decade resistance box, I decided to take some measurements using my multimeter and test its accuracy using some actual data. Unfortunately, I don't have a fancy multimeter with incredible high resolution and super huge accuracy, just an Extech EX330, but even with that we can get a basic idea about its performance.

In the following table you can see five different columns. First we have the theoretical resistance value, next we have the actual resistance value, after that we have the error percentage and on the two last columns we have the resolution of the multimeter and the accuracy as stated on the datasheet of the Extech EX330. We need to take into account both the resolution and the accuracy of the multimeter in order to interpret our results correctly.

Theoretical Resistance | Actual Resistance | Error Percentage | Multimeter Resolution | Multimeter Accuracy |
---|---|---|---|---|

0 Ω | 1.2 Ω | 100.00% | 0.1 Ω | 1.2% + 4d |

1 Ω | 2.2 Ω | 54.55% | 0.1 Ω | 1.2% + 4d |

2 Ω | 3.1 Ω | 35.48% | 0.1 Ω | 1.2% + 4d |

3 Ω | 4.2 Ω | 28.57% | 0.1 Ω | 1.2% + 4d |

4 Ω | 5.0 Ω | 20.00% | 0.1 Ω | 1.2% + 4d |

5 Ω | 6.2 Ω | 19.35% | 0.1 Ω | 1.2% + 4d |

6 Ω | 7.1 Ω | 15.49% | 0.1 Ω | 1.2% + 4d |

7 Ω | 8.0 Ω | 12.50% | 0.1 Ω | 1.2% + 4d |

8 Ω | 9.1 Ω | 12.09% | 0.1 Ω | 1.2% + 4d |

9 Ω | 10.1 Ω | 10.89% | 0.1 Ω | 1.2% + 4d |

10 Ω | 11.1 Ω | 9.91% | 0.1 Ω | 1.2% + 4d |

20 Ω | 20.8 Ω | 3.85% | 0.1 Ω | 1.2% + 4d |

30 Ω | 30.8 Ω | 2.60% | 0.1 Ω | 1.2% + 4d |

40 Ω | 40.6 Ω | 1.48% | 0.1 Ω | 1.2% + 4d |

50 Ω | 50.7 Ω | 1.38% | 0.1 Ω | 1.2% + 4d |

60 Ω | 60.6 Ω | 0.99% | 0.1 Ω | 1.2% + 4d |

70 Ω | 70.5 Ω | 0.71% | 0.1 Ω | 1.2% + 4d |

80 Ω | 80.4 Ω | 0.50% | 0.1 Ω | 1.2% + 4d |

90 Ω | 90.3 Ω | 0.33% | 0.1 Ω | 1.2% + 4d |

100 Ω | 101.4 Ω | 1.38% | 0.1 Ω | 1.2% + 4d |

200 Ω | 202.2 Ω | 1.09% | 0.1 Ω | 1.2% + 4d |

300 Ω | 302.5 Ω | 0.83% | 0.1 Ω | 1.2% + 4d |

400 Ω | 402 Ω | 0.42% | 1 Ω | 1.2% + 2d |

500 Ω | 502 Ω | 0.34% | 1 Ω | 1.2% + 2d |

600 Ω | 602 Ω | 0.28% | 1 Ω | 1.2% + 2d |

700 Ω | 703 Ω | 0.38% | 1 Ω | 1.2% + 2d |

800 Ω | 803 Ω | 0.34% | 1 Ω | 1.2% + 2d |

900 Ω | 904 Ω | 0.41% | 1 Ω | 1.2% + 2d |

1 KΩ | 0.993 KΩ | 0.74% | 1 Ω | 1.2% + 2d |

2 KΩ | 1.981 KΩ | 0.97% | 1 Ω | 1.2% + 2d |

3 KΩ | 2.974 KΩ | 0.88% | 1 Ω | 1.2% + 2d |

4 KΩ | 3.960 KΩ | 1.02% | 1 Ω | 1.2% + 2d |

5 KΩ | 4.98 KΩ | 0.41% | 10 Ω | 1.2% + 2d |

6 KΩ | 5.96 KΩ | 0.68% | 10 Ω | 1.2% + 2d |

7 KΩ | 6.95 KΩ | 0.72% | 10 Ω | 1.2% + 2d |

8 KΩ | 7.94 KΩ | 0.76% | 10 Ω | 1.2% + 2d |

9 KΩ | 8.96 KΩ | 0.45% | 10 Ω | 1.2% + 2d |

10 KΩ | 10.01 KΩ | 0.10% | 10 Ω | 1.2% + 2d |

20 KΩ | 20.06 KΩ | 0.30% | 10 Ω | 1.2% + 2d |

30 KΩ | 30.09 KΩ | 0.30% | 10 Ω | 1.2% + 2d |

40 KΩ | 40.0 KΩ | 0.00% | 100 Ω | 1.2% + 2d |

50 KΩ | 50.0 KΩ | 0.00% | 100 Ω | 1.2% + 2d |

60 KΩ | 60.2 KΩ | 0.33% | 100 Ω | 1.2% + 2d |

70 KΩ | 70.2 KΩ | 0.28% | 100 Ω | 1.2% + 2d |

80 KΩ | 80.2 KΩ | 0.25% | 100 Ω | 1.2% + 2d |

90 KΩ | 90.3 KΩ | 0.33% | 100 Ω | 1.2% + 2d |

100 KΩ | 98.6 KΩ | 1.42% | 100 Ω | 1.2% + 2d |

200 KΩ | 197.5 KΩ | 1.27% | 100 Ω | 1.2% + 2d |

300 KΩ | 297.6 KΩ | 0.81% | 100 Ω | 1.2% + 2d |

400 KΩ | 397.1 KΩ | 0.73% | 100 Ω | 1.2% + 2d |

500 KΩ | 498 KΩ | 0.40% | 1 KΩ | 2% + 3d |

600 KΩ | 597 KΩ | 0.50% | 1 KΩ | 2% + 3d |

700 KΩ | 695 KΩ | 0.72% | 1 KΩ | 2% + 3d |

800 KΩ | 795 KΩ | 0.63% | 1 KΩ | 2% + 3d |

900 KΩ | 895 KΩ | 0.56% | 1 KΩ | 2% + 3d |

1 MΩ | 0.990 MΩ | 1.01% | 1 KΩ | 2% + 3d |

2 MΩ | 1.979 MΩ | 1.06% | 1 KΩ | 2% + 3d |

3 MΩ | 2.973 MΩ | 0.91% | 1 KΩ | 2% + 3d |

4 MΩ | 3.971 MΩ | 0.73% | 1 KΩ | 2% + 3d |

5 MΩ | 4.99 MΩ | 0.20% | 10 KΩ | 2% + 3d |

6 MΩ | 5.98 MΩ | 0.33% | 10 KΩ | 2% + 3d |

7 MΩ | 6.97 MΩ | 0.43% | 10 KΩ | 2% + 3d |

8 MΩ | 7.96 MΩ | 0.50% | 10 KΩ | 2% + 3d |

9 MΩ | 8.96 MΩ | 0.45% | 10 KΩ | 2% + 3d |

10 MΩ | 10.00 MΩ | 0.00% | 10 KΩ | 2% + 3d |

20 MΩ | 19.97 MΩ | 0.15% | 10 KΩ | 2% + 3d |

30 MΩ | 29.94 MΩ | 0.20% | 10 KΩ | 2% + 3d |

40 MΩ | 39.94 MΩ | 0.15% | 10 KΩ | 2% + 3d |

Please note that the reason the error percentage appears to be a lot higher that 1% on the lowest ranges is because the decade resistance box has a **constant offset** of **+1.2 Ω** which is caused by the connectors, the wires and the internal resistance of the decade encoders. If we subtract 1.2 Ω from the values on the lower ranges, we can see that we get a much smaller error percentage.

Also, as we see my Extech EX330 has an accuracy of **1.2%** on the smaller and medium ranges and a **2%** on the larger ranges. That means the measurement can be off by 1.2% from the **real** actual resistance value on the smaller and medium ranges and off by 2% on the larger ranges. So, in cases where the error appears to be over 1% for a small amount, it's possible that this was the reason. Because, in case a resistor happens to be close to 1%, by adding the accuracy of the multimeter it can appear that it exceeds 1%, when in reality it doesn't.

Unfortunately, since I don't have a multimeter with a better accuracy on the Ohms range, I have no way verifying it at the moment.

## Step 7: Measuring the Parasitic Inductance

After testing the accuracy of the resistance box, I thought I should also measure its parasitic inductance.

**Test Setup**

To measure the parasitic inductance I came up with the following test setup. I used a **fast edge pulse generator** based on a SN74HC14N Schmitt-Trigger to inject high energy pulses on the decade resistance box while I had it in parallel with an 1nF capacitor, handpicked to be as close as possible to that value.

The idea was that those fast edge pulses were going to cause the tank circuit, formed by the 1nF capacitor and the parasitic inductance of the resistance box, to ring on its resonant frequency. Then, using my oscilloscope I could measure the frequency of the oscillation and using the resonant frequency formula I could calculate the inductance.

The great thing about this technique is that you don't even have to own a signal generator to do it, just an oscilloscope. If you want to know more about measuring inductors using a fast edge pulse generator and an oscilloscope, check out this great video from **w2aew** on YouTube.

To connect the output of the pulse generator to the resistance box I used two jumper wires. And for that reason before measuring the inductance of the resistance box, I measured their own inductance in order to subtract it from the final measurement later.

**Taking the Measurement**

First I measured the parasitic inductance of the jumper wires I used to connect the resistance box to the pulse generator.

As you can see on the screenshot from my oscilloscope, the frequency of the oscillation is around **12.5 Mhz**. Which means that the inductance of the jumper wires is around **162 nH**.

Next, I measured the parasitic inductance of the resistance box connected to the pulse generator using the same jumper wires.

As you can see, the frequency of the oscillation is around **5.1 Mhz**. Which means that the total inductance is around **974 nH**.

Subtracting now the inductance of the jumper wires from the total inductance, we get that the parasitic inductance of the resistance box is around **812 nH**, or about **0.8 uH**.

Unfortunately, this technique works only while the resistance box is set close to zero Ohms, because as soon as a high enough resistance is introduced the oscillations become so small in amplitude and die out so fast, which makes virtually impossible to measure their frequency. Fortunately, since the resistance box uses mostly SMD resistors, we expect that the parasitic inductance they are going to add will be so small that it can be safely ignored.

## Step 8: Frequency Response

**Why the parasitic inductance matters**

So, what this parasitic inductance of **812 nH** is going to mean for our resistance box? In simple terms, an inductor behaves like a frequency dependent resistor with AC signals, and the value of that "resistor" can be calculated using the following formula.

We call this value **inductive reactance**, but really is just a fancy name for the *frequency dependent resistance *that inductors have on AC signals. We just call it inductive reactance instead of resistance to prevent confusion.

So, with an AC signal of **10 Khz** for example, the parasitic inductance will behave pretty much like a **resistor** in series with our resistance box with a value of **51 mΩ**.

Which may not sound like a lot, but as we increase the frequency the inductive reactance will also be increased. For example, with an 1 Mhz signal it's going to be around 5.1 Ω, with a 10 Mhz one it will be around 51 Ω and with a 20 Mhz one it will be around 102 Ω! That means at high frequencies on the lowest ranges the inductive reactance is going to dominate, thus limiting the usability of our resistance box on the lower ranges.

**Testing the impact of the ****parasitic inductance**

To demonstrate that issue I set my resistance box to **50 Ω**, while I had it in series with my signal generator which also has a **50 Ω** output impedance, and I measured the peak to peak voltage while the frequency was at 1 Khz, 10 Khz, 100 Khz, 1 Mhz, 10 Mhz and 20 Mhz.

On my signal generator I also set the amplitude of the signal to be exactly **2 Vp-p**, so, since we basically have two 50 Ω "resistors" in series forming a **voltage divider**, we would normally expect to see **1 Vp-p** across the resistance box regardless the frequency of the signal.

But, since our resistance box is not perfect and it has an amount of parasitic inductance as we are going to see that's not actually going to be the case.

On the image below you can see the signal across the resistance box while its frequency is at **1 Khz**:

Here while it is at **10 Khz**:

Here while it is at **100 Khz**:

And finally, here while it is at **1 Mhz**:

As we see, the signal on all those frequencies is about **1 Vp-p**, exactly as we expected it to be. But see what happens when we increase the frequency to **10 Mhz**:

As you can see, the amplitude of the signal has started to **increase**, let's increase the frequency a little more, to **20 Mhz**:

As you can see, the amplitude is now about **1.5 Vp-p** instead of the theoretical 1 Vp-p. Since the output impedance of the signal generator is fixed at 50 Ω, this can only mean that the resistance of the resistance box has been increased by roughly **100 Ω**!

And that makes sense, because if we calculate the inductive reactance of the parasitic inductance, which we have already measured to be about **812 nH**, at 20 Mhz we get,

that it is about **102 Ω**.

That means instead of just the 50 Ω resistance of the resistance box we also have an additional 102 Ω in series which comes from the parasitic inductance. So, using the voltage divider formula we can calculate that the voltage across our resistance box is going to be,

roughly **1.5 Vp-p**, which gets validated from our measurement.

## Step 9: Ideas for Improvement

As we've seen our decade resistance box is not perfect, but there are still ways to improve its performance.

**Improving the Resistance Accuracy**

To improve its accuracy you can obviously use lower tolerance resistors. Using 0.1% or even 0.05% tolerance ones will effectively increase the accuracy a lot, but this will also increase the cost and one of our goals is to keep the cost as low as possible.

If you have a bigger amount of resistors, not just the exact number required to make the resistance box, you can measure them and use the ones that are the closest to the desired value on each range. Of course, this will add some overhead to the building process, but if you have the time to do it, it will definitely worth it in the end.

We've also seen that the decade resistance box had a resistance offset of **+1.2 Ω**, mainly caused by the resistance of the switches. And that offset will make all the resistance settings up to 100 Ω to have a greater than 1% error. Luckily there is an effortless way to fix that issue.

One thing you need to remember is that this +1.2 Ω offset is constant, so we can "fix" it by simply dialing 1 Ω less than the desired value on our resistance box. That way the offset will become +0.2 Ω from +1.2 Ω that it was before. Keep in mind though that the reason this trick works is because I have actually measured that resistance offset, so I know it's about 1 Ω. If you're making this yourself the resistance offset might vary and setting the resistance box to 1 Ω less might actually make the things worse. So, don't forget to measure the resistance offset of your own decade resistance box first.

**Reducing the Impact of the Parasitic Inductance**

Another thing we saw was the presence of parasitic inductance, which at lower resistance ranges as I demonstrated starts to gradually become an issue as the frequency of the signal rises above 1 Mhz. As I already explained, the parasitic inductance acts like an extra frequency dependent resistor in series with the resistance box, which can increase the error above 1% on the lower resistance ranges if the frequency is high enough.

From my tests I came into the conclusion that the major contributors to that parasitic inductance were the decade encoders themselves. So, an easy and simple fix would be to just add a switch that would short the 1 KΩ and above ranges, in case you want to work with low resistances at high frequencies.

That way you would just have the parasitic inductance of only three decade encoders instead of eight, which is going to reduce the total parasitic inductance by several hundreds of nH. And as a good side effect, this should also reduce the resistance offset, since now you'll have the resistance of only three encoders in series, so I think it would definitely worth the shot.