Spotify Player
DAY 1 - 28 JUNE - 9-10 Hours ( research + schematics + PCB)
So I saw the Spotify Car Thing online and bro, it looked so clean. Minimal, functional, and honestly, just a vibe. But when I checked the price online, it was totally crazy â like âš15,000 or more. Apparently they discontinued it, and now everyone is just reselling it for insane prices. Thatâs when I had this lightbulb moment â âWhy not build it myself?â and Iâd been wanting to try a custom PCB build with some real-world use. Thatâs how this whole thing began.
i wanted to make smtg like this mann but ik hacklcub will consider this as 4 points project :( so i thought about making it from scratch
Than it flashed in my mind HOW ABOUT MAKE AN CUSTOM ESP32
So i started researching on it and found some videos
FOUND THIS GUY HE IS DA BEST So as am new to pcb designing i started designing circuit based on his teachings
SO lets start desigining:
This is the brain. ESP32-WROOM module, with its pins all broken out. Capacitors near power pins for decoupling (filtering noise), and few pull-ups/pull-downs if needed for booting. This layout follows Espressifâs hardware design guide, so nothing fancy but solid and tested.
This part is like a traffic cop for power. Weâre using a Schottky diode (D1) to make sure power from USB or external supply doesnât clash. Whichever power is higher gets passed, and the diode prevents backflow. Simple, effective, and safe for the ESP32.
Bro, this is where we plug in our USB-C cable. The connector is USB-C 16-pin type, and the CC pins (Configuration Channel) are pulled down with 5.1kΊ resistors (R1, R2) to let the charger know we're a sink (not a charger). Itâs routing the 5V VBUS to our 5V line and also passing D+/D- data lines to the USB-to-Serial IC for programming and debugging. Typical modern setup.
These buttons are the basic âjugaadâ for ESP32 dev. One is RESET it just pulls EN low, and the other is BOOT which is actually GPIO0. Itâs needed for getting into flash mode. This combo is what allows programming via USB without auto-reset logic, but here we also have that with transistors (next section).
This one is very cool it uses two NPN BJTs (Q1 & Q2, usually S8050) to control EN and IO0. The USB-to-Serial chip sends DTR and RTS signals, and via some clever resistor network, these BJTs toggle the lines to reset the ESP32 into boot mode automatically during upload. Itâs standard in many dev boards, saves you button pressing.
This part is handling all the talking between your PC and the ESP32. The CH340C IC is doing USB to UART conversion. Itâs connected to TX, RX, DTR, RTS lines. Since this IC has internal crystal, we donât need external one less headache. Very budget-friendly and works great for Arduino/ESP stuff.
Since ESP32 needs 3.3V, weâre using AMS1117-3.3 voltage regulator here. It converts the 5V coming from USB to 3.3V safely. Two capacitors (10uF and 100nF usually) on input and output sides to stabilize it. Common setup, works fine but does get a bit hot if current draw is high.
Two LEDs are here for quick debugging. One LED connected with 1k resistor to 3.3V shows that the board is powered (Power LED). Another one is connected to GPIO (maybe GPIO2 or 4) and you can blink it from code. Good to know if your firmware is alive or crashed.
Extra GPIO headers are broken out here for sensors, I2C, SPI, etc. You can connect modules easily with female jumper wires. Makes this custom board usable in multiple projects very modular.
FINAL circuit:
Lets start designing PCB:
THIS WAS SO SATISFYINGGGGGG
I ALSO MADE SOME SILKSCREEN:
( I AM A TRUE AVIATION FAN BTW)
JLCPCB CART:
DAY 2 - 29 JUNE - 6-8 Hours ( CASE + CODE)
I spent almost 6 to 8 hours just sitting and fully focused on finishing the case design and writing the proper code for the Spotify player. Honestly, this day was both frustrating and satisfying. First, I started off by trying to adjust the dimensions properly for the 2.4 inch TFT display, 3 push buttons, 2 18650 batteries, and the NFC module. I made the box in Fusion 360, trying to keep everything tight but also spaced enough so wires donât mess up later.
The top part of the case was a bit tricky. I had to make those 3 rectangular slots exactly matching the buttons I have, and I didnât want them to be loose. Below that, I made a big recessed cut for the screen to sit flush inside â I wanted that modern, clean look. In the bottom right, I added a slot to hide the batteries or maybe even fit the ESP32/NFC module depending on wiring.
Once the case design was done and rendered decently, I shifted to coding. The idea was to complete the Spotify logic â like showing the artist, song name, progress bar, and also reacting to button inputs. But the fun part was adding NFC support. That took time to debug, bro. I had to make sure when I tap the tag, it triggers next/previous/play-pause correctly and doesnât double trigger. So I added delay and string comparison for UID. After testing everything multiple times, it finally worked. That feeling when the song changes with just a card tap â goosebumps only.
So yeah, this day was all about making it feel real. From 3D designing the case like a product, to writing and polishing the full code with NFC magic it really came together.
Ive added evrything in the rep :)