Reverb
ESP-32 Based Turntable Music Player. Place a disk and have it play.
Created by
DynamicWhiteHat
Tier 3
7 views
2 followers
DynamicWhiteHat
submitted Reverb for review ago
Iamalive 🚀
requested changes for Reverb ago
Just like a mini cd player, nice! Just wondering but is there any reason why you're getting a pinecil for this? Also, it doesn't look like that part attached to the pcb in the top right is visible in your combined cad view? Please update it!
DynamicWhiteHat
added to the journal ago
UPDATE FOR REVIEWERS
Would it be possible to increase my budget by $6.34, making the total $85.46? I just learned that you need to select "different designs" when using a panelized/mousebites PCB, which has increased my cost. I have attached a screenshot of the new cart:


DynamicWhiteHat
submitted Reverb for review ago
DynamicWhiteHat
added to the journal ago
Wrote firmware and added to PCB
Today, I did the BOM, which came out to be ~$75, and I completed the firmware. I was initially going to have an integration with Spotify, but when I started working, I found that I would need a premium account to get what I wanted. That's when I remembered that I included an SD card reader in the PCB, so I decided that this whole project could just work offline, using music downloaded to the SD card. This made everything much easier, as there is already a library for reading from an SD card and playing it out over i2s. I began by adding that, then I added in the RC522 NFC reader, the gesture sensor, the hall effect sensor, and finally the stepper motor. I created the following methods to make everything easier to read:

The last method, update visualizer, required a rework of the PCB. After checking how to get the audio level that was going out, ie the perceptible audio level, I found out that I would need to connect the OUTP pin of the MAX9753A to and ADC pin on the ESP32. This required me to update the schematic and PCB. This is what I added:

The diode converts the audio singal into something the ESP32 can read. The 10k voltage divider helps convert the high voltage down into a voltage that the ESP32 can safely take. This is what I added to the PCB:

I have finished the repo and am ready to submit!
DynamicWhiteHat
added to the journal ago
Finalized PCB and CAD
Today, I added an SD Card reader to the PCB to allow me to have offline music. This way, if I'm not connected to Spotify, I can still play some music or play a "You are not connnected" tone (or elevator music). I copied over the connections for a SD card module from some locations online and ended up with this:
I didn't feel like rerouting and replacing components on my whole PCB, so I decided to just use a testpoint footprint. I made a custom 6 piece testpoint footprint that can fit under the ESP-32. Since there was nothing under it, routing was easy and looked like this:

After that, I updated the CAD to include the SD card reader. I just used the project tool to add in screw holes and a hole for the SD card to stick out. I also modified the arm to look better. This is what I have now:


I also went in and added a 0.1 press pull to the screw threads, as that is what has worked in the past.
I am done. I now need to begin budgeting.
DynamicWhiteHat
added to the journal ago
Finished CAD
Today, I had no homework, so I decided to stay up until 1 am working on this project, along with other tasks. I finished the PCB, so I began the CAD. I started by creating an outline square that would serve as my boundary while I placed my parts. I imported all the required parts, settling on an 8 ohm 10 watt speaker, and placed them in the box. I did have to change the dimensions a few times, especially when fitting the speaker, and this is what I came up with:

Then, I extruded the bottom and began creating the bottom half. I extruded it up to the top of the stepper motor, minus about 3 mm to let the top stick out. Then, I began creating holders for each of the parts. I projected their screw holes onto a sketch and added a circle with a diameter a few mm larger. Then, I extruded these circles and added threads to them to allow screwing. This is what it looks like:

I then projected the neopixel shapes onto a sketch and extruded that into the case to allow the light to shine through and show in grids. This is what I have:

After that, I once again used the projection tool to create USB holes, which I extruded and chamfered using a value from past designs that has worked for my cables:

I also added the following design on the front and sides of the case to give it some character using the rectangular pattern tool:

After that, I created the top. This was simple enough, as it was just an extrusion off the current bottom, and I closed off the top. I then projected the circles of the speakers to cut out holes using the pattern tool, which looks like this:

After that, I added a hole for the stepper to stick through, added a turntable, and a hand that has a magnet embedded in it to allow for the hall effect sensor to work:

I added a sample disk, and now my project is mostly complete!

DynamicWhiteHat
added to the journal ago
Routed the PCB
Today, I had no homework, so I sat down and decided to route the PCB. There is not much else to say. I did add in a hall effect sensor and a power switch, two important things I forgot earlier. They look like this:


I added those in to the PCB and routed it. I kept with routing the B.Cu traces horizontally and the F.Cu traces vertically, which helps a lot. I also placed and routed the neopixel array. I connected the two using mousebites. There is not much else to say, as I just connected the parts. This is what I have now:


DynamicWhiteHat
added to the journal ago
Created schematic and placed components
Today, I saw this video, which seemed pretty cool. I decided that I wanted to make my own, but add some upgrades to it. I wanted it to run on a custom ESP-32 PCB, have built-in speakers, and LED visualizers. I began with the schematic, for which I copied over my ESP-32 base files:


This is how I start all my ESP-32 schematics. I then added another 2 USB-C connectors for power output:

The 5.1k pull up resistors tell the USB that it is set to power output. I then added connectors for LEDs, a gesture sensor, and an RFID reader. I just used a generic pin header symbol and 2.54 mm footprint for these, as I can solder wires into them easily:

And then I created a Neopixel array for my visualizer. I decided to have an 8x3 array:

Then, I added a stepper motor driver. There was some discrepancy online of the pinout of the motor, so I might have to rewire the motor when I begin testing. I used a reddit post and the datasheet to come up with this:

Finally, I used a MAX98357A and its datasheet for audio output. I decided to go with a left+right channel average for the gain:

Then, I imported the parts into the PCB editor and began laying them out. This time, I decided to go with a cut PCB for the esp32 antenna, as I thought it would look nice. I followed the layout guidelines for this and ended up with this shape:

I then placed the rest of the components, trying to keep eveything neat and in order. This is my placement that I came up with:

I also began routing, but I think I will redo it next time, as I don't like how it is currently.
DynamicWhiteHat
started Reverb ago
1/20/2026 9 AM - Created schematic and placed components
Today, I saw this video, which seemed pretty cool. I decided that I wanted to make my own, but add some upgrades to it. I wanted it to run on a custom ESP-32 PCB, have built-in speakers, and LED visualizers. I began with the schematic, for which I copied over my ESP-32 base files:


This is how I start all my ESP-32 schematics. I then added another 2 USB-C connectors for power output:

The 5.1k pull up resistors tell the USB that it is set to power output. I then added connectors for LEDs, a gesture sensor, and an RFID reader. I just used a generic pin header symbol and 2.54 mm footprint for these, as I can solder wires into them easily:

And then I created a Neopixel array for my visualizer. I decided to have an 8x3 array:

Then, I added a stepper motor driver. There was some discrepancy online of the pinout of the motor, so I might have to rewire the motor when I begin testing. I used a reddit post and the datasheet to come up with this:

Finally, I used a MAX98357A and its datasheet for audio output. I decided to go with a left+right channel average for the gain:

Then, I imported the parts into the PCB editor and began laying them out. This time, I decided to go with a cut PCB for the esp32 antenna, as I thought it would look nice. I followed the layout guidelines for this and ended up with this shape:

I then placed the rest of the components, trying to keep eveything neat and in order. This is my placement that I came up with:

I also began routing, but I think I will redo it next time, as I don't like how it is currently.
1/20/2026 7 PM - Routed the PCB
Today, I had no homework, so I sat down and decided to route the PCB. There is not much else to say. I did add in a hall effect sensor and a power switch, two important things I forgot earlier. They look like this:


I added those in to the PCB and routed it. I kept with routing the B.Cu traces horizontally and the F.Cu traces vertically, which helps a lot. I also placed and routed the neopixel array. I connected the two using mousebites. There is not much else to say, as I just connected the parts. This is what I have now:


1/22/2026 - Finished CAD
Today, I had no homework, so I decided to stay up until 1 am working on this project, along with other tasks. I finished the PCB, so I began the CAD. I started by creating an outline square that would serve as my boundary while I placed my parts. I imported all the required parts, settling on an 8 ohm 10 watt speaker, and placed them in the box. I did have to change the dimensions a few times, especially when fitting the speaker, and this is what I came up with:

Then, I extruded the bottom and began creating the bottom half. I extruded it up to the top of the stepper motor, minus about 3 mm to let the top stick out. Then, I began creating holders for each of the parts. I projected their screw holes onto a sketch and added a circle with a diameter a few mm larger. Then, I extruded these circles and added threads to them to allow screwing. This is what it looks like:

I then projected the neopixel shapes onto a sketch and extruded that into the case to allow the light to shine through and show in grids. This is what I have:

After that, I once again used the projection tool to create USB holes, which I extruded and chamfered using a value from past designs that has worked for my cables:

I also added the following design on the front and sides of the case to give it some character using the rectangular pattern tool:

After that, I created the top. This was simple enough, as it was just an extrusion off the current bottom, and I closed off the top. I then projected the circles of the speakers to cut out holes using the pattern tool, which looks like this:

After that, I added a hole for the stepper to stick through, added a turntable, and a hand that has a magnet embedded in it to allow for the hall effect sensor to work:

I added a sample disk, and now my project is mostly complete!
1/23/2026 - Finalized PCB and CAD
Today, I added an SD Card reader to the PCB to allow me to have offline music. This way, if I'm not connected to Spotify, I can still play some music or play a "You are not connnected" tone (or elevator music). I copied over the connections for a SD card module from some locations online and ended up with this:
I didn't feel like rerouting and replacing components on my whole PCB, so I decided to just use a testpoint footprint. I made a custom 6 piece testpoint footprint that can fit under the ESP-32. Since there was nothing under it, routing was easy and looked like this:

After that, I updated the CAD to include the SD card reader. I just used the project tool to add in screw holes and a hole for the SD card to stick out. I also modified the arm to look better. This is what I have now:


I also went in and added a 0.1 press pull to the screw threads, as that is what has worked in the past.
I am done. I now need to begin budgeting.
1/24/2026 - Wrote firmware and added to PCB
Today, I did the BOM, which came out to be ~$75, and I completed the firmware. I was initially going to have an integration with Spotify, but when I started working, I found that I would need a premium account to get what I wanted. That's when I remembered that I included an SD card reader in the PCB, so I decided that this whole project could just work offline, using music downloaded to the SD card. This made everything much easier, as there is already a library for reading from an SD card and playing it out over i2s. I began by adding that, then I added in the RC522 NFC reader, the gesture sensor, the hall effect sensor, and finally the stepper motor. I created the following methods to make everything easier to read:

The last method, update visualizer, required a rework of the PCB. After checking how to get the audio level that was going out, ie the perceptible audio level, I found out that I would need to connect the OUTP pin of the MAX9753A to and ADC pin on the ESP32. This required me to update the schematic and PCB. This is what I added:

The diode converts the audio singal into something the ESP32 can read. The 10k voltage divider helps convert the high voltage down into a voltage that the ESP32 can safely take. This is what I added to the PCB:

I have finished the repo and am ready to submit!
2/4/2026 - UPDATE FOR REVIEWERS
Would it be possible to increase my budget by $6.34, making the total $85.46? I just learned that you need to select "different designs" when using a panelized/mousebites PCB, which has increased my cost. I have attached a screenshot of the new cart:

