Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AuxDeck

CI License: MIT

A tiny ambient sidecar for your Mac, because apparently the menu bar needed hardware.

AuxDeck turns an ESP32 and a 128Ă—160 SPI display into a small, glanceable Mac companion. The working reference widget shows the current Spotify track with artwork, metadata, playback state, progress, and a live audio-level waveform. The Mac prepares assets; the ESP32 validates complete frames and renders them.

The setup: “You could just look at the Spotify window.”

The engineer: “Counterpoint: tiny dedicated screen.”

Mac doing expensive desktop things  ──TG2──>  ESP32 doing tiny-screen things
         Wi-Fi first, encrypted BLE fallback, USB when the cable wins

Proof it left localhost

AuxDeck showing live Spotify artwork and waveform

Click the photo for a 10-second hardware demo.

AuxDeck prototype wired to an ESP32 on a breadboard

The media shows the working breadboard prototype displaying live playback. It is evidence, not enclosure glamour photography. We are still in the “wires have opinions” era.

What works

Capability Status
Spotify artwork, title, artist, progress, and play/pause state Working
Spotify-only output-level waveform; no audio recording Working on macOS
Same-LAN Wi-Fi data path Primary transport
Encrypted, bonded Bluetooth Low Energy Setup and fallback
USB serial Diagnostics and explicit wired mode
Torn-art prevention with bounded frames, CRC, and acknowledgement Working
Standalone playback, Spotify OAuth, buttons, or multiple widgets Not implemented
Firmware updates over Wi-Fi Not implemented; flashing is required

AuxDeck reads the locally installed Spotify app through macOS automation. It does not control playback, store audio, or pretend to be a standalone Spotify client. “Spotify” identifies compatibility only; this project is not affiliated with or endorsed by Spotify.

Architecture at a glance

flowchart LR
    S[Spotify for macOS] --> H[Python host bridge]
    A[Core Audio level helper] --> H
    H -->|Wi-Fi TCP| P[TG2 parser]
    H -->|encrypted BLE| P
    H -->|USB serial| P
    P --> R[ESP32 renderer]
    R --> D[ST7735 128Ă—160 TFT]
Loading

Artwork is committed to the screen only after the complete frame validates. One transport owns the parser at a time, which prevents interleaved bytes from producing the half-drawn artwork that inspired the project’s transport fixes. See Architecture and TG2 protocol.

Build one

You need macOS, Spotify for macOS, a classic ESP32 development board, an ST7735-compatible 128Ă—160 display, Python 3, Xcode command-line tools, and Arduino CLI. Start with Getting started, then use:

python3 -m venv .venv
.venv/bin/python -m pip install --requirement requirements.txt

arduino-cli compile --clean \
  --fqbn esp32:esp32:esp32:UploadSpeed=115200 \
  --warnings all \
  --build-property 'compiler.cpp.extra_flags=-DAUXDECK_WIFI -DAUXDECK_BLUETOOTH' \
  --build-path firmware/aux-deck/build firmware/aux-deck

AUXDECK_PORT=/dev/cu.usbserial-your-device
arduino-cli upload \
  --fqbn esp32:esp32:esp32:UploadSpeed=115200 \
  --port "$AUXDECK_PORT" \
  --input-dir firmware/aux-deck/build firmware/aux-deck

Initial setup and firmware changes require USB flashing. Once running, track data travels over Wi-Fi with Bluetooth fallback; that is data delivery, not OTA firmware updating.

Repository map

firmware/aux-deck/         production firmware
firmware/display-bringup/  minimal wiring diagnostic
firmware/artwork-preview/  synthetic offline UI fixture
host/python/               bridge, provisioning, installers, diagnostics
host/macos/                native BLE relay and Spotify audio-level helper
tests/                     host and native protocol/rendering tests
docs/                      setup, design, hardware, protocol, and operations

Documentation

MIT licensed. Build strange little objects responsibly.

About

🎧Tiny ESP32 sidecar for macOS showing live Spotify artwork, metadata, progress, and waveform over Wi-Fi with encrypted BLE fallback.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages