This is meant to be a minimal music player with no display and big meaty buttons with raised patterns to identify their function.
- Video casette case
- battery bank
- Stereo potentiometer for volume control 10k would be best, but the one in the photo is 100K resistance.
- two trimmer potentiometers to adjust the full volume loudness - 5K resistance.
- On/off switch
- 3.5mm jack socket
The one in the picture is secured with a piece of wood behind it, but a better choice would be one with a metal cylinder with nuts to hold it in place, like those on the on/off switch
- Audio player board with sd-card
The one I got also had bluetooth functionality - here's the link:
- Audio amplifier board
The ones I got were for speakers, but so cheap! Based on the Diodes Inc PAM8403 chip:
Here's the one I got.
- Buck converter
This provides the 2.5V floating ground needed to convert the push-pull outputs to single ended outputs suitable for earphones
- Tactile push buttons(x4)
- Some 0.6mm inner diameter/1mm outer diameter insulated single strand copper wire
- Some multi-coloured ribbon cable, but that's mostly for visual appeal
- Masking tape, to guard against shorts and as strain relief for the button wiring
- 3mm diameter wood screws to affix the button fixture onto the underside of the video cassette case front cover
- Soldering iron
- hot glue gun
- wire insulation strippers
- 3D printer (optional)
- hand drill (Dremel)
Because the audio player board didn't have a volume control, I was forced to jump through some hoops.
I had to weaken the output of the audio player using trimmer pots, then feed it to a stereo volume control, then to the amplifier board.
Step 1: Plan Your Enclosure
Depending on the size of battery bank you have to hand, you will have more or less space than you see in the picture.
This determines how much space you have for the audio/sd-card board and amplifier board.
I stacked mine so that I could route the 5V from the audio board directly up into the amplifier board.
If you use single strand wire then that will be stiff enough to keep the amplifier board hovering a safe distance from the audio board - no short circuits possible.
I needed something to restrict the movement of the battery pack and to prevent the audio jack socket from being pushed into the case when someone plugged their headphones in, so I picked the nearest piece of wood and cut it to shape with an angle grinder, but a circular saw would have been better.
It's a snug fit, which is exactly what's needed here.
The USB type A plug is from an old USB printer cable, just cut it so you have some left to wire up to the power switch and audio board.
Giving it the chance to change direction as it hits the edge of the case is just one more thing to prevent movement inside. I could give mine a shake and there were no rattles to be heard.
I had to remove the top of the battery pack so that the video cassette box could be closed with button fixture/cage in place.
Step 2: Wiring (part 1)
I've seen short power connectors with a type A connector at one end and a micro-USB connector at the other end but I took the route of cutting up an old USB printer cable.
The trimmer pots were soldered directly to the volume control, that gave them somewhere secure to go so they could be trimmed with the volume control bolted to the case.
I used some pieces of ribbon cable to allow some movement between the volume control/trimmers, the earphone socket, and the audio/sd-card board and the amplifier board, because color-coding helps.
Once trimmed, I turned the volume control body around to make space for the case lid and the earphone socket.
Step 3: Test Basic Functionality
Once you have the audio/sd-card board wired to the trim pots, volume control, amplifier and buck converter, you can test it.
The audio/sd-card board has buttons on it and we're going to wire these to bigger buttons later
- First, determine the exact voltage of your battery pack, mine is 5.09V.
- Divide by two, I got 2.54V.
- Adjust the output of the buck converter to provide this voltage
- The sd-card needs to be formatted as fat32. Put some songs on that you'd like to hear
- Adjust the trim pots so the loudest volume (when you crank the volume control all the way up) isn't too loud, or too quiet, and that the left and right outputs sound about equal volume
Step 4: 3D Printing/wiring (part 2)
I wanted big buttons and the 3D printer delivered.
You can use a 3D printing bureau like 3dhubs, there are plenty out there.
The problem is that, in order to print correctly, support material needs to be added to the STL/gcode, which must be removed. I used Cura 2.7 and printed them with OctoPi on a Prusa i3 clone.
I also had to add channels to route the wires out of the button support fixture - Dremel to the rescue!
All the buttons share a ground/VCC pin (I tested them on the sound/sd-card board) - all the right-hand-side pins are directly connected.
This made things easier - all the buttons would share a common connection, which I daisy-chained with some single strand copper wire.
Then I used some ribbon cable to route the 4 inputs + Common to the sound/sd-card board, soldering them to their respective button pins, with the Common pin connecting to the right side of one of the sound/sd-card board buttons.
Oh and I used the angle grinder to remove some material from the wood block so the ribbon cable would tuck neatly underneath.
Step 5: Positioning the Button Fixture
You can easily test that the buttons work before securing them to the video cassette case, I didn't.
It's just a matter of centering it horizontally and far enough down so it doesn't prevent the case from closing.
I ended up positioning it just clear of the wooden block.
If you take the paper sleeve out of the video cassette case things become clearer and you can make a mark on top roughly where the button fixture needs to go - it isn't critical.
Once you've drilled some guide holes and removed any drill shavings put the paper sleeve back in, because getting it in afterwards will involve a lot of cutting and sticky-taping.
Or you could leave it transparent if you prefer.
I only ended up using four screws to affix the button fixture to the inside of the case, and with the video cassette case closed it had a firm contact with the battery bank.
I covered the button contacts with masking tape to make things look neater, to prevent any possible shorts, and as strain relief for the ribbon cable.
Step 6: Securing the Button Faces
Warning: The "next track" button tried to stay stuck down but the hot glue doesn't stick too well to the video cassette case, but it sticks brilliantly to clear the paper sleeve protector, so you would do well to clear a small area of this plastic around the buttons before gluing the 3D-printed button-caps to the tactile button-tips.
I didn't use any magic formula to know how far to trim the tactile button tips down so that there was enough clearance to still press the button using the 3D-printed button-caps, I just kept trimming them down until it got close.
Adding a dab of hot glue to the 3D-printed button-cap then pressing it into place worked.
Just in case you trimmed them too far down, you'll need a screwdriver to lever them off, then just add more hot glue and try again.
Step 7: User Feedback and Updates
Once that hot glue enters a warm environment it softens, making the buttons non-functional and sometimes they would stay down - not good.
So, off with the 3D printed button caps!
It turns out those tactile buttons don't like you prying something off their tops so I had to replace them all.
Two recent discoveries prevent me from recommending building this project for anything other than a proof of concept:
- The interference from the audio player board means you get to hear when it's loading the next track.
This might be acceptable if you hooked the thing up to an amplifier and turned the trimmer pots all the way up, but if you're using an amp then you could go directly from the audio player board to an earphone socket - no trimmer pots, no amplifier board.
- The audio player board "gets stuck" when trying to play the third album - I never got to hear it.
This might be from SD-card corruption, the audio player board running out of memory trying to read all 67-75 album locations into memory, some mp3 quirk with a song... too bad.
I'm putting this whole approach on the back burner while I pursue an esp32 solution, which will be a lot more work, but from what tests I've done already, the sound is crystal clear and I'll have full control over the software.
Turns out the SD-card was faulty.
I also re-wired the trimmer pots so they're soldered onto the amplifier board - see the picture.
I added a 1000uF capacitor to the buck regulator output, it was one I had lying around. Any beefy capacitor would do.
I used shielded cable to help protect the signal to and from the amplifier board.
I replaced the 100K stereo log potentiometer volume control with a 10K one.
After all these changes the interference is almost completely gone.
This music player uses about 100mA when playing.
Some battery chargers go into standby mode if they don't detect anything using (enough) current, but the one I'm using now doesn't do that so that's good.