Deej - a Physical Volume Mixer

19,812

239

12

Introduction: Deej - a Physical Volume Mixer

Meet deej!

deej is a physical voulume mixer. Just like the volume mixer built into windows, just physical! This means that you can change the volume of an application without closing your important game. You can turn the game volume down and Discord volume up, when someone joins the call, and turn the Spotify volume up when your beat comes on. Since it sits right beside your keyboard you can quickly change volume, for example if a game has a loud intro music (looking at you Civ 6).


Let's get started!

Step 1: Watch the Video!

I made a video showing the build process, give it a watch!

Step 2: Ordering Parts

You can get the full kit from my site, Ananords.com!

Preorder the electronics

Get just the PCB here (or preorder V2 of the PCB)

The parts I used are linked below:

Slide Potentiometers: (AliExpress or Amazon)

Knobs: (AliExpress or Amazon)

Arduino Nano: (AliExpress or Amazon)

Male header pins 2.54mm : (AliExpress or Amazon)

M3 x 5mm Round Head (AliExpress or Amazon)

M2 x 4mm Countersunk (AliExpress or Amazon)

Custom PCB (see next step or order above)

Step 3: PCB - Schematic

I used EASYEDA to design the PCB's.

You can get the EASYEDA file to the PCB V2 here

I ordered my PCB's from JLCPCB. You can get 5 pcs for only 2$!

You can also get the PCB's from my website:)

GetV2 of the PCB here

You can also try to make one with protoboards. You might have to change the CAD model a bit though...

Step 4: Start Printing!

The "first" step is to print the base and plate.

I printed the base and top plate in white PLA, and for the blue icons, I used Blitz Sapphire by AddNorth.

Both are printed with .15 layer height, and 20% infill.

Link to the 3D files:

STL:

Thingiverse

Prusaprinters

Cults

FUSION 360:

Ananords.com

Step 5: Solder the Arduino Board

While printing, you can start assembling and soldering the electronics!


You first need to solder pins to the Arduino, if yours doesn't already have them.

Then, you can break off the middle piece of the PCB (the Arduino daughter board). To do this, simply press in the middle PCB until the mouse bites breaks, and the PCB becomes loose.

Now you can solder the Arduino to that board.

The Arduino PCB also needs some pins to connect to the potentiometer board. You can use some wires, or a 6 pin 2.54 mm male header.

Do not solder the Arduino PCB to the Potentiometer board, or the potentiometers yet!

Step 6: Assembling the PCB's

If the 3D prints are not done yet, you can do steps 8 and 10 before this:)

You first need to insert the Arduino board into the base.

Then, carefully insert the potentiometer PCB into the base, and carefully line up the pins from the Arduino PCB with the holes on the potentiometer PCB. Make sure it is fully mounted.

Now, solder the pins to connect both boards together. When you have done that, you can slowly remove both cards from the base.

Cut the pins of the "bridge" between the Arduino PCB and the Slider PCB as short as possible!

Use a piece of tape over the pins, to remove the risk of the slider shorting the pins.

Step 7: Solder the Potentiometers

ONLY FOR V2:
In the V2 I have added 2 more screws to better secure the Arduino PCB to the case.

Insert all the potentiometers into the PCB, and solder them.

Update: Use the 3D printed spacers to lift the potentiometers away from the board, to remove the risk of the potentiometers accidentally shorting the pins of the bridge between the Arduino PCB and the Slider PCB.

Use two spacers per Slider, one on each side. Place them beside the "Large" pins. (See picture)

Make sure that all the potentiometer pins are going through the correct holes, and that they are fully inserted before soldering!

You can now insert the two PCBs back into the base.

I found that using a screwdriver to push the Arduino PCB in place helped a bit.

Use the four M3 screws to secure the Potentiometer PCB.


Step 8: Upload the Code

Start by making sure you have Arduino IDE installed. (If not, you can download it here)

Then, go to the official deej GitHub page and download the latest Arduino code:

GitHub

Direct download

Then, choose Arduino Nano as your board, and upload the code to the Arduino. (for more details)

PS: I had problems with my Arduino Nano, try to use "328p Old Bootloader" if you have problems uploading too.

You can now open the Serial Monitor, and you should be able to read the values from all the potentiometers! The value should be between 0 and 1023.

Thanks to Omri Harel for making this Open Source!

Step 9: Final Assembly

Now that you know everything works, you can assemble it together!

Take the top plate, and place it on top.

Then, take your four M2 screws and screw them in to mount the top plate.

The knobs should be easy to install, by just pressing them onto the sliders.

I also recommend gluing some rubber feet underneath to stop it from sliding.

Step 10: Software

LINUX:

Install libgtk-3-dev, libappindicator3-dev and libwebkit2gtk-4.0-dev for system tray support

Pre-built Linux binaries aren't currently released, so you'll need to build from source.

WINDOWS:

First, head over to the releases page on the GitHub site to download the latest version of the executable and configuration file. (deej.exe and config.yaml)

After downloading, place both files in the same folder in a directory anywhere on your machine (For example, Documents)

To make it run on boot, create a shortcut of deej.exe, and copy it to " %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup "


Configuration

Now that you have downloaded the software, you have to edit the config file to choose what programs to control, and to set the correct COM port, so it can connect to the Arduino.

To do this, you can right-click the config.yaml file, click "open with" and choose notepad (or better, Visual Studio Code or notepad++ if you have that)

You can also just launch the program and right-click the icon in the system tray, then choose edit configuration.

Here you can set up your programs, and choose COM port. The COM port should be the same as the one you programmed your Arduino with.

For more information on what you can change in configuration, check out the GitHub!

Step 11: Done!

You have now created your own physical volume slider!

Hope you like the tutorial:)

Any questions?

Ask in the Discord Channel, or send me a message:)


Follow me on Instagram for updates on upcoming projects:)

Instagram: https://www.instagram.com/ananordss/

Join my Discord channel: https://discord.gg/2ESzkpG4ES

Contact me: Ananords@outlook.com

••• Support me •••

Patreon: https://www.patreon.com/ananords

Donations: https://ananords.com/products/donation/

Buy me a coffee: https://ananords.com/products/donation/

Arduino Contest

Runner Up in the
Arduino Contest

3 People Made This Project!

Recommendations

  • Stone Concrete Cement Contest

    Stone Concrete Cement Contest
  • Remote Control Contest

    Remote Control Contest
  • Make It Modular: Student Design Challenge

    Make It Modular: Student Design Challenge

12 Comments

0
bfansari72
bfansari72

7 months ago

I have created the same

0
MarcosT39
MarcosT39

7 months ago on Step 11

Hello! I like this project, is amazing!
Can be configured for OBS Studio?

0
dtnelson
dtnelson

1 year ago

A schematic or at least a block diagram would be very helpful...

0
ananords
ananords

Reply 12 months ago

Updated the instructables and added a schematic:)

0
dtnelson
dtnelson

Reply 12 months ago

Thanks! I know (from experience) that it's a time consuming pain to make the schematic. I have to ask though - I don't see any inputs or outputs on the schematic; only the connections to the pots are shown. Is there something missing? Or is my brain just missing (again)? :-)

0
ananords
ananords

Reply 11 months ago

I just uploaded the schematic I used to make the PCB, so the connections for the potentiometer goes through the pin headers, and to the analog input of the Arduino. This is because I have the Arduino mounted on another PCB.

0
BenjaminD110
BenjaminD110

1 year ago

This is very handy!
I can imagine a light version with only one slider and a combo button/display to change the app you want to control. The display can be one of those ultra small (and cheap) OLED screen.
Thanks for the instructable, I may give it a shot.

0
gabriel.bertet
gabriel.bertet

Reply 12 months ago

this is exactly what I did ;D if you need there is a instructables on my page :D

0
BenjaminD110
BenjaminD110

Reply 12 months ago

Yeah that's what I'm talking about!
C'est exactement ce que j'avais en tete mdr.

0
TarsoL
TarsoL

1 year ago

could you share the schematics?

0
jessyratfink
jessyratfink

1 year ago

Really smart looking. Well done :)

0
ananords
ananords

Reply 1 year ago

Thanks!