So, i’ve come a long way since the last journal! I think i’m almost done with the schematic part, just need to add the rotary encoder for volume / play/pause control.
Here is everything i added in the last few hours:
storage
I researched how I’m going to store my songs - because I want to be able to play things offline, I’d like to have my songs downloaded on the player itself. For this, I’ll need to have extra storage; the on-board storage for the ESP32 is only enough for maybe one or two songs.
The solution I found was to use the Adafruit Micro SD SPI or SDIO Card Breakout Board, along with a compatible 32 GB SD card. I found one at my local Walmart (according to the website) so I’ll go pick that up sometime :3.
I also struggled for a good while trying to add this onto my KiCad. First, I thought I could just get the Eagle files from the adafruit GitHub, but apparently that library includes all the parts they use to make their boards but not the board itself. To get around this, I just used their 9-pin header, which was labeled according to the pins on the board. I’m not making a PCB, after all; I’m going to wire it up the old-school way.
OR maybe i’ll use a perfboard hmmmm…
nfc support
Next, the main part of this whole project - NFC support! I found this NFC reader called the PN532, which I can use to read the nfc tags in the vinyl disks. I also put it on KiCad
track number LEDs
Since having one song per vinyl is a bit much tbh, I decided to have a button that changes the track (can only go forward sorry i dont have enough pins). For this, I need to be able to yk show the track number… and the ‘easiest’ way to do that was with 4 leds that represent the number in binary!
note: at the time i’m writing this, i JUST changed it to 5 LEDs.
They’re linked in a chain so they only need one pin
reset rc circuit
basically, when the power is turned on, the adafruit dac needs to be reset. so if i had it as a separate gpio pin, i’d write it into the code that okay, once the power’s on, switch this to low for a bit then keep it high. but the problem with that is, that wastes a gpio pin.
apparently there’s this thing called an RC power-on delay circuit, which means that, when the power’s on, the capacitor takes a little time to charge, which keeps the reset low for some time. Then, once the capacitor fully charges up, the reset pin’s on high the rest of the time. So I researched this a bit then implemented it to my own circuit, freeing up a GPIO pin that I can use for a button or something! Speaking of the button…
the button
This is the button that changes the track number. I added this in KiCad, connecting it to the freed up GPIO pin mentioned above.
rotary encoder plan
Instead of adding a traditional rotary encoder, which requires three additional pins, i’m thinking about using the Adafruit breakout board, which lets the rotary encoder use the already-in-use I2C.
all timelapses in this journal
https://lapse.hackclub.com/timelapse/MZIoUOo8jHLk
https://lapse.hackclub.com/timelapse/ZwfmAnuRbDRx
https://lapse.hackclub.com/timelapse/ocHd5FBWXQlM
