Skip to main content
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.

PCB files

All PCB design files are included in the source repository under the PCB/ directory.

Available 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.json
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
The schematic includes:
  • ESP32 pin assignments
  • OLED display I2C connections (SDA/SCL)
  • WS2812B LED data line connection
  • 7 switch connections with pull-up resistors
  • Power distribution network
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
PCBDesign.pngA rendered preview image of the PCB layout showing component placement and routing.Location: PCB/PCBDesign.png

PCB specifications

When ordering the PCB, use these specifications:

Physical specifications

Design specifications

Pin connections

The PCB routes the following connections:
Power:
  • 5V input from USB
  • 3.3V regulation (if not using board’s built-in regulator)
  • Ground plane
Digital pins:
  • 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.
1

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.
2

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)
Most manufacturers offer very affordable prices for small quantities (often under $5 for 5 boards).
3

Upload Gerber files

On the manufacturer’s website:
  1. Create an account or log in
  2. Click “Quote Now” or “Instant Quote”
  3. Upload the Gerber.zip file
  4. Wait for the files to be analyzed
4

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.
5

Review and order

  1. Review the PCB preview (most sites show a 3D render)
  2. Verify the dimensions and hole placements
  3. Add to cart and complete checkout
  4. Wait for manufacturing (typically 1-2 weeks including shipping)

PCB modifications

If you want to modify the PCB design:

Importing design files

The SpotifyMacroBoardDesign.json and Schematic.json files can be imported into compatible EDA (Electronic Design Automation) software.
Before modifying the PCB, ensure you understand the circuit design and have experience with PCB layout. Incorrect modifications can result in a non-functional board.

Common modifications

To add additional switches:
  1. Choose available GPIO pins on the ESP32
  2. Add new switch footprints to the PCB
  3. Route traces from the GPIO pin to one switch terminal
  4. Connect the other terminal to ground
  5. Update the firmware to handle additional switches
Available GPIO pins (not currently used): 2, 15, 16, 17, 22, 23, 27, 32, 33
The firmware is configured for 20 LEDs, but you can use fewer:
  1. Modify the PCB to include fewer LED positions
  2. Update the firmware constant:
  3. Ensure proper power calculations (fewer LEDs = less current)
To use a different OLED display:
  1. Check if it uses I2C with the same address (0x3C)
  2. Ensure it’s compatible with the SSD1306 driver
  3. Update the firmware screen dimensions:
  4. 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:
1

Visual inspection

  • Check for manufacturing defects
  • Verify all traces are intact
  • Ensure holes are properly drilled
  • Look for shorts or breaks
2

Continuity testing

Use a multimeter to verify:
  • Ground connections are continuous
  • No shorts between power rails
  • Switch pad connections
  • Trace continuity between pads
3

Power testing

Before soldering components:
  • Test 5V and 3.3V rails with a power supply
  • Verify no excessive current draw
  • Check for shorts or unexpected connections

Next steps

Component list

Review all required components before assembly

Assembly guide

Follow step-by-step assembly instructions