Blueprint

Spotify Reactive LED Panel

A desk/wall sized 32x32 LED Panel that connects to Spotify 'what's playing' API and has multiple visualisation/aesthetic modes based on this. e.g. Album Art, Genre based moodscapes, a Visual Narrative built by each song, microphone based beat reactive, etc. It will also use on-the-edge AI to adapt to its live surroundings and ambience

Created by David David πŸš€

Tier 3

4 views

0 followers

No Demo Yet

David David πŸš€ added to the journal ago

Final PCB touchups

I've made a couple of minor fixes to the PCB, touched up the silkscreen, etc.

Basically I went through the DRC errors and fixed everything up (0 DRC errors now!) image

And then I removed most of the component designators on the front side (cause there were too many of them for it to be at all legible), and added some cool stuff onto the silkscreen:
image
image

I also did a few minor touchups around the power circuitry for better power distribution etc.
image

David David πŸš€ added to the journal ago

Implemented Feedback & Re-Routed PCB

Another super long journal entry lol. Basically, I got some feedback that I needed to have a decoupling capacitor for every LED, which meant redoing all the matrix routing. I also had to jump through quite a few hoops, because EasyEDA didn't like me editing re-use blocks, so it messed up the layout of the LEDs (which meant I had to force them back to how they were).

As you can see, 1024 capacitors is a lot:
image

While I was at it, I also made some improvements to the routing, including more vias and shorter traces (to reduce voltage drop) to the LEDs. I also noticed I had accidentally created multiple separated ground fills on the back (due to the long capacitive touch traces), so I added a bunch of vias and thick traces in a number of places, to connect them at low resistance:
image

David David πŸš€ added to the journal ago

Finished Routing!!

I've finished routing the PCB!!! It took me a very long time to do all of the LED power routing, and then I had to do a bit of work to prevent voltage drop.
image
image

I've used quite a lot of vias to connect the LEDs to the GND pour on the back (the front is a 5v pour). I had a bit of a challenge trying to route the LED power lines up where most of the main driving circuitry is.

Here's some screenshots of the PCB (I hid the pour on the front, so you can actually see the traces):
image
image

David David πŸš€ added to the journal ago

Routed key components

Basically I just routed all of the main electronics, like the ESP, power circuitry, sensors, capacitive touch, etc. Next I'll route the LED matrix.

image

image

Here's the capacitive touch IC routing, which was a little bit of a challenge, as I had to be careful to prevent noise on the sensitive capacitive touch lines.
image

David David πŸš€ added to the journal ago

Finished arranging the PCB

It took me wuite a while, but I've finished arranging all the components on the PCB!
image

Given space isn't a concern, I tried to place in a way that will make my next step of routing easy. I also focused on prioritising signal integrity, and keeping traces for capacitive touch zones free from noise, etc. The biggest challenge was probably trying to keep sensitive components away from noise, given the whole front of the pcb is taken up with LEDs and noisy power lines and switching signals.

Here's a 3d render of the section with most of the main electronic parts:
image

David David πŸš€ added to the journal ago

Arranged LED Matrix

Pretty tedious piece of work, but definitely needed doing... Basically I just arranged all the RGB LEDs into the 32x32 matrix, on an 8mm pitch. Using the EasyEDA reuse blocks made my life so much easier, because each row was already arranged, so I only had to align them into the columns.

image

Needless to say this was pretty tedious, and not helped by the fact that EasyEDA was lagging... A lot... I don't think it enjoyed the 1024 LEDs 😭

David David πŸš€ added to the journal ago

Finished Schematics

Pretty quick touch up of some minor things in the schematic. Mostly things like pull-up resistors, decoupling capacitors and the like

A few screenshots of some examples:
image image image

David David πŸš€ added to the journal ago

Added LEDs to Schematic

It took me quite a long time, but i have added the LED matrix to the schematic!!
image

