Skip to content

Instantly share code, notes, and snippets.

@hkfuertes
Last active October 24, 2025 13:17
Show Gist options
  • Save hkfuertes/2443b4c4aebf10ad2291da1205a1349e to your computer and use it in GitHub Desktop.
Save hkfuertes/2443b4c4aebf10ad2291da1205a1349e to your computer and use it in GitHub Desktop.

Install respeaker drivers

Current Trixie kernel for PI is 6.12:

  hkfuertes@AssistPi:~ $ uname -a
  Linux AssistPi 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1 (2025-09-16) aarch64 GNU/Linux

So we need the drivers for that, thankfully (@HinTak) is maintaining the drivers:

git clone -b v6.12 https://github.com/HinTak/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
sudo reboot

Install docker

curl -fsSL https://get.docker.com -o install-docker.sh
sudo sh install-docker.sh

Start Wyoming Satellite

FROM python:slim
RUN apt update && apt install -y alsa-utils caps && rm -rf /var/lib/apt/lists/*
ADD https://github.com/rhasspy/wyoming-satellite.git#13bb0249310391bb7b7f6e109ddcc0d7d76223c1 /app/
WORKDIR /app
RUN script/setup
EXPOSE 10700/tcp
ENTRYPOINT ["/app/run"]

Make docker image first:

docker build -t satellite .

Then run docker compose:

services:  
  satellite:
    image: "satellite"
    devices:
      - /dev/snd:/dev/snd
    group_add:
      - audio
    ports:
      - "10700:10700"
    command:
      - "--name"
      - "AssistPi"
      - "--mic-command"
      - "arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw"
      - "--snd-command"
      - "aplay -D plughw:CARD=seeed2micvoicec,DEV=0 -r 22050 -c 1 -f S16_LE -t raw"
      - "--mic-auto-gain"
      - "5"
      - "--mic-noise-suppression"
      - "2"
      - "--wake-uri"
      - "tcp://microwakeword:10400"
      - "--wake-word-name"
      - "ok_nabu"
      # Leds
      # - "--event-uri"
      # - "tcp://127.0.0.1:10500"
      - "--debug"
  microwakeword:
    image: rhasspy/wyoming-microwakeword
    ports:
      - 10400:10400

Still figuring this out...

LED Service

... and this ...

Example event services for the ReSpeaker 2Mic and 4Mic HATs are included in wyoming-satellite/examples that will change the LED color depending on the satellite state. The example below is for the 2Mic HAT, using 2mic_service.py. If you're using the 4Mic HAT, use 4mic_service.py instead as the LEDs and GPIO pins are slightly different.

Install it from your home directory:

cd wyoming-satellite/examples
python3 -m venv --system-site-packages .venv
.venv/bin/pip3 install --upgrade pip
.venv/bin/pip3 install --upgrade wheel setuptools
.venv/bin/pip3 install 'wyoming==1.5.2'

In case you use a ReSpeaker USB 4mic array v2.0, additionally install pixel-ring:

.venv/bin/pip3 install 'pixel-ring'

The --system-site-packages argument is used to access the pre-installed gpiozero and spidev Python packages. If these are not already installed in your system, run:

sudo apt-get install python3-spidev python3-gpiozero

Test the service with:

.venv/bin/python3 2mic_service.py --help

Create a systemd service for it:

sudo systemctl edit --force --full 2mic_leds.service

Paste in the following template, and change both /home/pi and the script/run arguments to match your set up:

[Unit]
Description=2Mic LEDs

[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/examples/.venv/bin/python3 2mic_service.py --uri 'tcp://127.0.0.1:10500'
WorkingDirectory=/home/pi/wyoming-satellite/examples
Restart=always
RestartSec=1

[Install]
WantedBy=default.target

Save the file and exit your editor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment