Retrolette
Hardware- 3 Devlogs
- 7 Total hours
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:
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…
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
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
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…
This is the button that changes the track number. I added this in KiCad, connecting it to the freed up GPIO pin mentioned above.
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.
https://lapse.hackclub.com/timelapse/MZIoUOo8jHLk
https://lapse.hackclub.com/timelapse/ZwfmAnuRbDRx
https://lapse.hackclub.com/timelapse/ocHd5FBWXQlM
since the last devlog, i’ve been heavily researching a lot more… i figured out what MC i want to use (XIAO ESP32S3, because it can have wifi capabilities and includes LiPo battery management), researched a ton about the battery things such as how to display the charge, etc. in my notebook, i’m writing about the parts i want, plus drawing to-scale squares/rectangles to represent each of the parts; i want to make this as compact as possible.
i also researched about the audio system- like how to make it play music out loud vs into headphones, and found this neat part i can use called the Adafruit TLV320DAC3100. it has a built-in headphone jack so that’s super awesome!
here are the parts i have finalized so far:
as always- you can watch my full timelapses here: https://lapse.hackclub.com/user/@shreyaluu
okay, so this session was largely ideation and a lot of planning. i’m not fully done with the planning yet, but i figured i should post a devlog before i continue… so here i am
(p.s. from the future: this first devlog sets the stage for eeeeeverything so if you’re here PLEASE read the whole thing! i’m trying to devlog this in a lot of detail and if you’re a reviewer/rater i’d appreciate it so much if you got to know the entire project before you judged :3 i’m not that good at hardware but i’m learning and trying so yeah)
this ‘session’ (i say in quotes because it was split over four Lapse sessions - watch them here: https://lapse.hackclub.com/user/@shreyaluu) saw me trying to figure out things like where components will go in the end, putting together ideas of what i might want the final product to look like (i have a lot of inspo pictures and some sketches i drew myself but nothing is for certain yet), etc. some other questions:
oh wait, silly me… i forgot to explain what the project is in the first place
the idea is: a vintage-looking mini vinyl player that can play songs depending on what vinyl (a glorified 3d printed disk) you put inside it. it will detect this by using nfc stickers on the disks (i found an awesome deal on amazon for a bunch of these) and an nfc reader inside the vinyl player itself. based on the input from the nfc, it’ll play the correct file (stored locally) from either speakers (or, ambitiously, a headphone jack)
a lot of my favorite artists are putting out albums lately… and they have vinyls that come with them. i can’t buy those vinyls or a vinyl player… but i can make my own!
PLUS i’ve always wanted to get deeper into hardware- lately i’ve just done some simple projects and going into something like this would be awesome. i love music and tech so why not combine both?