# Project Overview This is my first pass at building myself a small, portable, decent sounding digital audio player based around a raspberry pi zero and some additional hardware along with a 3d printed case. My goal is to build myself a music player I can carry as my primary listening device that sounds good, can carry a large portion of my music library, has a simple user interface, has a more powerful backend interface, and does not cost a fortune. ~~For this first iteration, I have selected three HATs - a display hat with d-pad and utility buttons, a digital audio board, and an uninterruptible power supply board with battery. The selections of the hardware chosen was based more on availability at the time of ordering than any in-depth research in to the pros and cons of each device amongst its peers. As it turns out, there are a few GPIO pin assignments that two or more of the HATs will be trying to use for their own devices (ha) so I'll have to bodge that wire when I get to it.~~ For this second iteration, I have selected two HATs - a Pirate Audio Headphone Amp HAT with LCD display and four buttons, and an uninterruptible power supply board with battery. I swapped out the separate audio DAC hat and display/button hat when I found the volume level too low on the raspiaudio DAC hat for my purposes. The Pirate Audio hat should alleviate this issue and slightly simplifies things overall. However, it is missing the five-way tactile switch that the first iteration had and which I planned on using extensively, so I'm also adding in a five-way tactile switch separately on a small breakout board, and I'll wire the breakout board to some open GPIO pins. *UPDATE* on the five-way tactile switch: after initial tests, it is only registering the directional button presses if it is also actuated firmly enough to register the center button as well. I will be trying a replacement switch to see if that helps. The other hardware consists of a raspberry pi zero w board, a 32gb micro sd card, a micro-usb to usb-a plug cable, and a 256gb usb flash drive. The flash drive will be the music library storage and will be externally accessibly, should I want to remove it to modify the library contents on a system with a faster storage bus going for it. also, I could carry around a tiny fake pleather cassette carrying case that had a couple dozen usb flash drives in it and have literally terabytes of high quality music at my disposable. tres chic! # bill of materials This is still tentative and incomplete. [Pirate Audio: Headphone Amp HAT](https://shop.pimoroni.com/products/pirate-audio-headphone-amp) [Geekworm Raspi UPS HAT v1.1](https://raspberrypiwiki.com/index.php/Raspi_UPS_HAT_Board) [Raspberry Pi Zero W](https://www.raspberrypi.org/products/raspberry-pi-zero-w/) 10,000mAh 3.7v LiPo Battery Five-way tactile switch and breakout board One (1) through-hole USB-A Port A USB flash drive to store music (stays mounted in device - smaller (physically) is better) Various lengths of wire # installation and dev log *TODO*: clean up log entries, flesh out details for readers *TODO*: add project goals, features, BoM, relevant links *TODO*: set up repo directory structure *TODO*: move all these todos into issues or something i dunno ## initial setup **THIS IS ALL OUT OF DATE AND AWAITING REFINEMENT** wrote raspbian image to sd card added empty file `/boot/ssh` added file `/boot/wpa_supplicant.conf`: ``` country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="WIFI_SSID" scan_ssid=1 psk="WIFI_PASSWORD" key_mgmt=WPA-PSK } ``` booted pi logged in via ssh changed passwd `sudo raspi-config` - set up locale - disable wait for network at boot - resize filesystem in advanced reboot logged in via ssh confirmed filesystem resize `sudo apt update && sudo apt upgrade -y && sudo apt install tmux usbmount vim wiringpi python3-pip` `sudo vim /etc/hostname` changed to soundslab shutdown -h now ## install and configure DAC hat **THIS NEEDS TO BE UPDATED TO PIRATE AUDIO INSTRUCTIONS** added hat to pi zero booted pi `sudo wget -O - script.raspiaudio.com | bash` `sudo apt remove pulseaudio` reboot *TODO*: add alsa configuration from /etc/asound.conf ## install and configure display hat **THIS NEEDS TO BE UPDATED TO PIRATE AUDIO INSTRUCTIONS** [More info](https://www.waveshare.com/wiki/Libraries_Installation_for_RPi) ``` wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60/ sudo ./configure sudo make && sudo make check && sudo make install sudo pip3 install RPi.GPIO ``` ## install and configure UPS hat ~~## install musikcube from github~~ ~~https://github.com/clangen/musikcube/wiki/raspberry-pi~~ ~~*TODO*: omg this pulls in a lot of dependencies installing the debian package, a bunch of x11 we're never going to need - I should look into whether or not there are any decent 'no X' options for some of the culprits.~~ Friendship ended with musikcube api. New bff is mpd: `apt install mpd` *TODO*: write configuration ## install UI script from gitea *TODO*: write this script! ## install startup scripts from gitea *TODO*: write these scripts! ## reboot into soundslab!