Skip to content

TheDiffi/cyd-jukebox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CYD Jukebox

A physical music controller for your Home Assistant smart home — built on a ~12€ ESP32 display, the infamous Cheap Yellow Display. Stick it on the wall, tap to play.

License: MIT ESPHome Platform: ESP32

→ Installation Guide


CYD Jukebox mounted on a wall


What is this?

CYD Jukebox turns a Cheap Yellow Display into a always-on, wall-mounted music controller for any media_player entity in Home Assistant. No app, no phone, no voice commands — just a physical button on your wall.

It's cheap, open, and built entirely on ESPHome. Works with any HA media player out of the box, and pairs especially well with Music Assistant.


Features

  • Album art — displays the current song's cover art in a cozy pixel art style (because more pixels would not fit into the ram)
  • Playback controls — only what you really need. play/pause, skip, stop
  • Volume control — tap the volume button to reveal a slider
  • Quick-play buttons — have the best at your fingertips: Two configurable shortcuts to instantly start a favourite playlist
  • Playlist browser — a fine selection: Open a scrollable page with playlists defined by you
  • State sync — surprisingly responsive: Reflects changes made from any other device in real time
  • Auto-dim & sleep — designed to not annoy you. Dims after a short idle period; turns off completely when the player is inactive. A tap wakes everything back up
  • Burn-in prevention — runs pixel training automatically during the night so your display stays healthy

CYD Jukebox UI showing album art and controls


Hardware

The CYD (Cheap Yellow Display)

The CYD is an ESP32-based 2.8" resistive touchscreen module — everything on a single PCB, no soldering required. It's popular in the ESPHome community for being a complete, capable package at a very low price. (The PCB is yellow. Hence the name.)

What to buy: look for the model number ESP32-2432S028 to make sure you get the right variant.

Case

The firmware is designed for portrait (vertical) orientation.

There's no official CYD Jukebox case yet — a custom retro-styled one is in the works. In the meantime, this case from Printables works great: ESP32-2432S028 USB-C Module Case

For mounting, a wall mount is recommended. Double-sided tape works fine. The community is welcome to share their own solutions.


Requirements


Project Structure

cyd-jukebox/
├── esphome/
│   ├── cyd-jukebox.yaml              # Main ESPHome config — start here
│   ├── cyd-playlists-page.yaml       # Playlist browser UI (included by main config)
│   ├── cyd-gradient-overlay.yaml     # Gradient overlay widget (included by main config)
│   ├── config.yaml.example           # Template for your personal config — copy to config.yaml
│   ├── secrets.yaml.example          # Template for your secrets file
│   └── fonts/
│       ├── MemoryIcons-Regular.otf   # Pixel icon font (Apache 2.0)
│       └── LICENSE
└── appdeamon/
    ├── cyd-jukebox-album-art-generator.py   # AppDaemon app — fetches & processes album art
    └── apps.py                              # AppDaemon config template

Setup

Installation Guide (WIP)

Full step-by-step guide coming soon.

Short version:

  1. Copy esphome/config.yaml.exampleesphome/config.yaml and fill in your media_player entity and HA URL
  2. Copy esphome/secrets.yaml.exampleesphome/secrets.yaml and fill in your credentials and secrets
  3. Flash esphome/cyd-jukebox.yaml to your CYD via ESPHome
  4. Add the device in Home Assistant and allow it to perform actions
  5. Set up the AppDaemon app for album art (see appdeamon/)

Roadmap

Things actively being worked on or planned:

  • Media player switching — select a different speaker from the device itself, with optional queue transfer
  • Better pixel/retro aesthetics — sharper icons, more retro UI elements
  • Custom case design — a purpose-built retro case to be published on Printables
  • Landscape orientation support
  • Dynamic media browsing — replace the static playlist page with live browsing
  • Loading UI While Connecting to Wifi

Contributing

PRs, issues, suggestions, and case designs are all welcome. If you build one, show it off.


Credits & License

CYD Jukebox is MIT licensed — see LICENSE.

Uses MemoryIcons by Pictogrammers, licensed under Apache License 2.0.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages