Home Projects Experience About Contact
โ† All Projects
In Progress ยท 2026

Spotify Music Controller

A physical desk controller for Spotify โ€” one rotary knob, a few buttons, e-ink album art, and a Wi-Fi connection to the Spotify API. The goal is simple: control music without touching the computer.

Status In Progress
Platform ESP32
Languages C / C++
๐Ÿšง

Work in Progress

This page will be updated with schematics, firmware details, and build photos as the project comes together.

The Idea

I kept reaching for my phone to skip tracks or adjust volume while working. Alt-tabbing to Spotify broke my focus. I wanted something physical on my desk โ€” a knob I could reach for without thinking about it.

The ESP32 made sense for this. It has Wi-Fi built in, enough GPIO for a rotary encoder and a few buttons, and solid library support for the display driver I wanted. I chose an e-ink display specifically because I didn't want something bright competing with my monitors โ€” e-ink is easy to ignore when you're not looking at it, which is what a desk tool should be.

๐ŸŽต

What I'm Building

Play/pause, skip forward, skip back, and volume via the rotary encoder. The e-ink panel shows album art, track name, and artist. When nothing is playing, the display clears โ€” e-ink doesn't need to refresh constantly, so there's no visual noise.

Size matters. It should fit next to a keyboard without taking up real estate.

Where It's At

The OAuth flow is the awkward part. Spotify uses OAuth 2.0 with a browser redirect, which doesn't map cleanly onto a microcontroller with no browser. The approach I'm testing: do the initial auth on a laptop, store the refresh token in ESP32 flash, then let the device handle token renewal automatically going forward.

The e-ink driver is mostly working. Full-panel refreshes take about two seconds and have a visible flicker, so I'm looking into partial update modes to make track changes feel faster. Enclosure design is next.