This article is a work in progress, I will add information over time.
The device:
The Code:
https://github.com/nsaxelby/ArduinoSoundControl
Web interface:
Project inception:
I wanted an external device that could control the sound mix controls on my Windows PC. I wanted it to be a more tactile experience than using the Windows provided ‘Volume Mixer’, which is why I opted for rotary controls ( three to be exact ) which have a ‘press button’ included for mute/unmute.
I picked three rotary encoders for the buttons to allow me to use the following typical configuration:
Rotary button 1: Master volume Rotary button 2: Microphone volume Rotary button 3: typically this would be assigned to my music, so spofity, or chrome, this allows me to control msuic seperately to master volume, which is useful when gaming
Each rotary enocder must be able to be re-bound to other applications/devices/sessions. I can do this with ease via a web interface, a web interface was chosen so that I could use the control panel from another device or screen, for example a phone. This is useful to allow the user to operate the volume mixer controls from another computer, this in itself may be useful for some people even without the (optional) arduino sound controller hardware that I built.
Project materials/components used:
MEGA 2560 R3 Controller Board + ELEGOO complete starter kit ( Amazon £56 ) ( set comes with the LCD screen and loads of wires etc )
A3 Plywood Sheets 3mm | 420 x 300 x 3 mm | Baltic Birch Wood Ply ( Amazon £16 )
M2/M3 Bolt Nut Washer set ( 504 pieces ) ( Amazon £11 )
5x 360 Degree Rotary Encoder Code Switch Push Button EC11 Digital Potentiometer with Switch 5 Pin Handle Length 20mm ( Amazon £8 )
Consumables/tools I already had. Soldering Iron/kit, wood glue, various saws, precision rotary tool, screwdrivers, drill bits, black paint and brushes, wire clippers
Build : Arduino Sound control box
Build step 1: Getting the encoders attached to the base
This was the initial layout idea, it was going to be flatter, but with some 'dead space' to the left, before I changed to square design with tilt screen.
Encoder spacing was done using the encoders themselves as a template
Encoders spaced evenly ready for drill holes
Drawing of a mecchanism of how to hold the encoder tight to the floor, bolt holes are only on one side
I created a 'base' for the encoder parts rear to rest upon, this needed to be done to stop them 'rocking' or moving under pressure, there were only bolt holes on one side of the encoder, so a counter was needed on the other side to flatten it and stop it rocking
One encoder attached with bolts, nothing is glued as I may need to replace parts over time
Side profile view, with one extra non-holed bolt squeezing the encoder to the floor
Bottom view of three bolts holding encoder down
Side view of wooden slats where enocder is tightly pressed to to stop it rocking
Top down view of 'square' design having being cut from bigger piece of wood
Close up view of encoder 2 and 3
close up view of encoder number 1
Repeat process with three encoders now all attached to base
Build step 2: Making the lid and holes for encoders
Cut out of top piece using the base piece as a template
Unfortunately the wood boards I ordered were not identical and were not level
In order to know where to drill holes for encoders to poke through, I used the bolt heads on the base and scratched them into a piece of paper
I can then line the paaper holes up with an encoder, and press it into the base of an encoder
I can then work out the middle of the enoder and where to drill
Three drilled pilot holes, enlarged with a larger bit later
Lid rests on the four corners pretty nicely after a bit of filing down
Lined up holes over the enocder rods, I tested with the tips, and they rubbed on the wood where the green marker is, so I would have to cut out a recess to allow it to spin
Three holes cut for enoder rod to slot through, in this picuture you can see the recess in the wood I had to dremel out in order for the encoder tips to spin freely
I added four posts on the corners where the lid would rest, I manufactured these posts out of some old wooden Jenga blocks
Build step 3: Wiring and making the Tilt Screen
Lined up the arduino to fit with the end of the board where the USB will go, drilled holes and bolted them into the base
Base shot with bolted arduino board in place
Soldered in the ground pins to a common ground pin ( a screw )
Custom cut and measured wires from the encoder are in place ( I did not solder these )
Cut out a square for where the screen was initially ment to go, Note: I changed the design at the next stage as it was apparent that given the angle of the screen, and the poor contrast, I wouldn't be able to see the screen digits properly
Tilted top, to house the screen
View from the back of where the wires would go into the main unit from the tilted screen, not enough room, so I would have to enlargen the hole for the wires
Build step 4: Tilted Screen build
This is the finished angle of the screen housing, glued together at the top
Front view of LCD screen bolted down to the tilted screen housing
Side view of LCD screen bolted to screen housing
Screen bolted into the tilted housing
Cut out side pieces ( x2 ) for the tilted screen housing
Screen housing glued to lid
View from bottom of enlarged hole of tilted screen
Build step 5: Painting lid
Painted all black top lid
In order to gain clearance for the encoder tips and have them spin freely, I had to pull the top wooden piece in towards the base, I did this using a screw, and a glued together 'stack' of wood for it to grab onto to pull the top panel down slightly
Build step 6: Side panels
Template for cutting out side panel, note slightly curved due to the 'pull in' needed for clearing the rotary encoder button caps
Ready to cut out side panel
Drilled hole for USB to go into
Some rubber feet to help grip and raise off surface
Complete with side and front panels
Video of the fully working product will be posted here soon!
Completed Product:
arudino C# sound
Arduino SoundControl
March 1, 2021
Uncategorized
No Comments
Nick
This article is a work in progress, I will add information over time.
The device:
The Code:
https://github.com/nsaxelby/ArduinoSoundControl
Web interface:
Project inception:
I wanted an external device that could control the sound mix controls on my Windows PC. I wanted it to be a more tactile experience than using the Windows provided ‘Volume Mixer’, which is why I opted for rotary controls ( three to be exact ) which have a ‘press button’ included for mute/unmute.
I picked three rotary encoders for the buttons to allow me to use the following typical configuration:
Rotary button 1: Master volume
Rotary button 2: Microphone volume
Rotary button 3: typically this would be assigned to my music, so spofity, or chrome, this allows me to control msuic seperately to master volume, which is useful when gaming
Each rotary enocder must be able to be re-bound to other applications/devices/sessions. I can do this with ease via a web interface, a web interface was chosen so that I could use the control panel from another device or screen, for example a phone. This is useful to allow the user to operate the volume mixer controls from another computer, this in itself may be useful for some people even without the (optional) arduino sound controller hardware that I built.
Project materials/components used:
A3 Plywood Sheets 3mm | 420 x 300 x 3 mm | Baltic Birch Wood Ply ( Amazon £16 )
5x 360 Degree Rotary Encoder Code Switch Push Button EC11 Digital Potentiometer with Switch 5 Pin Handle Length 20mm ( Amazon £8 )
Build : Arduino Sound control box
Build step 1: Getting the encoders attached to the base
Build step 2: Making the lid and holes for encoders
Build step 3: Wiring and making the Tilt Screen
Build step 4: Tilted Screen build
Build step 5: Painting lid
Build step 6: Side panels
Video of the fully working product will be posted here soon!
Completed Product:
arudinoC#sound