Skip to content

Releases: gxlabs/now-playing-device

v1.2 — Waveshare ESP32-S3 support

Choose a tag to compare

@glenrobertson glenrobertson released this 20 Sep 13:42

Adds support for a second board — the Waveshare ESP32-S3-Touch-LCD-1.46 — and fixes album art on the Mac side.

New hardware: Waveshare ESP32-S3-Touch-LCD-1.46

A 412×412 round IPS panel (SPD2010 over QSPI, SPD2010 touch over I2C) on an ESP32-S3R8 with 16MB flash and 8MB octal PSRAM. All-in-one — nothing to assemble. The Seeed XIAO ESP32-C6 + Round Display is still fully supported.

The device now declares its panel size in the USB handshake (NP:ACK:<size>), so one build of the Mac app drives either board and pushes artwork at the panel's native resolution.

Fixed: album art could stop updating

Two faults in the Mac app's artwork path left the device showing the previous track's cover while title, artist and progress kept updating:

  • The MediaRemote adapter emits a bare JSON null when there is no now-playing item — including for a moment between tracks. That was passed straight to callers, so the track-change tick died with AttributeError exactly when the new artwork was due.
  • The "last artwork sent" marker advanced whether or not a frame had actually gone out, so a single empty fetch retired that track's artwork permanently. A failed fetch now retries on the next tick.

Firmware assets are now per board

Releases before v1.2 shipped a single firmware.bin, which was the C6 image. There are now two, each a merged image flashed to offset 0x0:

Board Asset
Waveshare ESP32-S3-Touch-LCD-1.46 firmware-esp32s3.bin
Seeed XIAO ESP32-C6 + Round Display firmware-esp32c6.bin

The images are board-specific and the wrong one will not boot.

esptool.py --chip esp32s3 --port /dev/cu.usbmodem* write_flash 0x0 firmware-esp32s3.bin
esptool.py --chip esp32c6 --port /dev/cu.usbmodem* write_flash 0x0 firmware-esp32c6.bin

NowPlayingDisplay.dmg is signed and notarized. Setup guide: https://www.gxlabs.co/now-playing

v1.1

Choose a tag to compare

@glenrobertson glenrobertson released this 29 Apr 21:11

Changes since v1.0

  • Firmware: render accented characters. Built-in LVGL Montserrat fonts only shipped ASCII, so titles/artists with é, ñ, ö, etc. came up blank. Replaced with custom extended-Latin Montserrat fonts (Latin-1 Supplement + Latin Extended-A + common typographic punctuation), with LVGL's FontAwesome symbol set merged so play/pause/prev/next buttons still render.

Downloads

  • firmware.bin — pre-built ESP32-C6 firmware (merged image, flash to offset `0x0`)
  • NowPlayingDisplay.dmg — signed and notarized macOS menu bar app (unchanged from v1.0)

End-user setup instructions: https://www.gxlabs.co/now-playing

v1.0

Choose a tag to compare

@glenrobertson glenrobertson released this 29 Apr 20:51

First public release.

Downloads

  • firmware.bin — pre-built ESP32-C6 firmware (merged image, flash to offset 0x0)
  • NowPlayingDisplay.dmg — signed and notarized macOS menu bar app (Universal, macOS 13+)

End-user setup instructions: https://www.gxlabs.co/now-playing