Version 2 (modified by 5 years ago) (diff) | ,
---|
Adafruit Volume control
I am controlling the volume of the MAX9744 using the CircuitPython Libraries (see https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi ). The things that I had to do:
Install the library
while in (.venv)
- pip3 install RPI.GPIO
- pip3 install adafruit-blinka
- pip3 install adafruit-circuitpython-max9744
Enable I2C ===
I2C is not enabled by default so run and enable I2C in the Interfacing Options
Python script
Use this script to set the initial volume to about the half (the range is 0 to 63). Create ~/bin/ada_volume.py with the following content
- nano ~/bin/ada_volume.py
import board import busio import adafruit_max9744 i2c = busio.I2C(board.SCL, board.SDA) amp = adafruit_max9744.MAX9744(i2c) amp.volume = 30
Start using systemd
Place a service file in the user directory:
- nano ~/.config/systemd/user/myadavolume.service
with the content
[Unit] Description=set adafruit volume After=network.target [Service] Type=simple ExecStart=/home/pi/mycroft-core/.venv/bin/python /home/pi/bin/ada_volume.py [Install] WantedBy=default.target
Enable and start it:
- systemctl --user daemon-reload
- systemctl --user enable myadavolume
- systemctl --user start myadavolume
Pulseaudio
The picroft installation does not use pulseaudio for the output of voice and other sound so the general volume control did not work
blacklist the internal bcm2835 sound card
This is for sure totally optional but I did it
- sudo nano /etc/modprobe.d/alsa-blacklist.conf
blacklist snd_bcm2835
force ALSA userspace to use PulseAudio
- sudo nano /etc/asound.conf
# Use PulseAudio by default pcm.!default { type pulse fallback "sysdefault" hint { show on description "Default ALSA Output (currently PulseAudio Sound Server)" } } ctl.!default { type pulse fallback "sysdefault" }
mycroft conf
- sudo nano /etc/mycroft/mycroft.conf
replace:
"play_wav_cmdline": "aplay -Dplughw:ArrayUAC10,0 %1", "play_mp3_cmdline": "mpg123 -a plughw:ArrayUAC10,0 %1",
with
"play_wav_cmdline": "paplay %1", "play_mp3_cmdline": "mpg123 %1",
additional setting in default.pa
This enables ducking and is a nice feature that the volume of music playing is turned down while Mycroft speaks instead of stopping the output.
- sudo nano /etc/pulse/default.pa
add to the end of the file
unload-module module-suspend-on-idle unload-module module-role-cork load-module module-role-ducking