Introduction: USB Volume Knob

Picture of USB Volume Knob

A USB volume knob enables you to finely tune your music on your computer. Rather than using the keys on the upper right side of my macbook's keyboard I like to use a physical knob. I decided to make my own :)


Step 1: The Electronics

Picture of The Electronics

Emulating a keyboard is relatively simple and easy with the help of a Trinket. The Trinket's USB port is used for uploading the code, but you can also use it for some basic USB 1.1 devices (such as a volume control input). Since I wanted to us a physical turning knob I decided to use a rotary encoder as an input.

I decided to buy the Pro trinket, more pins so an expansion later on would be possible.

The rotary encoders pins are connected as seen in the diagram: common pin on ground, "A" signal encoder's pin on pin #0 and "B" on pin #2. For an extra mute function the encoder's last pin is connected to pin #1. I used pin 3, 4 & 5 on the Pro trinket. As long as you make sure the pins correspond to the pins in your code it is ok to switch to a different set.

The next step would be uploading the code and testing. Adafruit made a great turorial on that:

You download the latest Trinket library, install it in Arduino, copy the code from their website (adjust it if you want extra features) and upload the sketch



The 5 enclosure parts were designed in Rhino. Consisting of a bottom and top aluminium case (CNC milled), a wooden cover (CNC milled), an acrylic/aluminium knob and the trinket. Everything is kept together with countersunk hex M3 bolts.

The wooden cover should represent the waves of the sound. These were actually modelled in combination with the CAM generated code for the CNC mill. Inspiration was found in parametrically designed waves.

Step 3: CNC'ing the Wooden Cover With RhinoCAM

Picture of CNC'ing the Wooden Cover With RhinoCAM

In this step by step screenshot overview I will explain the process. All toolpaths were directly created in RhinoCAM and exported to a .iso file; the gcode. This code is then interpreted by my CNC milling machine in Mach3

This short RhinoCAM tutorial is focussing on the main steps of the process. To use RhinoCAM you would also need to setup your machine parameters, tool parameters, cutting parameters (depth of cut, entry and exit of the tool, etc.) and a work zero. This depends of course on the machine, cutting tools and stock material you select.

In the PMB the CNC mill works with toolpaths block or parallel strategy tool paths. This can result in some unwanted texture in the material (the finer the distance between tool path and smaller the cutter, the less texture we will see)I made me look for a different way of milling. Would it be possible to mill each wave in one single toolpath? After some research I found out the Plug-in "RhinoCAM" would allow me to make a code to mill everything in one go. There is a very nice tutorial online explaining the process. The author calls process is called 'IsocurveTexture' and there is a tutorial in these links:

Step 4: NURBS STEP 1 | 2 | 3

Picture of NURBS STEP 1 | 2 | 3

Step 1: The curves for the doubled surface was created together with the overall design. I started with a contour curve and 2 guiding curves for a patch surface.

Step 2: The double curved top surface was created with a patch surface, the side with a extrusion form a contour curve and the bottom from a trimmed planar surface. this creates a closed polysurface.

Step 3: The engraving lines are created with the help of a cage editing. A set of polylines is divided into a fixed amount of control points. The cage (black line) edits multiple points at the same time, resulting a in flowing characteristic (blue lines). I've also experimented with grasshopper to create boundary regions (white lines). Later on I decided to use just the singular isocurves in the milling process instead of the boundary regions.


Picture of CNC STEPS

Step 1: selecting your curves and geometry to CNC. From the main design I copied the top cover with all necessary curves into a new file to start the milling operations.

Step 2: Since I was using a thicker peace of Tasmanian Blackwood, I had to reduce the overall thickness of the plank first. This was done in a rough cutting operation. The biggest tool I have (10 mm end mill) mills large bits of material in a spiraling manner. I ended with a rough dome shape. The RhinoCAM simulation shows the final milling paths.

Step 3: A 6 mm ballnose creates the double curved dome shape from the rough blank. In a parallel finishing path (climbing cut to create a good surface finish!) the dome shape was milled. Some light sanding before the next step resulted in a smooth double curved surface.

Step 4: The decorative ripple effect was created with the same ballnose mill. They were created with an engraving toolpath, slightly different from the tutorial. Because of the double curved surface, all ripples seem to fade into the surface.

Step 5: The inner ring and outer contour was cut with a 2.5 mm end mill in a profiling operation. The part was lightly sanded again, removed from the inc machine and finished with some oil and wax.

Step 6: RESULT

Picture of RESULT

The oiled and waxed top cover.



I could have milled the aluminium enclosure on the same machine as the wooden top cover, but I decided to to this on the machine in my university's workshop. Very accurate and fast :)

Step 8: THE KNOB

Picture of THE KNOB

The knob was turned first in 2 separate part. An acrylic ring first and secondly a aluminium cylinder. Pressed together they formed the knob. I first thought of using a small set screw to mount the knob on the encoder. To not show any imperfections I chose to press fit the knob with a small leaf spring.


Picture of ASSEMBLY

I decided to add a NEOPIXEL LED ring to improve aesthetics. The code was adapted to adjust the color of each neopixel according to the position of the volume knob.

All of the effort resulted in a functional and aesthetic desk accessory


Tura Street (author)2017-01-13

I like this and think that I will make an attempt to make this. Thanks for the instructable.

rustybender (author)2017-01-05

What a disapointment. This Instructable caught my attention because it took the design from the Arduino tutorial and incorporated a neopixel ring. I already have an unused Trinket Pro and some extra neopixel rings, so I thought this would be a great project.

I don't have access to CNC, but that's not a show stopper for me. I can just craft a box and dial in my woodshop, and fill it with the electronics from this Instructable.

Unfortunately, the electronics is where this Instructable falls apart. The author took the USB volume knob from the Arduino tutorial and improved it by adding a Neopixel ring, but they failed to include any information on how that was done. It is very frustrating to see there is no updated code and no updated wiring diagram.

The CNC portion on this Instructable looks very impressive, but the omission of detail for the electronics drags it down.

If the author would update it with the code and an updated wiring diagram, it could be a really great Instructable.

You seem to have the creativity to craft something in your woodshop and courage to comment on the Instructable, I guess you can also come up with an idea of how to solve the electronics part in your preferred way. If you already decide to create your own enclosure, I've reached my goal with this Instructable; inspiring you to make something! That's whats Instructables is all about, invention!

If I wanted to make a tutorial on how to exactly copy this gadget, I would have uploaded all CAD, CAM and Arduino files. For me it is frustrating to see that some readers are complaining about not getting access to the parts they don't seem to have knowledge about. I would have never been able to make this if I just copied things. You will become a better designer and maker by trying things.

Get out there, use your imagination and practice!

Instructables is about invention, but it is also about learning. Its not just showing of something you invented, it is showing people how they can do it too. It's right there is the site's name: Instruct.

Inspiration is great, but this site is founded on instructing and learning. If you only want to inspire and not instruct, there is already a site for that, its called Pinterest.

You will note I'm not the only one who has asked for the code. That should tip you off that maybe it should have been included. These people aren't just complaining for the sake of it, they've been inspired, but are stuck like me because they don't possess the same knowledge as you. Telling them to "figure it out" is cruel.

I have been learning to code Arduinos, but I'm just beginning. For someone with no programing experience, it is like learning a foreign language. Someday I hope to be to the point where I can conceive an idea and code it from scratch, but that is a long ways off. Looking at other people's code allows someone like me who is still learning to look at it and see how it works! Once I understand how it works, I can use it as-is, or modify it for another project.

Don't think by offering a little hand-holding you are preventing people from learning. It is quite the opposite. Show us how it is done so we can take that knowledge and run with it!

mattts (author)2016-12-29

@Trochilidesign this is a really cool idea. Want to give it a try. Will you be able to share the modified code to accommodate the NeoPixel ring as well as the wiring schematics? Thanks

emurphy10 (author)2016-12-20

Question: Does anyone know how to make something like this that
would be able to adjust volume on several programs? As well as change
songs? The useful programs would we windows media player, VLC player,
and then some internet web pages like and

I know people have ripped apart other controllers and made things taht
will change the song or volume while you are on that page, I want to be
able to do it while on other pages.

ajeeter4 (author)emurphy102016-12-27

You can use AutoHotKey which is a scripting program that you could use to tie keyboard (or wheel commands in this case) to programs, key combinations, etc. It is fairly simple and straight forward to learn but can be as complicated as you want it. There is also a huge user community for support and many prewritten scripts you could modify.

FlavioM2 (author)emurphy102016-12-20

You can do that if those softwares accept hotkeys for doing those actions. See, this device act as if it is a keyboard (the wheel that exist on some keyboards, actually). The OS traps the code sent and understands that you want to get volume up or down, and send this command to the system mixer. This mixer is just a software, you can do the same with other programs, but you need to assign a hotkey to that, and send those codes from this device.

ChrisA1 (author)2016-12-21

Nice project..!!! But most of all, does it go up to "11" ?????

dlangley2 (author)ChrisA12016-12-21

Ha, I hope so.

ChrisA1 (author)dlangley22016-12-25

:) I am glad somebody appreciates "Spinal Tap "

mattcintosh (author)2016-12-22

Reminds me of the "Griffin Powermate" powermate. Solid aluminum, heavy. Adjustable Pulsing blue light on the bottom. Can be configured for any running program.

I used to use mine heavily when I worked in large spreadsheets all day and still use it sometimes for video editing.

lurifax (author)2016-12-20

See; I absolutely love this. But the thing is that more and more instructables on this site is requiring acces to very expensive machinery. I do love reading them though, but I think the site needs a kind of tag system on each instructable so you can tell before you read it if it needs CNC, milling machine or something else in a professional workshop.

RickO8 (author)lurifax2016-12-20

I totally agree... Is there an alternate instructable on how to build with common shop tools?

deluges (author)RickO82016-12-22

I you really want to make it without fancy tools (I'm assuming that you are not just complaining that the instructions are not here and that you actually plan on making this project), you can easily google "wood carving" and then "aluminium green sand casting" and you're ready to go. The CNC is just a tool here, you can extremely easily make your own substitute tools and get a similar result. Or change the design a little bit and make something new with what tools you have on hand. Or ask the author if he sells them... I'm sure that as a member of this community you have more than enough common sense and gumption to tackle this recurring problem of the missing tool.

lurifax (author)deluges2016-12-22

I am a teacher at a trade school and I have acces to 5 axis milling machines (HAAS, MDA etc) and is very capable myself of creating a project in inventor. The thing is that I would never expect anyone at all to try to replicate that as hardly anyone has acces to those tools.

If you want to show off a cool project you've made, then by all means do it but do it on an appropriate website like imgur or something. If you are trying to make an instructable it should aim at the majority of people and not only the select few.

But this could be solved if small tags were to be added to every instructable so those could be actively sought out or avoided depending on the size of your workshop.

RickO8 (author)deluges2016-12-22

No, not complaining only agreeing with several people whom I see have posted similar replies to this cool project. Yes, great results with a CNC device.

I also love photography but I discontinued my subscription to "Outdoor Photography" because it was focusing (no pun intended) more on computer photo shopped imaging as opposed to the actual art of the camera. Photo shop is a tool as well. I guess it is all about calling a spade a spade.

I'm not adverse to technology. Being an IT guy I deal with it daily and know the need in our field to stay on top of it. I look at Instructables as more of a McGuyver site for the creative mind.

My humble opinion.

Merry Christmas everybody! Cheers

chadeau (author)lurifax2016-12-20

BIG thumb up on that , lurifax.

Slime Eel (author)chadeau2016-12-20

So true *sigh*

go_boy (author)lurifax2016-12-20

This one should mention that you can build this without any access to a CNC, and that the enclosure is pure vanity. Take a small box like one thumbtacks or a ring/necklace might come in. Punch a hole int he top for the potentiometer shaft, DONE.

deluges (author)2016-12-22

That's a really neat project! I feel like the computing power of the arduino is a tad overkill but hey, I have used a full size arduino to set a timer on a simple on/off 5V to 240V relay in the past ;)

BenMillen (author)2016-12-20

come on peeps, yeah most of us don't have access to expensive machines but the gut are all made of very cheap parts and you could very easily use your imagination and creativity to adapt this to a cheaper/different enclosure, the guys done a very good job of showing how it can be done, you just need to use a little bit of imagination to make it your own

deluges (author)BenMillen2016-12-22

I entirely agree with you.

fuddlebut made it! (author)2016-12-20

I agree with Chadeau, nobody knows how to think on there own any more.

I don't own a CNC or 3D printer or any other devices like them, but I have built

several projects that used them. I took the basics of the design and invented the

rest myself. That's whats Instructables is all about, INVENTION!!!

JesseL65 (author)fuddlebut2016-12-21

well giddy up there Hoss...R.I.P.

BG_instructs (author)2016-12-21

By far the most professional instructable i have seen,

by far the best design i have seen.

We designed/made a similar button unit , at work, for a customer, the ring lighting up, same thing, 3M has got Makrofol BL, a light scattering foil, diffusses the hot spots, trick is to have a clearance of approx 2mm between led and the foil.

The only remark i could possibly have, is the split line in the alu parts, i would have made the top part all the way down, so the split line would reside at bottomside or even under the sides.

The wooden part is simply impressive and by far one of the best designs i have seen in long time, really congrats, this is trendsetting design.

The Neopixel ring, i have to check that thing, seems interesting.

jeneli41 (author)2016-12-20

Absolutely beautiful

You can built the enclosure as plain or as fancy as you want the electronics and code are the same no matter what you chose.

You knocked it out of the park.

bmiller91 (author)2016-12-20

The Trinket literature states that there is no USB serial chipset and that USB is only for uploading code. And that FTG cable is needed for normal USB connection. Is this incorrect?

Love the concept but thinking I might sacrifice an HID standard mouse to see if that can be used as controller.

lutkeveld (author)2016-12-20

Great work man! Looks awesome

MerlinTheGreat (author)2016-12-20

It all depends on the project, but in this case...

You don't really need a CNC machine, nor do you have to turn your own knob.

You can buy/make a small plastic or a wooden box to place the circuit in along with the knob which you can also buy.

The CNC machine just makes the top of the box a bit fancier.

If you want and are able to do this, go ahead, but if you just want the functionality go for a simple container and/or knob.

I like this instructable, but I would have to choose a simple box since I do not have access to a CNC machine. If I really wanted to, I could do this wavey pattern with simple tools, but it would take longer than a CNC machine and it wouldn't be as tight. That's just the way it is... Doesn't mean I can't build this project though.

BiciQueen (author)2016-12-20

Beautiful Work!!

3967 (author)2016-12-20

can you explain the software part please, how does the know gets installed in windows?

Shahid Khattak (author)2016-12-20

I think you should post instructables, which do not use so much CNC machinery, and other expensive equipments.

How about this: If the instructable requires equipment you don't have access to, then skip it. Seems kind of dumb to complain about people posting things that are too complex for you to make. Instead find a more simple project or how about this shocking suggestion: If you want to make this and don't have a CNC, go out and get a ready made enclosure or mount it in a cardboard box if that's all you can find or afford.

Campbell: What do you got there, a cardboard box?
Snake: Yeah, remember that trick?
Campbell: Thats the snake I remember, those poor fools will never know what hit them.

EnigM1 (author)Shahid Khattak2016-12-20

You don't need a CNC machine to make the housing. You could use a 3D printer, or even make something by hand. I think the main value of this instructable is in the electronic aspect of it.

GavinF2 (author)EnigM12016-12-20

Actually the housing and led ring is the only aspect of the design here.
The electronics used is just the Adafruit example code and wiring diagram.

Well if you look at a few instructables about making your own CNC machine you will see that the equipment does not have to be expensive ;)

chuck767 (author)2016-12-20

Fantastic job!!!!

gwynethh15 (author)2016-12-20

Can you post the updated code and the wiring of the Pixel ring?

ortwein55 (author)2016-12-20

Great job mate. You should design stuff for ? when you get out of university. I use a Bluetooth keyboard to do the same thing to talk to my Mac from my bed, but does not look as nice as yours! I love the design and finish! Alan.

jreigner (author)2016-12-20

Looks great. Looks like my Griffin Powermate but nicer.

HilgertB (author)2016-12-20

Is it me or am I missing the CAD files?

pantalone (author)2016-12-20

Nice job!

igorandrade (author)2016-12-20

Awesome job!



faytom (author)2016-12-19

It's a fun little project

Droxz (author)2016-12-19

Wow, really nice done.
Voted for your instructable, keep up the good work! :)

Saeed Nazarian (author)2016-12-19


zposner (author)2016-12-19

looks awesome

About This Instructable




Bio: Industrial Designer
More by Trochilidesign:USB Volume knobWooden flatpack stoolBuilding Your Own CNC Router/milling Machine
Add instructable to: