A little Spotify remote to remind you that there's a lot of music out there.
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.
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.
https://user-images.githubusercontent.com/15299/221440478-d7a543d5-4e82-4146-b03c-dc35ea191b35.mp4
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.
data/data.json
and replace null
with 2
for pulseCount
.pio run --target uploadfs
to upload the configuration file.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:
./flash.sh
flash.bat
data/data.json
and enter your wifi network information (if you want; it can also be configured later)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.
All code is released under the MIT license. The case design is released under the CC-BY-NC 4.0 license.