Skip to main content

A touchscreen controller for Sonos, using a Hyperpixel 4” touch LCD display and a Raspberry Pi Zero WH.

Using https://github.com/maru-sama/sonoscontroller.  Pi configuration based on http://www.weigu.lu/sb-computer/pitoucon/index.html, with mods for touch rotation.

Provides a full-time desktop display of what’s currently playing, along with basic control.

 

Quick test at Python cmd prompt:

>>> from soco.discovery import by_name
>>> zone = by_name("Office")
>>> zone
SoCo("192.168.68.128")
>>> 

So, looks good.

Note that there are corner cases where this form of discovery can fail -- for example, if you have multiple Sonos systems on the same network (e.g., split S1/S2) you’ll probably get failures some of the time.

If you do hit problems, use the following instead:

zone = by_name(“Office”, allow_network_scan=True, scan_timeout=1.0)

(Alternatively, one can lift it up a level of abstraction and use SoCo-CLI instead:

>>> from soco_cli.api import get_soco_object
>>> zone, err = get_soco_object("Office")
>>> zone

SoCo("192.168.68.128")

The SoCo-CLI call will use all possible discovery mechanisms. See https://github.com/avantrec/soco-cli#using-soco-cli-as-a-python-library for more details.)


A custom 3D printed case for the Hyperpixel display makes it a polished product.  Rubber bumper feet added to bottom to keep it stable when touching screen controls.

3D model here.  Ordered through Shapeways.