Quantcast
Channel: Squeezebox : Community : Forums - DIY
Viewing all articles
Browse latest Browse all 123

[ANNOUNCE] SqueezeButtonPi - Tool to use buttons and rotary encoders on a RPi

$
0
0
SqueezeButtonPi is a tool some of you might find useful if you are trying to build a Raspberry Pi based Squeezebox player and you want to use various buttons or rotary encoders.

It's currently a bit limited - only supports playback control commands without feedback (play, pause, power, skip, volume) but it could easily be extended to take server feedback and support things like "favorites" although for the latter someone should take the time to create a "hold" gesture detection for a button, something I didn't have the time for so far.

One nice feature is that it's able to autodetect a common Squeezebox setup so you often don't need to manually configure the MAC, the server etc. and it can do automatic server switching.

Main features:
  • Supports buttons and rotary encoders
  • Can be run as a daemon at startup and is fully command-line configurable
  • Automatically detects the MAC address of your RPi (or you can configure it manually)
  • Automatically detects what server your player is connected to and switches the server if your player does so it can be used in multi-server setups without a configuration change
  • can use authenticating servers, although only with manual username/password configuration


Here's the source code and more documentation:

https://github.com/coolio107/SqueezeButtonPi-Daemon

Usage:

Code:

sbpd [OPTION...] [e,pin1,pin2,CMD,edge] [b,pin,CMD,edge...]
Options arguments:
Code:

 
    -A, --address=Server-Address  Set server address. Default: autodetect
    -M, --mac=MAC-Address      Set MAC address of player. Deafult: autodetect
    -p, --password=password    Set password for server. Default: none
    -P, --port=xxxx            Set server control port. Default: autodetect
    -u, --username=user name  Set user name for server. Default: none
    -d, --daemonize            Daemonize
    -k, --kill                Kill daemon
    -s, --silent              Don't produce output
    -v, --verbose              Produce verbose output
    -?, --help                Give this help list
        --usage                Give a short usage message
    -V, --version              Print program version

Non-Option arguments.

At least one needs to be specified for the daemon to do anything useful
Arguments are a comma-separated list of configuration parameters:
Code:

 
    For rotary encoders (one, volume only):
        e,pin1,pin2,CMD[,edge]
            "e" for "Encoder"
            p1, p2: GPIO PIN numbers in BCM-notation
            CMD: Command. Unused for encoders, always VOLM for Volume
            edge: Optional. one of
                  1 - falling edge
                  2 - rising edge
                  0, 3 - both

    For buttons:
        b,pin,CMD[,edge]
            "b" for "Button"
            pin: GPIO PIN numbers in BCM-notation
            CMD: Command. One of:
                PLAY:  Play/pause
                PREV:  Jump to previous track
                NEXT:  Jump to next track
                VOL+:  Increase volume
                VOL-:  Decrease volume
                POWR:  Toggle power state
            edge: Optional. one of
                  1 - falling edge
                  2 - rising edge
                  0, 3 - both


Viewing all articles
Browse latest Browse all 123

Trending Articles