Blueprint

Reverb

ESP-32 Based Turntable Music Player. Place a disk and have it play.

Created by DynamicWhiteHat DynamicWhiteHat

Tier 3

7 views

2 followers

DynamicWhiteHat DynamicWhiteHat submitted Reverb for review ago

Iamalive 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 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:
image
image

DynamicWhiteHat DynamicWhiteHat submitted Reverb for review ago

DynamicWhiteHat 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:
image

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:
image

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:
image

I have finished the repo and am ready to submit!

DynamicWhiteHat 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:image

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:
image

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:

image
image

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 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:
image

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:
image
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:
image
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:
image
I also added the following design on the front and sides of the case to give it some character using the rectangular pattern tool:
image
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:
image
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:
image
I added a sample disk, and now my project is mostly complete!
image

DynamicWhiteHat 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:

image
image

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:

image

image

DynamicWhiteHat 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:
image
image

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

image

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:

image

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

image

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:

image

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

image

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:

image

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:

image

I also began routing, but I think I will redo it next time, as I don't like how it is currently.

DynamicWhiteHat 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:
image
image

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

image

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:

image

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

image

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:

image

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

image

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:

image

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:

image

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:

image
image

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:

image

image

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:
image

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:
image
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:
image
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:
image
I also added the following design on the front and sides of the case to give it some character using the rectangular pattern tool:
image
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:
image
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:
image
I added a sample disk, and now my project is mostly complete!
image

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:image

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:
image

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:

image
image

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:
image

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:
image

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:
image

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:
image
image