Giant USB Volume Knob




Ever wished for a giant volume knob? I have! So I thought I'd have a go at making one and share it in my first Instructables project.

I had 2 goals:

  • Adjust volume (Up/Down/Mute)
  • Switch playback devices

The Solution: A giant volume knob!

To make things easy I went with using an Arduino ATmega32u4 board. Which can be recognised as a USB HID keyboard (using the NicoHood HID Library).

SoundSwitch is a great lightweight software for playback device switching. It provides a simple UI for set up and has the perfect functionality - shortcut macro keys to switch device, which can easily be emulated by the Arduino.

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


Materials - Electronics

Materials - Case

  • Giant volume knob
  • Aluminium U-Channel (15mm square)
  • Aluminium sheet (2mm thick)
  • Screws & Rivets

Step 2: Getting the Electronics Ready

Testing the circuit

As always I would suggest testing the circuit on a breadboard before moving on to soldering. The last thing you'd want to have to do is desolder everything!

Pin layout reference:

  • Encoder Pin A -> Pin 2
  • Encoder Pin B -> Pin 3
  • Switch -> Pin 5
  • SoundSwitch Button -> Pin 4
  • HID Switch/Jumper -> Pin 6

*If you find your encoder is reversed, just swap pins A&B on the board or the pinout in line 22 of of the sketch :

Encoder knobVol(2, 3);  // VOLUME KNOB 

Making the circuit

Depending on the encoder and enclosure you are building, it might be a good idea to have a daughter board for the encoder. The encoder in this build is a very common 12-step encoder. It does not have a mounting thread around the shaft. So I built a little daughter board with a pull down resistor for the switch and some standoffs for mounting.

The Arduino board I used is a cheap version of the Arduino Pro Micro 3.3V/8MHz, I managed to get a bunch of them from for <$10. Instead of a switch, I opted to use a bent wire jumper as this pin won't need to be toggled very often.

Step 3: Setting Up Software

Programming the Arduino

Before uploading the sketch, there are some dependencies you'll have to take care of.

  • HID-Project by NicoHood
  • Encoder by Paul Stoffregen

These libraries can be installed directly through the Arduino IDE: Sketch > Include Library > Manage Libraries. Once that is set it should compile and upload without a hitch. If you need to re-upload a sketch, setting the main HID switch to off will make it easier for the Arduino to be recognized.

Installing/Setup of SoundSwitch

Setup is very simple, download and install the latest release of SoundSwitch.

Choose your playback devices and other settings by right clicking on the SoundSwitch icon and going into settings. Make sure to check the "Run on Startup" checkbox, then you're ready to go!

Step 4: Make the Case

*This enclosure was made to match the aesthetic of my PC.

I decided to build a very basic enclosure using bits of aluminium I had lying around.

It is made up of 15mm Square U-Channel pieces cut into rabbet joints then sandwiched between two sheets of 2mm aluminium.

A great way to cut sheet materials is to use a paper template, just print out a 1:1 of your design and stick it to your sheet. This provides a nice guide for your lines and drill holes to help keep things accurate. I've attached the template I used, it was made using cadstd.

I do not recommend making the enclosure as short as I did. The tolerances were very tight. Also it could be wise to remove some of the unnecessary overhang from the U-Channel to give yourself more room.

JB Weld epoxy and rivets were used to fasten the bottom plate to the U-Channel. The same epoxy was used to fill in gaps at the joints. The top plate is held down with screws that have been tapped in to the base, this way it can be taken apart as needed.


I was aiming for a durable matte finish.

  • 2 coats epoxy primer
  • 2 coats enamel
  • 1 coat clear coat

When spray painting it is best to do light passes and let paint build up slowly. A light sanding with high grit sandpaper after the first enamel coat could yield a cleaner result.


To stop your enclosure from sliding you will need to add some form of grip to the bottom. I got very lucky and found these black rubber screw covers that I am using as feet. They fit perfectly over the rivets on the underside of my enclosure. Grip tape, thin foam/rubber were some of the other possibilities.

Step 5: Put It All Together!

Mush it all in there!

Having a semi modular design really helps at this point. Makes taking apart and putting together a lot easier. Be sure to insulate anything that could short! Hot glue and tape are your friends here.

Thoughts / Suggestions

    • Having a heavy base is great! Especially if you have buttons mounted on the side like I have done.
    • Using an Arduino is a bit overkill for this build. Another possible way to go would be to use a Micro USB Digispark, or other micro controller that can run the HID profile. This would help to miniaturize the enclosure.
    • The key combination currently set for SoundSwitch is Crtl+Alt+f11 (default). This can be changed in code line 80-84. Adding a button for switching default recording device can be achieved through the same structure used for play back device.
    • There is a lot of extra IO. This leaves space for additions like LEDs (fade with PWM?) or other buttons and controls.
    • If you are adding buttons I would recommend using a debounce library instead of boolean states like I have.

    Hope this instructable was helpful! Please do let me know if you make your own Giant Volume Knob or have any questions/suggestions :)

    1 Person Made This Project!


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    50 Discussions


    Question 3 months ago

    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:

    1 answer

    Reply 3 months ago

    Hi there,
    You could try a Bluetooth HID module like BluSMIRF HID. I have used it briefly and seems to be easy to work with.
    Good luck!


    Question 1 year ago on Step 1

    total noob here. is there a way to make the same volume controller with IR to control a sonos? Any pointers would be greatly appreciated.


    2 years ago

    Cool Thing!

    Can you say how can i read out the actual volume?

    And can i control the Mic Mute?

    It woult be helpfully...


    3 years ago

    Looks cooool.I had not built it yet. But will begin buit it soon. First let me collect the electronic & other hardware. I think is excellent e-commerce website to buy all stuff required to built a electronic project with low cost.I had just searched for "volume knob" & there was great cool small and large knobs. Aliexpress provide international shipping. Only thing is that you have to wait a bit long for delivery. Just search for "Encoder" & you will find many cheap one>


    3 years ago

    Hello! Congrats for this amazing project!

    I'm trying to make my version, but somehow I'm in trouble with ino code:

    #error "Encoder requires interrupt pins, but this board does not have any :("

    That's my first time using HoodLoader2, so ANY tips would help a LOT!

    Thanks in advance!

    3 replies

    Reply 3 years ago

    I figured out that my mistake was using Arduino Uno.

    I will try a solution proposed in this link:


    Reply 3 years ago

    Does changing the firmware remove the interrupt pin access? Hope your project works out! Easiest solution would be to switch boards to something that is compatibable without modification


    Reply 3 years ago

    I did it and was infinitely easier. Thank you!


    Reply 3 years ago

    I found mine on eBay, large aluminium volume knob. Not sure if I can link to products here


    Reply 3 years ago

    Thanks! I just bought some!


    Reply 3 years ago


    Reply 3 years ago

    If you can find the item again, just copy/paste the URL, like above.. some of the other instructables have links to their items too, as well as others pointing to optional sources the same way. I imagine you can also add the IR library, and add additional control with a IR remote, as well as the local volume control. Simply add the key-code to the same controls as the encoder (up/down) and mute button. Nice job!!!


    Reply 3 years ago

    Updated the first step with links to some of the items :)


    Reply 3 years ago

    You can copy and paste url's no problem.


    3 years ago

    I love it! Definitely on my to do list now. I really miss the manual knob.
    A while back I made this as a homage to the missing volume knob:

    1 reply

    Reply 3 years ago

    Currently I don't have an answer to this :( Although a commentor below did mention there being a few soudswitch type applications for mac out there