Programmable Resistor



When creating a new project, I typically start prototyping with a breadboard and through-hole components. This involves sifting though multiple components including the endless, tangled mess of resistors I have in my drawer. I wanted a quicker way to add resistance to a circuit and easily adjust it without spending hours deciphering the color bands and searching for the corresponding resistor.
A few mechanical counters have been laying around in my miscellaneous component bin for a while. I've always enjoyed the mechanism and could never figure out a useful way to implement them into a project until now!
This is a programmable resistor whose value can be set between 1 to 9,999,999 Ohms with just a few clicks utilizing a series of mechanical decade counters.
Supplies
Electronics
- Mechanical Decade counter
- Resistors (SMD 1210, 1%, 1/2 Watt)
- 9x 1 Ohm (10^0)
- 9x 10 Ohm (10^1)
- 9x 100 Ohm (10^2)
- 9x 1 kOhm (10^3)
- 9x 10 kOhm (10^4)
- 9x 100 kOhm (10^5)
- 9x 1MOhm (10^6)
- Custom PCB
- Wire
- Header pins
Tools
- 3D printer, filament
- Soldering Iron
- Multimeter
- Acrylic Paints, paint brushes, tape
Concept




The first task was to understand how the decade counter works. The counter contains digits 0-9 and has two buttons that rotate the dial to count up (+) or count down (-). There are 11 contact points in the back and when the digit is selected, the circuit is connected through that digit and the common "C" pin. I will use this to complete the circuit to each single resistor.
For example (using the first counter with 9x 1 Ohm resistors):
Selecting 6 would complete the circuit between the 6th resistor which would be in series with all of the previous resistors and output 6 Ohms.
Each single decade counter would be able to cycle through 0-9 resistors. The first counter would connect the set of 1 Ohm resistors, the second counter would connect the set of 10 Ohm resistors, the third counter would connect to the set of 100 Ohm resistors, etc. Then all of the counters would be connected to each other through jumper wires.
Creating the Circuit




I wanted to make this project as small as possible which is why I decided to use SMD components and create my own PCBs. 1210 is about the smallest package that I can solder by hand. There are many great guides on how to create a custom PBC. Also feel free to check my other instructables for details on the process.
This circuit is fairly simple but I needed to make sure the decade counter output pins line up with the pins on my PCB. I also need to ensure the size of the pads for each resistor was for the corresponding surface mount package. I will need a separate PCB for each decade counter which is a total of 7. The Gerber files are listed below.
Soldering the PCBs










Once the PCBs arrived, the next step was to solder all of the resistors. This was a tedious process but I was able to successfully add all of the resistors.
Once the resistors were in place, I soldered pins to each board and utilized some blue tack to stabilize the board and keep the pins straight.
The next step was to connect the PCBs to the counters via the pins. The copper pads on the counters were difficult to solder to and the joints were not very consistent but I confirmed each connection with a multimeter.
Once all of the individual counters were complete, the next step was to add jumper wires between each counter. Finally, 2 additional wires were connected to the terminal block to incorporate all of the counters into the circuit.
Create the Case










I designed a basic box in Autodesk Fusion360. This was printed in two parts including the box and a face plate that would snap in place. There was a cutout for the terminal block which I hot glued in place. All of the components were test fitted.
The next step was to color the outside of the case with bright colors of the rainbow. I liked the idea of using the same colors as the standard resistor bands to signify the significant digits and corresponding resistance values. See the table above as reference.
I started by painting the whole case black as the base color. Then I used masking tape to mark off each band of color. Each color was painted with multiple coats until a vibrant color was achieved. Once the tape was removed, there was some bleed within the layer lines that I touched up with black paint. Lastly, the whole case was "sealed" with matte mod podge.
Final Assembly and Testing




Once the paint was dry, it was time to assemble the counters into the case. The terminal block was hot blued into position. The face place was fit around all of the counters and they were just a "press fit" with the tabs on the counters. A small amount of hot glue was used to attach the faceplate to the box. Finished!
Now it's time to test the new programmable resistor. It works surprisingly well and is fun to "program" with multiple clicks! See my additional thoughts below.
Final Thoughts









There is definitely some error measured either at the limit of my multimeter testing or within the resistor tolerance. Additionally there is likely some unaccounted for internal resistance presumably from the decade counters, tracing sizes of the PCB copper, length of wire between each counter. This becomes more apparent at smaller set resistances. However this only varies by about +-5 Ohms.
Overall I am pretty happy with this project and is more of a fun proof of concept. It's definitely a unique way to incorporate mechanical decade counters. I will definitely be using this for my future prototyping.
Happy making!