/slimpi_epd

Raspberry Pi Logitech Media Server Client with ePaper display

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

SlimPi

ePaper based Logitech Media Player Display

For complete build instructions and links to a spiffy case, head over to the Project Log at Hackaday.io.

SlimPi provides a Logitech Media Player display using a WaveShare e-Paper display and a Raspberry Pi.

Table of contents generated with markdown-toc

Features

SlimPi provides a now playing display for a selected Logitech Media Player. When the player is paused, an alternative screen is displayed.

Display includes:

  • Track Title
  • Artist Name
  • Album Name
  • Album Artwork (if available)
  • Now Playing Mode: e.g. play, stop, pause

When the music is paused, the display shows an alternative screen.

Word Clock (default)

Clock

Binary Clock

The refresh rate of HAT compatable waveshare displays is relatively slow (5-20 seconds) and does not support partial refreshes. This results in the display pulsing between an all-white and all-black state several times during each refresh.

To limit the visual disturbance of a pulsing screen, the default clock is the Word Clock with a refresh rate of around 5 minutes.

Software Quick Install

If you have a working EPD installed, the following instructions will get you up and runing quickly. If you do not yet have a working screen installed, check the Hardware Setup instructions below.

  1. Download the installable package from git hub
  2. Decompress the tarball: tar xvzf slimpi_latest.tgz\
  3. Make sure SPI is enabled on the Raspberry Pi
  4. Run the installer:
    • install.sh for a daemon that starts automatically at boot, or see below for running in user space
    • user_install.sh to setup the user space configuration files
  5. Edit the appropriate configuation file: /etc/slimpi.cfg for daemon or ~/.config/com.txoof.slimpi/slimpi.cfg for user space
    • Required settings that must be configured:

      • display = waveShareEPDType
      • example: display = epd5in83
        • The display type should match the model number of your HAT compatable e-Paper display
      • player_name = "Name Of LMS Player on Local Network"
      • example: player_name = slimpi
        • The player name can be found by running slimpi --list-servers:
      slimpi --list-servers
      
      Scanning for available LMS Server and players
      servers found:
      [{'host': '192.168.178.9', 'port': 9000}]
      
      players found:
      name: Chilab'le <---player_name
      playerid: 00:04:20:07:e6:44
      modelname: Squeezebox Classic
      
      
      players found:
      name: slimpi <---player_name
      playerid: dc:a6:32:29:99:f0
      modelname: SqueezeLite   
      

Requirements

Required Hardware

Optional Hardware

  • HiFiBerry hat (optional)
    • The HiFiBerry DAC+ PRO and similar boards add high-quality audio output to the Pi so it can act as a display and also work as a LMS client player using squeezelite
    • GPIO 2x20 headers must be added to the board to support WaveShare HAT
    • HiFiBerry's DAC+ Bundle with the following configuraiton is a good choice:
      • DAC+ Pro
      • Acrylic Case for (RCA) AND DIGI+
      • Raspberry Pi 4B 2GB (1GB should be sufficient as well)
      • 16GB SD Card
      • PowerSupply (USB C 5.1V/3A)
      • 2x20 Pin Male Header (required for WaveShare HAT)

Required Raspberry Pi Configuration:

Enable SPI

$ sudo raspi-config

Select Interfacing Options > SPI and set to Yes

Required Software

Optional Software

  • squeezelite (optional)

    • Squeezelite, in combination with a HiFiBerry, allows the Pi to be usded as LMS display and client player

    Note: to make squeezelite play nice with other applications such as raspotify (librespot), add the following line to /etc/default/squeezelite:

    SB_EXTRA_ARGS="-C 10"

    This will allow squeezelite to close the output device after 10 seconds allowing other audio software to access it.

%alias mdconvert mdconvert README.ipynb
%mdconvert
[NbConvertApp] Converting notebook README.ipynb to markdown