Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Knobby: a little remote for Spotify and more

Latest release Build status Downloads

demo of genre selection

Discover new music and rediscover your own collection with Knobby. It’s a one-click cure for musical boredom.

I sell on Tindie

The perfect companion to any smart speaker, Knobby lets you browse playlists, see what’s playing, and control playback.. Preloaded with thousands of genre and country playlists from, it encourages you to explore unfamiliar music and puts all of Spotify on shuffle.

Untether music from your phone

Don’t fumble with your phone — Knobby is always ready, free from distractions, and designed to be shared. Show off your meticulously curated collection in your home, or pass it around at a party and put your guests in control.


  • Turn the knob to navigate between menu items.
  • Click the knob to select or play something.
  • Push in and rotate the knob to switch menus.
  • Hold the knob for couple seconds for a random genre, country, or playlist from the last open menu.
    • Keep holding the knob until the progress bar reaches the end to play immediately.
    • Release the knob before the progress bar reaches the end to keep browsing.
  • When browsing genres, double click the knob to switch sort modes: name (the default alphabetical order), suffix, ambience, modernity, and popularity.
  • When playing something, double click the knob to skip to the next track.

Make it yourself

knobby with wood finish in hand three knobby remotes

Get the parts

Other rotary encoders

If you use a different rotary encoder in your build and find that the knob must be turned two clicks to move one item through the menu, you can configure the encoder’s pulse count.

  1. Edit data/data.json and replace null with 2 for pulseCount.
  2. Run pio run --target uploadfs to upload the configuration file.

Wire it up

wiring diagram of rotary encoder with t-display board

  1. Connect the rotary encoder A and B pins to GPIO pins 12 and 13.
  2. Connect one pole of the switch to GPIO pin 15.
  3. Connect other pole of the switch and the encoder’s remaining middle pin to ground.

soldering rotary encoder’s wires to the circuit board

Install the firmware


The Knobby setup tool can flash the latest firmware and configure wifi credentials over USB (requires Google Chrome or Microsoft Edge for Web Serial API support).

Alternatively, you can download the latest release and flash it yourself. You will need to have Python and installed. With the USB cable connected, run the flash script in the directory of the extracted firmware zip:

  • on Linux or Mac: ./
  • on Windows: flash.bat

Compile from source

  1. Edit data/data.json and enter your wifi network information (if you want; it can also be configured later)
  2. Build and upload with PlatformIO: pio run && pio run --target upload && pio run --target uploadfs

If data.json is not configured or there is a problem connecting to your network, knobby will enter configuration mode. Join the temporary wifi network displayed on screen and wait for the configuration portal to appear or visit Enter your wifi network information, then switch back to your normal wifi network and visit http://knobby.local to continue.


All code is released under the MIT license. The case design is released under the CC-BY-NC 4.0 license.