Simple DIY Volume Control Knob!





Introduction: Simple DIY Volume Control Knob!

Got a desktop with a sound system far from where you sit?--I do. After a bit of digging, I found that it was pretty easy to make my own soft volume control knob on the cheap.

In this tutorial I will show you how to create a USB volume control knob for your PC!

To keep things simple, Instead of Arduino, I will use an arduino compatible board called the Digispark. Not only is the Digispark small, but it is cheap! Normally I pick mine up from for less than $2 USD

Lets get started!

Step 1: What You Will Need...

What you will be needing:

Micro USB cable

Micro USB DIgispark (can't be full sized version)

Rotary encoder (also cheap on aliexpress)

Not needed (but nice to have): Some sort of enclosure and knob

Arduino IDE and digispark environment.

Step 2: Time to Get Everything Set Up.

I won't teach you how to use the Arduino Development Environment, there are plenty of tutorials for that on the web already. If you are not familiar with the Digispark, setup information can be found here:

Once set up, go to: and download the Library that we will be needing for this project. Extract the .zip file and place the "Adafruit-Trinket-USB-master" folder into C:\Users\ \Documents\Arduino\libraries

Then copy and paste the sketch found on the same webpage into the Arduino IDE and upload it to your digispark.


The reason that we can do this so easily is because Adafruit has a product called the Trinket that uses the ATtiny85 chip (they have developed this simple-to-use library to work with their trinket) but the DigiSpark also uses the ATtiny85 chip!--So we can very easily use the cheap digispark to run the code and save some money!

Anyway, download the library and go to step 3!

Step 3: The Wiring

Next we can start on the hardware. I shall now demonstrate my artistic skill by drawing a simple schematic for you...

Anyway, as you can see it is very simple and that is all there is to it!

Step 4: The Build!

This is optional and depends on how you want the finished product to look (unless, of course, you just want it to sit on protoboard when you're done)

What I did was cut a small hole into a pill bottle and stick the rotary encoder though it, then I hot-glued the digispark inside the lid (remember to cut a small hole in the side of the lid for the micro USB port to connect to your computer)

Lastly I glued a piece of rubber mat to the bottom--that completes the base!

For the lid, I took the knob from an old broken stereo receiver and plopped that on top!


I also filled it with wax and iron pellets to give it a heavy quality feel, but you can watch the video to learn more about that in step 5.

Step 5: Finished!

That is it!

This video may or may not be useful to you, but check it out!

If you have any problems getting it to work, contact me here on Instructables or leave a comment on the youtube video!

Also, if you find that the rotation is reversed, try changing the following lines at the top of the sketch from:

#define PIN_ENCODER_A 0

#define PIN_ENCODER_B 2


#define PIN_ENCODER_A 2

#define PIN_ENCODER_B 0

Remember to check out some of my other instructables!

15 People Made This Project!


  • Microcontroller Contest

    Microcontroller Contest
  • Spotless Contest

    Spotless Contest
  • Science of Cooking

    Science of Cooking

We have a be nice policy.
Please be positive and constructive.


1 Questions


I bought . But i don't now how to program it to use more 2 functions and how to make the swicths work.
I use this Please help! I make it work only with volume knob and mute. I need more 2 functions for FWD/BACK. I have a old front panel autoradio and I transform it for a multimedia controller of a android autoradio. Please help!


My work...



Hey guys, I added mute to the code! Here is the source. OP i strongly think you should add this.

Connect one side of the button (presumably the built in one on your encoder) to VIN, then connect the other side to p1. You can even change it from mute to whatever you like. Towards the bottom of my file you will see the MUTE command. You can change it to any of the ones given here

But they dont all seem to work

You can even change it to whatever key you want

Im wondering if there is any way to make it work as scroll whell?

Thank you!

I've featured your comment!

Could you please guide me to add more media control button. I want to use new trend mechanical switch keyboard but i can't live without these DELL magic keys. Please...


Unable to compile, I keep getting an error. Looked over the steps multiple times and everything seems fine. Error:

C:\Users\Marmbo\Documents\Arduino\sketch_aug12a\sketch_aug12a.ino:1:29: fatal error: TrinketHidCombo.h: No such file or directory

#include "TrinketHidCombo.h"


compilation terminated.

exit status 1
Error compiling for board Digispark (Default - 16.5mhz).
Invalid library found in C:\Users\Marmbo\Documents\Arduino\libraries\Adafruit-Trinket-USB-master: C:\Users\Marmbo\Documents\Arduino\libraries\Adafruit-Trinket-USB-master
Invalid library found in C:\Users\Marmbo\Documents\Arduino\libraries\Adafruit-Trinket-USB-master: C:\Users\Marmbo\Documents\Arduino\libraries\Adafruit-Trinket-USB-master

I must be late. I think you have moved whole Trinket-USB-master folder into Arduino\libraries folder, you have to move one of the subfolders, specifically TrinketHidCombo folder from inside Trinket-USB-master.

hey guys i wanted to know if this can work as a knob . it was one used as a volume knob and i just wanted to know is this can work and also can you show what pin is what


I was directed here from this Thingiverse page ( ) and it has this page linked so I am going to favourite this instructable and use this comment as a link to myself if I want to get back to that page. The 3D model looks quite good so if anyone else wants a case for this Instructables project, this one should suffice but I'm sure there are many other good ones online or even some Instructables of how to make one or something. This comment isn't advertising or anything just a note to self, ignore it if you want. I can't wait to get the parts specified in this Instructable so I can try it out so thanks to Kris S for these instructions. :)

Thank you!