Fork me on GitHub

Project Notes

#414 DecadeProgrammableResistor

Building an old-fashioned 7-digit decade programmable resistor with push-button control.



I found some neat pushwheel/thumbwheel decade switches, and immediately thought “decade programmable resistor”.

A decade box is an old-fashioned bit of test equipment, allowing an arbitrary resistance to be dialed up to order.

Dave Jones has covered the concept and shown examples. A good starting point is EEVblog #212 - DIY Decade Resistance Substitution Boxes:



The pushwheel switches come as individual single-digit units that snap together. These are decade units with a common pole switching to one of 10 output pins. BCD versions are also available (these could be used, but require a somewhat more complicated resistor configuration to make a decade box).


Circuit Design

With 10-throw switches, construction is trivial:

  • stage input is connected to the common
  • the 10 poles are connected in a ladder with a resistor between each pole (9 resistors)
  • stage output is tapped from the “0” position
  • hence the resistance between input and ouput varies from 0 to 9x the resistor value

I’ve drawn the schematic for the 7-digit circuit here (EasyEDA)


The seven units for seven digits constructed. I’ve used axial 5% resistors (1Ω, 10Ω, 100Ω, 1kΩ, 10kΩ, 100kΩ, 1MΩ respectively), and theu mount quite nicely on the switches without additional wiring required.


Assembled as a 7-digit bank:



And finally encased in a traansparent case (a Ferrero Rocher box iirc) with a terminal block for connectivity:



I’ve not aimed for extreme accuracy in this build - only using 5% resistors as that’s what I had on-hand. But the results are quite agreeable - generally -2% to -4% across most of the range.

I’ve tabulated a selection of readings in this Google Sheet. Measurements were taken with a cheap digital multi-meter (which may have its own accuracy challenges).

Here’s a chart of the error from 1Ω to 1MΩ:


Credits and References

Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.