Home

Awesome

Knobby: a little remote for Spotify and more

Latest release Build status Downloads

Knobby is the remote control made for discovering music and rediscovering your own collection; your one-click cure for musical boredom.

<img src="images/demo.gif?raw=true" width="427" height="240" alt="example of playing a random genre with a Knobby" align="right">

One knob controls your musical universe

<br clear="all"> <a href="images/knobby3.jpg?raw=true"><img src="images/thumb.knobby3.jpg?raw=true" width="180" height="240" alt="knobby with wood finish in hand" align="left"></a>

Untether music from your phone

Always ready, free from distractions, and designed to be shared: Knobby is the perfect partner to any smart speaker. Show off your meticulously curated collection in your home, or pass it around a party and let your guests take control.

<br clear="all"> <a href="images/knobby6.jpg?raw=true"><img src="images/thumb.knobby6.jpg?raw=true" width="320" height="240" alt="three knobby remotes" align="right"></a>

Make it yours(elf)

Knobby’s minimal design is easy to build and customize, with open source firmware based on the Arduino framework. The 3D printed enclosure is designed around a common ESP32 development board and a single rotary encoder. You can buy one from me to support this project, or build one yourself.

<a href="https://www.tindie.com/stores/milowinningham/?ref=offsite_badges&utm_source=sellers_milowinningham&utm_medium=badges&utm_campaign=badge_medium"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-mediums.png" alt="I sell on Tindie" width="150" height="78"></a> <br clear="all">

See it in action

https://user-images.githubusercontent.com/15299/221440478-d7a543d5-4e82-4146-b03c-dc35ea191b35.mp4

Read more

Usage

Requirements

Build your own

Get the parts

Or, install the firmware on another supported ESP32 development board:

Wire it up

<img src="images/wiring-diagram.png?raw=true" width="439" height="439" alt="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.
<img src="images/soldering.gif?raw=true" width="439" height="240" alt="soldering rotary encoder’s wires to the circuit board">

Install the firmware

➡️ setup.knobby.net

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 esptool.py installed. With the USB cable connected, run the flash script in the directory of the extracted firmware zip:

Web configuration

Additional configuration is available at http://knobby.local after knobby is connected to your network. From this page, you can change hardware settings or apply a manual firmware update.

You'll need the device password for this, which is randomly generated on first boot if not configured in data.json. You can see the configured password in the serial console output over USB, or by double-clicking the knob on the settings > about screen.

Custom builds and other rotary encoders

You may need to adjust the pin assignments or pulse count to work with different hardware. If you find that the knob must be turned two clicks to move one item through the menu, try changing the pulse count from 4 to 2. The scroll direction can be also reversed by swapping the A and B pins.

These settings can be changed from the web configuration page, or also by editing data/data.json when setting up a device for the first time (see below).

Compile from source

  1. Edit data/data.json and update the configuration if necessary.
  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 http://192.168.4.1. Enter your wifi network information, then switch back to your normal wifi network and visit http://knobby.local to continue.

License

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

Credits