Simple DIY Volume Control Knob!

98,987

348

69

About: Follow me in Instagram: https://www.instagram.com/engineeringns/

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 aliexpress.com for less than $2 USD

Lets get started!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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: https://digistump.com/wiki/digispark/tutorials/con...

Once set up, go to: https://learn.adafruit.com/trinket-usb-volume-knob... 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.

Note:

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!

Note:

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!

If you liked it, Follow meh on instagram where I post project updates: https://www.instagram.com/engineeringns/

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

into:

#define PIN_ENCODER_A 2

#define PIN_ENCODER_B 0

Remember to check out some of my other instructables!

15 People Made This Project!

Recommendations

  • Indoor Lighting Contest

    Indoor Lighting Contest
  • Make It Fly Challenge

    Make It Fly Challenge
  • Growing Beyond Earth Maker Contest

    Growing Beyond Earth Maker Contest

69 Discussions

0
None
ForrestA3

1 year ago

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

https://pastebin.com/qBANMPkr

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 https://github.com/adafruit/Adafruit-Trinket-USB/b...

But they dont all seem to work


You can even change it to whatever key you want

3 replies
0
None
KenokkeForrestA3

Reply 1 year ago

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

0
None
vasiac.lucian

6 weeks ago

Does anybody know if it's possible to add a white led to this controller?
It would be nice to be able to control the led brightness with same encoder, so when the volume is down, the led light is down and when you're increasing the volume you're increasing the led brightness too.

Thanks!

0
None
saadland

Question 7 weeks ago

Hello.
I am want to make such volume knob, but I would like it to be less, if possible.
Did somebody did manage to make it; or though about it.
I am looking for a bluetooth module that can handle HID, to transmit keyboard data, and a battery for it to be wireless.
Can somebody recommand some advices module please:
Thx

0
None
mauempoleon

Question 9 months ago

Hi, i´m making the project but the mute button doesnt work, it only turn off the intregated LED on the Digispark. What can i do?

IMG_20181031_081039-1.jpgIMG_20181031_081453-1.jpg
1 answer
0
None
scek.urosmauempoleon

Answer 4 months ago

If I connect cables like this then volume control is very smooth. With other configuration it doesn't work as well. Sometimes it doesn't change volume, sumetimes do.
I'm using rotary encoder with small motherboard underneath and it has 5 pins, so I can't copy from original post (which has only 3). I'm also using ATTINY85 with microUSB, not the one from the picture.
I really would like MUTE to work so I could finish my project. The red light near the P2 pin blinks if I press the switch so I must be very close. None of the solutions in comments doesn't work for me. Or I don't understand how to connect cables :)
So if anyone has the solution, please share.

0
None
Quang1102

Question 1 year ago

How to use the remaining 3 batteries (p3, p4, p5) to control led RGB (or 1pin-1led) when the Rotary encoder????. please help me!!!!!

0
None
psychodido

1 year ago

Hey Kris, Please help! I make it work only with volume knob!!! But I can not do mute when i pres the knob... The photos show how I've connected Rotary encoder and The ATtiny85! Where am I wrong?

IMG_20180427_154325.jpgIMG_20180427_154416.jpg
3 replies
0
None
Quang1102psychodido

Reply 1 year ago

Hey psychodido.
Tôi cũng có cùng một vấn đề như bạn, và tôi giải quyết nó bằng cách loại bỏ các
bảng mạch và chỉ để lại bộ mã hóa quay sau đó nút tắt tiếng đã hoạt
động đúng cách. Tôi nghĩ rằng các điện trở trong bảng mạch đã gây ra
vấn đề này

39557686_665829127117405_3856022518817095680_n.jpg39745140_308819336558580_1656843386017021952_n.jpg
0
None
PremS62psychodido

Reply 1 year ago

GND to GND


CLK to 0


DT to 2

SW to 1

+ to 5v

0
None
BastianM7psychodido

Reply 1 year ago

Hey psychodido. Did you get it to work? I wired my Tiny85 with the encoder as shown in your pictures; my volume up/down now works correctly, but i have the same problem as you: The Mute-Button don't work. Any suggestions? :-/

1
None
AikonM

Tip 1 year ago

You can use an another version of the board to avoid a wire connection :)

I used a encoder from old mouse. It's very small.

IMG_20180803_001022.jpg__2.jpg___3.jpg__4.jpg
0
None
ArugulaZ

1 year ago

Interesting idea. Generally I use pennies and hot glue to add weight to dials. Unfortunately, none of mine ever seem to work the way I want... heh.

Is it possible to make a rotary controller like this, except use it for mouse control? You know, turning the knob makes the cursor move in that direction. I'm asking because I like playing dial games like Arkanoid, but there's not a controller for PCs with that functionality. Even adapters for Atari paddles don't support the mouse, and emulators pretty much demand it.

0
None
PaulB643

Question 1 year ago

I bought http://www.dx.com/p/micro-usb-interface-digispark-kickstarter-attiny85-development-board-378845#.Wn4kBXPLfqA . But i don't now how to program it to use more 2 functions and how to make the swicths work.
I use this https://learn.adafruit.com/trinket-usb-volume-knob/add-a-mute-button. 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!

1 answer
1
None
teddyking

1 year ago

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...

screenshot.114.jpg
0
None
Marmbo

2 years ago

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