I've been toying with the idea of using a Pi Zero to build a wireless music streaming box for a while. My original plan was to use cherry wood and metal to give the box a Hi-Fi look, but the wood I ordered from Rockler ended up getting delayed, and isn't coming until this Friday (10/6).
While looking at different boxes at the container store I came across a hockey puck display case made of acrylic that fit my parts and would provide an opportunity to etch the top. From a design perspective, I liked the idea of sticking a single metal knob onto the front of the box to control the volume and having the rest of the box remain clear to show off the "guts".
I definitely bit off more than I could chew for a 1 week project. I continued to add complexity (why not add a powered amp on Tuesday!), despite not having a ton of time. I spent around 20 hours on this project, 3/4 of that was the "comp" side--both hardware (lots of wiring + soldering) and software (I now hate ALSA in linux). Ultimately, if I had scaled down the complexity this would've been more successful. That said, I'm fairly happy with the results as a starting point for a longer project.
Materials Used
- Raspberry Pi Zero W
- Pimoroni Phat DAC
- Acrylic hockey puck case
- Surface mount parts (10k pot, DC jack, 1/8" stereo jack)
- Analog to digital converter (MCP3008)
- 5v voltage regulator
- Adafruit 20W class D amp
- Perf board + wiring and solder
On the electronics side, I started with a lot of components I already had on hand:
The Pi doesn't have any analog inputs on the GPIO header, so I had to use an analog to digital chip into my circuit in order to control the volume with a potentiometer. The volume control happens at the software level via a Python script I cobbled together from an Adafruit library:
Poorly soldered (but working) header pins:
I put it all together on a perf board:
Since I had previously soldered pins into the DAC I had to cut some out with clippers to make the A2D chip pins fit:
It works:
[video width="272" height="480" m4v="http://blog.nickwallace.us/wp-content/uploads/sites/2/2017/10/IMG_0088.m4v"][/video]
With the basic hardware setup, I started on the box by drilling a hole for the pot in the center of the case:
Pot mounted:
The next day, I was digging through stuff at home and came across a 20w amp I bought from Adafruit a while ago. "Why not make this project more complicated, even though you have no time to work on it?" I thought. I then spend 2-3 hours pulling off surface mount parts, attaching panel mount parts, and wiring the output to a 5v regulator circuit to power the Pi + DAC:
Wired up with sweet metal knob attached:
In my haste to drill a spot for the DC jack, I cracked the case. Fortunately, the corner remained intact, so I was able to continue for the time being:
I drilled the hole for the audio jack freehand using a dremel:
Aaaand my surface mount audio jack doesn't fit:
Testing the fit. Unfortunately, the way I wired the 12 -> 5v regulator to the perf board really screwd things up, making for a sloppy fit. If I had taken more time to plan it out I could've avoided this:
I laser etched a Pi logo onto the top of the case @ 90%/40%:
Not particularly happy with the "final" product, but it's a start. I bought another hockey puck case and am going to redo this minus the amp + voltage regulator and clean up the wiring. I will probably also add some small spacers between the bottom of the box and the Pi and perf board to give it a cleaner look.