Code Monkey home page Code Monkey logo

knobby's Introduction

Knobby: a little remote with a lot of possibilities

Spin the knob to browse 5,000+ genres of music along with your own playlists. Knobby is a distinctive remote control for Spotify and more.

Explore a universe of music with just a knob

Knobby is a remote made for discovering new music and rediscovering your own collection. It’s the perfect companion to a smart speaker, allowing you to browse playlists, see what’s playing, and control playback without interrupting anything. Preloaded with thousands of genre and country playlists from everynoise.com, it encourages you to explore unfamiliar music and puts all of Spotify on shuffle.

Untether music from your phone

Bring music discovery into your living room with a device that’s meant to be shared and free from distracting apps or notifications. Show off your meticulously curated collection to people in your home, or pass it around at a party and put your guests in control.

Pop your filter bubble

Streaming services feed you new releases and top hits through algorithmic recommendations and branded playlists, but how do you dig deeper? Knobby is your musicological compendium — a vast index of musical expression that rewards deep exploration — not a media outlet engineered to compete for your attention.

Usage

demo of genre selection

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

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.

demo of genre selection

Install the firmware

To flash the firmware, you will need to have Python and esptool.py installed. If the serial device is not detected, you might need to install the CP210x drivers.

  1. Go to the latest release and download the firmware zip for your hardware: knobby-firmware.zip for the original knobby or twatch-firmware.zip for the T-Watch encoder version.
  2. With the USB cable connected, run the flash script in the directory of the extracted firmware zip:
  • on Linux or Mac: ./flash.sh
  • on Windows: flash.bat

Compiling 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: platformio run && platformio run --target upload && platformio 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

knobby's People

Contributors

quadule avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.