Im Gegensatz zu den teureren WS2801 LED Strips mit Clock und Datenleitung, hat der WS2812 nur eine einzige Datenleitung. Um diese Taktgenau zu bedienen wird der PWM Generator des Raspberry Pi verwendet. Der PWM Generator wird jedoch auch für die Onboard Audioausgabe des Raspberry Pi benötigt. Somit ist beides gleichzeitig nicht möglich und im Netz findet sich häufig die Aussage, dass das Ansteuern des WS2812B und eine gleichzeitige Audioausgabe nicht möglich sei.
Es ist aber nur eingeschränkt richtig, dass keine Audioausgabe möglich ist, denn die Onboard Audioausgabe ist nicht die einzige Möglichkeit dem Raspberry Pi Töne zu entlocken. Die Audio Ausgabe ist z.B. über HDMI oder über eine USB Soundkarte problemlos möglich.
Eine einfache USB Soundkarte gibt es bei Amazon schon für unter 10€. Neben dem Audio Ausgang hat die Soundkarte auch einen Mikrofon Eingang, was gleich schon wieder Raum für weitere Projektideen, wie zum Beispiel eine Lichtsteuerung bietet.
Die USB Soundkarte wird unter Raspbian automatisch erkannt, allerdings wird per Default die Onboard Ausgabe verwendet. Dies kann durch den folgenden Befehl überprüft werden:
cat /proc/asound/modules
Als Ergebnis wird die Reihenfolge der Audio Geräte angezeigt:
0 snd_bcm2835 1 snd_usb_audio
Um diese zu ändern muss die Audio Konfiguration alsa-base.conf (alsa = Advanced Linux Sound Architecture) angepasst werden. Wenn ALSA mehrere Soundkarten im System ermittelt hat, so kann die Soundausgabe eventuell an das falsch Gerät geleitet werden. Die Reihenfolge wird geändert, indem mit dem folgenden Befehl eine entsprechende Konfigurationsdatei angelegt wird:
sudo nano /etc/modprobe.d/alsa-base.conf
Wenn eine leere Datei geöffnet wird, dann einfach die folgenden Zeilen eingeben und die Datei speichern:
options snd_usb_audio index=0
options snd_bcm2835 index=1
options snd slots=snd-usb-audio,snd-bcm2835
Nach einem Neustart sollte
cat /proc/asound/modules
nun die Audio Geräte in der gewünschten Reihenfolge anzeigen
0 snd_usb_audio 1 snd_bcm2835
und die Audioausgabe über die USB Karte sollte funktionieren.
Das Raspberry Pi Projekt kann nun also um einen Wecker mit Licht und Musik zu erweitert werden.