Skip to main content

Extension to control musicbox via gpio.

Project description


.. image::
:alt: Latest PyPI version

.. image::
:alt: Travis CI build status

.. image::
:alt: Test coverage

This is an extension for Mopidy to control your music via buttons. There are 4 dedicated playlist buttons, when pressed
a playlist starts. Volume control is done via a rotary encoder and the LCD screen displays relevant information.


Install by running::

pip install Mopidy-GPIOcont

Or, if available, install the Debian/Ubuntu package from `


Before starting Mopidy, you must add configuration for
Mopidy-GPIOcont to your Mopidy configuration file (Note that the list_name are strings and should not be followed by a space)::

enabled = true
play_pin = 4
next_pin = 23
prev_pin = 24
vol_a_pin = 17
vol_b_pin = 18
vol_bounce_time = 10
vol_change = 2
list1_pin = 6
list2_pin = 13
list3_pin = 19
list4_pin = 26
list1_name = Awesome Mix Vol.1
list2_name = Awesome Mix Vol.2
list3_name = Heerenhuis UU7
list4_name = Loge, koffie!
lcd_enable = true
lcd_address = 38
lcd_port = 1

The configuration shown here is also the default configuration. Below is an explanation for each setting
(Pins are in BCM mode you can see `here <>`_ what your pin numbers are.).

Since Mopidy-GPIOcont uses the internal pullup resistors of your Raspberry, buttons should be connected as:

[Pin] -> [Button] -> [Ground].

Configuration options
Not all config values have to be set, below is an explanation for each configuration value.


``enabled``: If the extension is enabled or not.

``list<i>_name``: Name of your dedicated playlist (no trailing spaces).

``lcd_address``: Address of your LCD screen on the I2C bus. Hexadecimal without the leading "0x".
Can be found with ``sudo i2cdetect -y 1`` or ``sudo i2cdetect -y 0``.
This command uses the i2c-tools ``sudo apt-get install i2c-tools``.

OPTIONAL (Else default values are used)

``play_pin``: Location of your play/pause button.

``next_pin`` and ``prev_pin`` : Location of your next and previous button.

``vol_a_pin``: Location of channel A of your rotary encoder (also sometimes CLK).

``vol_b_pin``: Location of channel B of your rotary encoder (also sometimes DT).

``list<i>_pin``: Location of your dedicated playlist buttons.

``lcd_enable``: If you want to enable your LCD screen.

``lcd_port``: Port of the I2C bus (0 for RasPi 1 and 1 for Raspi 2/3).

These two settings have to be adjusted to fit your rotary encoder if your volume control is not working well.

``vol_bounce_time``: Time in milliseconds to wait before another edge is detected on channel A.

``vol_change``: Change in volume (up/down) per detected edge on channel A.

Project resources

- `Source code <>`_
- `Issue tracker <>`_
- `Development branch tarball <>`_


- Original author: `Jasper Gerth <`__
- Current maintainer: `Jasper Gerth <`__
- `Contributors <>`_


- Play/Pause working
- Prev/Next working
- Dedicated playlist pins working
- LCD screen working (Only used on boot)


- Initial release.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Mopidy-GPIOcont-0.2.2.tar.gz (12.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page