Basically it's a 32x32 matrix, wired in a serpentine grid. That means there's 1024 LEDs, which is a LOT. To be able to handle all of these, I use EasyEDAs 'reuse blocks' feature, which is a bit like hierarchical sheets in KiCad. Basically it means I can contain each row of the matrix within one of the small blocks on the above screenshot. Each of those blocks then contains the parts for that row:
image

This also allows me to pre-configure the layout of each row, which will hopefully make my life easier when I start the PCB:
image

David David πŸš€ added to the journal ago

Extra Bits

This time, I've added a few extra parts, like an IMU, MEMS Microphone and Capacitive touch:
image

I first selected the components from LCSC, based on requirements. I decided a IMU would be a fun addition to add physics based effects. I also chose to add capacitive touch for a sleeker physical controls.

The biggest challenge I had was trying to translate chinese datasheets😭... Most of LCSC's datasheets are written and chinese, and Google Translate doesn't do a very good job of it.

(FYI, I submitted this journal retrospectively - i forgot to make it earlier - which is why there is less than a 2hr gap to the next one. Between the two I spent just over 3.5hrs, so the overall number is right)

David David πŸš€ added to the journal ago

Added ESP32

It took me a little while, but I've added the brains of the project! I spent ~25-30 mins choosing which controller to use, and settled on an ESP32-S3 WROOM, which saves me routing complex parts like a crystal.

I've added the ESP32 and its supporting circuity, like reset and boot buttons.
image

I also spent around ~20-25 mins adding in TVS diodes on the usb data lines (it took me a while to work out the necessary values and ratings). I also fixed a couple issues with more other protective circuitry, like the NTC Fuse and stuff, to make sure it had the right ratings.
image

David David πŸš€ added to the journal ago

Researched and Designed Power Circuit

So far I have conducted a lot of research and planning (like key parts, MVP, features, etc.) and then I've begun designing the power circuit.

In terms of the schematic, I've designed a USB-C PD compatible circuit, which negotiates 12V and then also steps it down to 5v and 3.3v, which I also need. It also includes filtering and surge protection.
image

The biggest challenge I had was trying to choose parts. Things like inductors and PTC Fuses and TVS Diodes come in many similar options, and I had to work out exactly what I needed.
Here's a random photo of choosing LDOs on LCSC :D
image

David David πŸš€ started Spotify Reactive LED Panel ago

11/17/2025 - Researched and Designed Power Circuit

So far I have conducted a lot of research and planning (like key parts, MVP, features, etc.) and then I've begun designing the power circuit.

In terms of the schematic, I've designed a USB-C PD compatible circuit, which negotiates 12V and then also steps it down to 5v and 3.3v, which I also need. It also includes filtering and surge protection.
image

The biggest challenge I had was trying to choose parts. Things like inductors and PTC Fuses and TVS Diodes come in many similar options, and I had to work out exactly what I needed.
Here's a random photo of choosing LDOs on LCSC :D
image

11/18/2025 - Added ESP32

It took me a little while, but I've added the brains of the project! I spent ~25-30 mins choosing which controller to use, and settled on an ESP32-S3 WROOM, which saves me routing complex parts like a crystal.

I've added the ESP32 and its supporting circuity, like reset and boot buttons.
image

I also spent around ~20-25 mins adding in TVS diodes on the usb data lines (it took me a while to work out the necessary values and ratings). I also fixed a couple issues with more other protective circuitry, like the NTC Fuse and stuff, to make sure it had the right ratings.
image

11/19/2025 8 PM - Extra Bits

This time, I've added a few extra parts, like an IMU, MEMS Microphone and Capacitive touch:
image

I first selected the components from LCSC, based on requirements. I decided a IMU would be a fun addition to add physics based effects. I also chose to add capacitive touch for a sleeker physical controls.

The biggest challenge I had was trying to translate chinese datasheets😭... Most of LCSC's datasheets are written and chinese, and Google Translate doesn't do a very good job of it.

(FYI, I submitted this journal retrospectively - i forgot to make it earlier - which is why there is less than a 2hr gap to the next one. Between the two I spent just over 3.5hrs, so the overall number is right)

11/19/2025 9 PM - Added LEDs to Schematic

It took me quite a long time, but i have added the LED matrix to the schematic!!
image

Basically it's a 32x32 matrix, wired in a serpentine grid. That means there's 1024 LEDs, which is a LOT. To be able to handle all of these, I use EasyEDAs 'reuse blocks' feature, which is a bit like hierarchical sheets in KiCad. Basically it means I can contain each row of the matrix within one of the small blocks on the above screenshot. Each of those blocks then contains the parts for that row:
image

This also allows me to pre-configure the layout of each row, which will hopefully make my life easier when I start the PCB:
image

11/20/2025 5 PM - Finished Schematics

Pretty quick touch up of some minor things in the schematic. Mostly things like pull-up resistors, decoupling capacitors and the like

A few screenshots of some examples:
image image image

11/20/2025 10 PM - Arranged LED Matrix

Pretty tedious piece of work, but definitely needed doing... Basically I just arranged all the RGB LEDs into the 32x32 matrix, on an 8mm pitch. Using the EasyEDA reuse blocks made my life so much easier, because each row was already arranged, so I only had to align them into the columns.

image

Needless to say this was pretty tedious, and not helped by the fact that EasyEDA was lagging... A lot... I don't think it enjoyed the 1024 LEDs 😭

11/22/2025 11 AM - Finished arranging the PCB

It took me wuite a while, but I've finished arranging all the components on the PCB!
image

Given space isn't a concern, I tried to place in a way that will make my next step of routing easy. I also focused on prioritising signal integrity, and keeping traces for capacitive touch zones free from noise, etc. The biggest challenge was probably trying to keep sensitive components away from noise, given the whole front of the pcb is taken up with LEDs and noisy power lines and switching signals.

Here's a 3d render of the section with most of the main electronic parts:
image

11/22/2025 8 PM - Routed key components

Basically I just routed all of the main electronics, like the ESP, power circuitry, sensors, capacitive touch, etc. Next I'll route the LED matrix.

image

image

Here's the capacitive touch IC routing, which was a little bit of a challenge, as I had to be careful to prevent noise on the sensitive capacitive touch lines.
image

11/23/2025 - Finished Routing!!

I've finished routing the PCB!!! It took me a very long time to do all of the LED power routing, and then I had to do a bit of work to prevent voltage drop.
image
image

I've used quite a lot of vias to connect the LEDs to the GND pour on the back (the front is a 5v pour). I had a bit of a challenge trying to route the LED power lines up where most of the main driving circuitry is.

Here's some screenshots of the PCB (I hid the pour on the front, so you can actually see the traces):
image
image

12/1/2025 4 PM - Implemented Feedback & Re-Routed PCB

Another super long journal entry lol. Basically, I got some feedback that I needed to have a decoupling capacitor for every LED, which meant redoing all the matrix routing. I also had to jump through quite a few hoops, because EasyEDA didn't like me editing re-use blocks, so it messed up the layout of the LEDs (which meant I had to force them back to how they were).

As you can see, 1024 capacitors is a lot:
image

While I was at it, I also made some improvements to the routing, including more vias and shorter traces (to reduce voltage drop) to the LEDs. I also noticed I had accidentally created multiple separated ground fills on the back (due to the long capacitive touch traces), so I added a bunch of vias and thick traces in a number of places, to connect them at low resistance:
image

12/1/2025 9 PM - Final PCB touchups

I've made a couple of minor fixes to the PCB, touched up the silkscreen, etc.

Basically I went through the DRC errors and fixed everything up (0 DRC errors now!) image

And then I removed most of the component designators on the front side (cause there were too many of them for it to be at all legible), and added some cool stuff onto the silkscreen:
image
image

I also did a few minor touchups around the power circuitry for better power distribution etc.
image