This is a portable music player based on a Raspberry Pi Zero. The first version was made using common modules this made it quite a mess, big and fragile. That's why I am currently working on a second version. This new version will have all the electronics on a single PCB.
The current version has a music player interface written in Python, this interface will get a redesign for the bigger display. Currently planned is an import tool for a PC that will index the music and perform loudness normalization. I am also planning to make a docking station.
Today I received the first version of the PiPod PCB from PCBWay surprisingly I received it earlier than the PCB's I ordered from Oshspark. I first wanted to test parts of the circuit with the boards from Oshspark but because the board from PCBway was very cheap I decided to order it. So here they are:
As you can see I ordered 0.8mm black PCB's this didn't cost anything extra. The boards come with HASL finish and an ENIG finish does cost extra but for this first prototype it doesn't really matter. When you select these options, the price is about the same as the Aisler and Oshspark boards the only difference is the quantity. The quality of these boards look good, the only quality issue I've found are the holes that aren't completely covered.
Here are some more close-ups:
I am still waiting on a couple of parts and when it has arrived I will assemble it further, for now I've soldered on the buttons to test the case.
I had some spare time when I heard Apple was discontinuing their Ipod line. While I was reading about it I remembered that I had most part to build a MP3 player laying around, so I decided to build one.
The price of this project is an approximation because I had most of the parts laying around.
I am currently working on a single PCB PiPod. This new version of the PiPod will have a higher resolution display(2.2" 320x240), a bigger battery and a safe shutdown button. I have designed three small modules for the new parts that I want to use on this version these are currently being produced by @oshpark . While I am waiting on the PCB's and parts to arrive I am working on the final version that I want to verify with these small modules. These modules are also a great way to practice using my new reflow station before using it on the PiPod ;)
This power button circuit will make the Raspberry pi boot while the pi is booting it will turn on a GPIO that turns on the booster circuit and a LED to indicate that the power button can be released.
Recently I milled a PCB with the audio circuitry on it from the original RPi and when I received the little I2S DAC from China last week I compared both the boards on audio quality.
The quality of the dead bugged together solution was okay but it had a bit of white noise, I hoped that most of that white noise would be gone with the milled PCB but that wasn't the case. If the milled PCB wouldn't have had the white noise it would have been the perfect board because the audio quality was good enough (I only use it with earbuds) and it would have fitted better then the I2S DAC.
I was really surprised with the quality of the I2S DAC, it is really small and the audio quality is great. I have edited the case so it would fit this board, I had to make the walls a bit thinner at the top to have the extra space needed for the board but that is unnoticeable. I also moved the power switch to make some room for the component of the DAC and with all that extra room I added a extra screw hole because I noticed on the first version that the case didn't close properly. The updated case can be found on Thingiverse.
The front part of the case is currently outdated but it still fits so I will keep it until I have decided what I am going to use as input method. I am currently looking at capacitive touch buttons and I will soon receive a kit of different kind of buttons I could try. If I have decided I will print a new front and mill a PCB for the buttons.
I pushed the initial release of the interface I am writing for my music player, it is functional but there is still a long todo list.
If all the modules are installed you can run __init__.py this will load the main screen from there you can navigate to the Settings and update the library this will make the program look for all .MP3 files in the "Music" folder and save the metadata to a .csv file for a quick lookup.
The main screen has all the controls on it and the information of the current song.
I have also made a few changes to the case design, here they are:
The screw holes are now countersunk
There are little lids so the middle button won't completely rotate
The SD card hole is a little bigger
The clip for the audio connector is a bit thinner to be more flexible
The slide switch inserts from the back instead of the front
I started by designing and printing the button caps for the first version of the case. These button caps are temporarily because I am still looking for the best input method for the PiPod. If I am going to use tactile buttons permanent I will redesign the front so the button caps move less.
I've also bought some paint to test out how that would look. I used an old version of the back of the case that I sanded and but primer on to test out the color.
This is the first time I used paint on a 3D print so I didn't know how much I should sand it down. The result of this test is pretty good but I do need to sand some parts more and use more filler.
In this picture you can clearly see the print issues on the case. This issue could be solved by printing slower (like I did on the next print of the case). The metallic color I used to paint this part looks pretty good and I will probably use this color for the back.
Enable SSH by putting a file named ssh on the SD card
Now insert the SD card into the Pi and connect it to your computer using USB (don't use the PWR port but the USB port). If everything went alright you should now be able to SSH into your Pi using the address "raspberrypi.local". It could be that Windows 10 doesn't see the Pi as a RDNIS device but as generic USB device, in that case you should download this driver and install it manually.