The Spotify MacroBoard uses a custom PCB to connect all components together. This page provides detailed information about the PCB design, how to order it, and technical specifications.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/benz206/SpotifyMacroBoard/llms.txt
Use this file to discover all available pages before exploring further.
PCB files
All PCB design files are included in the source repository under thePCB/ directory.
Available files
Design files
Design files
SpotifyMacroBoardDesign.jsonThe complete PCB design file in JSON format. This file can be imported into compatible PCB design software for viewing or modification.Location:
PCB/SpotifyMacroBoardDesign.jsonSchematic files
Schematic files
Schematic.json and Schematic.pngThe circuit schematic shows how all components are connected electrically. Available in both JSON format (for editing) and PNG format (for viewing).
- View:
PCB/Schematic.png - Edit:
PCB/Schematic.json
- ESP32 pin assignments
- OLED display I2C connections (SDA/SCL)
- WS2812B LED data line connection
- 7 switch connections with pull-up resistors
- Power distribution network
Manufacturing files (Gerber)
Manufacturing files (Gerber)
Gerber.zipProduction-ready Gerber files for PCB manufacturing. This ZIP file contains all the layers needed to fabricate the PCB.Location:
PCB/Gerber.zipThe Gerber file package includes:- Top copper layer
- Bottom copper layer
- Top silkscreen
- Bottom silkscreen
- Top soldermask
- Bottom soldermask
- Drill file
- Board outline
PCB preview
PCB preview
PCBDesign.pngA rendered preview image of the PCB layout showing component placement and routing.Location:
PCB/PCBDesign.pngPCB specifications
When ordering the PCB, use these specifications:Physical specifications
| Parameter | Specification |
|---|---|
| Layers | 2-layer board (recommended) |
| Material | FR-4 |
| Thickness | 1.6mm (standard) |
| Finish | HASL, ENIG, or LeadFree HASL |
| Copper weight | 1 oz (35µm) |
| Minimum trace width | Check design files |
| Minimum drill size | Check design files |
Design specifications
| Parameter | Value |
|---|---|
| GPIO pins used | 12 (pins 4, 5, 12, 13, 14, 18, 19, 21, 25, 26) |
| I2C bus | SDA (GPIO 21), SCL (GPIO 19) |
| LED data pin | GPIO 18 |
| Switch pins | GPIO 4, 5, 12, 13, 14, 25, 26 |
| I2C speed | 400 kHz (Fast Mode) |
| Pull-up resistors | Internal pull-ups enabled on all switch pins |
Pin connections
The PCB routes the following connections:- ESP32 connections
- OLED display
- LED strip
- Switches
Power:
- 5V input from USB
- 3.3V regulation (if not using board’s built-in regulator)
- Ground plane
- GPIO 4: Shuffle button
- GPIO 5: Volume down button
- GPIO 12: Volume up button
- GPIO 13: Loop/Repeat button
- GPIO 14: Previous track button
- GPIO 18: WS2812B LED data + LED indicator
- GPIO 19: I2C SCL (OLED display)
- GPIO 21: I2C SDA (OLED display)
- GPIO 25: Play/Pause button
- GPIO 26: Next track button
Ordering the PCB
You can order the PCB from any PCB manufacturer using the provided Gerber files.Download the Gerber files
Download
Gerber.zip from the PCB/ directory in the repository.Do not unzip the file. Most PCB manufacturers accept the ZIP file directly.
Choose a PCB manufacturer
Popular PCB manufacturers that accept Gerber files:
- JLCPCB (jlcpcb.com)
- PCBWay (pcbway.com)
- OSH Park (oshpark.com)
- ALLPCB (allpcb.com)
- Seeed Studio (seeedstudio.com)
Upload Gerber files
On the manufacturer’s website:
- Create an account or log in
- Click “Quote Now” or “Instant Quote”
- Upload the
Gerber.zipfile - Wait for the files to be analyzed
Configure PCB options
Select the following options (or use defaults):
- Layers: 2
- Thickness: 1.6mm
- Color: Your choice (green is cheapest)
- Surface finish: HASL (cheapest) or ENIG (better)
- Copper weight: 1 oz
- Quantity: 5 minimum (most manufacturers)
The dimensions and other technical specs will be automatically detected from the Gerber files.
PCB modifications
If you want to modify the PCB design:Importing design files
TheSpotifyMacroBoardDesign.json and Schematic.json files can be imported into compatible EDA (Electronic Design Automation) software.
Common modifications
Adding more switches
Adding more switches
To add additional switches:
- Choose available GPIO pins on the ESP32
- Add new switch footprints to the PCB
- Route traces from the GPIO pin to one switch terminal
- Connect the other terminal to ground
- Update the firmware to handle additional switches
Using fewer LEDs
Using fewer LEDs
The firmware is configured for 20 LEDs, but you can use fewer:
- Modify the PCB to include fewer LED positions
- Update the firmware constant:
- Ensure proper power calculations (fewer LEDs = less current)
Different display size
Different display size
To use a different OLED display:
- Check if it uses I2C with the same address (0x3C)
- Ensure it’s compatible with the SSD1306 driver
- Update the firmware screen dimensions:
- Adjust the display layout code if necessary
Design considerations
Power distribution
The PCB includes power distribution for:- 5V rail for ESP32 and LED strip
- 3.3V rail for OLED display (if required)
- Separate ground plane for noise reduction
Signal integrity
- I2C traces (SDA/SCL) should be kept as short as possible
- LED data line should have a direct path to minimize signal degradation
- Ground plane provides return path for all signals
Mechanical design
- Switch spacing compatible with standard keyboard layouts
- Mounting holes for case attachment (if using enclosure)
- Component placement optimized for hand assembly
Testing the PCB
After receiving your PCB, test it before assembly:Visual inspection
- Check for manufacturing defects
- Verify all traces are intact
- Ensure holes are properly drilled
- Look for shorts or breaks
Continuity testing
Use a multimeter to verify:
- Ground connections are continuous
- No shorts between power rails
- Switch pad connections
- Trace continuity between pads
Next steps
Component list
Review all required components before assembly
Assembly guide
Follow step-by-step assembly instructions