Version 4 (modified by admin, 2 years ago) (diff)


Mycroft Mark II

body / case

The original mark2 body at was not printable on my FDM printer. So I used this: or

Software basis

I used the picroft image Picroft_Buster-Keaton_2020-01-10.img as the software basis


I had two problems related to audio.

First the volume of the Adafruit MAX9744 Amplifier was very high and resulted in a general cracking and static noise when switched on.

And in addition the volume control did not influence the volume of the Mycroft output

Mycroft Mark II - Sound

Adafruit Volume control

I am controlling the volume of the MAX9744 using the CircuitPython Libraries (see ). The things that I had to do:

Install the library

while in (.venv)

  • pip3 install RPI.GPIO
  • pip3 install adafruit-blinka

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/ with the following content

  • nano ~/bin/
    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

Description=set adafruit volume

ExecStart=/home/pi/mycroft-core/.venv/bin/python /home/pi/bin/


Enable and start it:

  • systemctl --user daemon-reload
  • systemctl --user enable myadavolume
  • systemctl --user start myadavolume


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


   "play_wav_cmdline": "aplay -Dplughw:ArrayUAC10,0 %1",
   "play_mp3_cmdline": "mpg123 -a plughw:ArrayUAC10,0 %1",


   "play_wav_cmdline": "paplay %1",
   "play_mp3_cmdline": "mpg123 %1",

additional setting in

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/

add to the end of the file

unload-module module-suspend-on-idle
unload-module module-role-cork
load-module module-role-ducking