Raspberry Pi mit Bluetooth Lautsprecher

Wie ich feststellen musste, ist es gar nicht mal so einfach, einen Raspberry Pi mit Bluetooth Lautsprecher zu verbinden. Vor allem, da ich dafür ausschließlich die Command Line nutzen wollte um mir eine grafische Oberfläche zu sparen. Mein eigentliches Ziel ist es, den Raspberry Pi für die Wetterstation zusätzlich auch als „Internetradio Bluetooth Streaming wie auch immer Server“ zu nutzen. 🙂

Zusammen mit dem Bluedio BS-2 Bluetooth Lautsprecher eine günstige Lösung, wenn auch durch die Reichweite (immerhin durch zwei Betonwände und knapp 10 Meter Entfernung) nur begrenzt mobil nutzbar. Es sollte aber reichen um auch mal etwas den Garten zu beschallen. Zudem ist es auch günstiger und praktischer als einen Verstärker und irgendwelche verkabelten Boxen in die Werkstatt zu stellen. Für eine stationäre Anwendung hätte ich mich wahrscheinlich für den HiFiBerry AMP+ entschieden, da Technik und die Idee sehr überzeugend klingen.

Auf der Suche habe ich zuerst nur Lösungen gefunden wie man vom per Bluetooth Musik à la Airplay auf den Raspberry streamt. Ich wollte aber einfach nur die Bluetooth Lautsprecher einschalten und das dann der Internetradio-Stream wiedergegeben wird … klingt einfach, ist es aber leider nicht. Da es doch etwas viele Schritte sind, habe ich mich jetzt erstmal auf ein HowTo konzentriert das sich kurz mit der Hardware und verstärkt mit dem Pairing und Verbinden von Bluetooth Audio Devices beschäftigt.

Hardware – USB Bluetooth-Stick

Als Hardware habe ich mich für einen günstigen NoName Bluetooth 4.0 USB-Stick mit CSR8510 A10 Chip entschieden. Im Gegensatz zu manch anderen Bluetooth-Sticks wurde er als Linux kompatibel beschrieben.
USB Bluetooth Stick
Mit lsusb sieht man ob der USB Bluetooth Stick überhaupt erkannt wurde.

Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Requirements

Wenn die Hardware erkannt wurde, können wir mit den benötigten Packages weitermachen. Bei der Installation von bluez-utils und bluez-tools werden alle benötigten Abhängigkeiten aufgelöst.

sudo apt-get install bluez-utils bluez-tools

Nicht zwingend benötigt aber praktisch ist das Berechtigen des Pi Users auf die Bluetooth Schnittstelle. So erspart man sich die Bluetooth Befehle mit sudo Rechten auszuführen.

sudo usermod -G bluetooth -a pi

Damit Bluetooth Audio funktioniert, muss in der Datei

/etc/bluetooth/audio.conf

unter [General] folgende Zeile hinzufügt werden

Enable=Socket

und in der Datei für die ALSA (Advanced Linux Sound Architecture) Geräte des angemeldeten Benutzers

~/.asoundrc

müssen noch folgende Zeilen hinzugefügt werden.

pcm.bluetooth {
type bluetooth
device "15:05:21:27:17:2E"
profile "auto"
}

Pairing and Trust

Jetzt kann das Bluetooth Audio Device eingeschaltet und in den Pairing Modus gebracht werden. Danach suchen wir nach sichtbaren Bluetooth Geräten um die MAC Adresse und/oder den Namen zu erhalten.

hcitool scan

In der folgenden Aufstellung sollten jetzt alle sichtbaren Geräte erscheinen. Bei mir waren es nur die Bluedio BS-2 Lautsprecher, die sich mit der MAC Adresse 15:05:21:27:17:2E gemeldet haben.

Scanning ...
        15:05:21:27:17:2E       BS-2

Nachdem wir wissen wie das Gerät heißt, können wir das Pairing starten. Wer Meldungen wie: org.bluez.Error.ConnectionAttemptFailed: Page Timeout bekommt, einfach den Vorgang nochmal probieren.

bt-device -c 15:05:21:27:17:2E

Nachdem das Pairing geklappt hat, müssen wir dem Bluetooth Lautsprecher noch dauerhaft vertrauen (Trust)

bt-device --set BS-2 Trusted 1

Nach der Eingabe von

bt-device -i BS-2

erhält man Informationen über das Gerät und den aktuellen Status. Interessant sind hier Paired, Trusted und Connected.

[15:05:21:27:17:2E]
Name: BS-2
Alias: BS-2 [rw]
Address: 15:05:21:27:17:2E
Icon: audio-card
Class: 0x240404
Paired: 1
Trusted: 1 [rw]
Blocked: 0 [rw]
Connected: 0
UUIDs: [SerialPort, Headset, AudioSink, AVRemoteControlTarget, AVRemoteControl, Handsfree]

Nach dem Pairing und dem Trust können wir den Bluetooth Lautsprecher verbinden.

bt-audio -c 15:05:21:27:17:2E

Bluetooth Audio testen

Zum testen habe ich erstmal den MPlayer installiert.

sudo apt-get install mplayer

Jetzt kann es losgehen. Als Quelle dient im Beispiel der Stream von 1-Live DiGGi.

mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi

Mit Strg+C kann die Wiedergabe abgebrochen werden.

Wie geht es weiter?

Im nächsten Teil geht neben dem automatischen Verbinden nach dem Einschalten der Bluetooth Lautsprecher auch um die automatische Wiedergabe des Streams sowie beim Ausschalten um das Beenden des Prozesses. Quasi ein einfaches Internetradio mit drahtlosen Lautsprechern.

11 thoughts to “Raspberry Pi mit Bluetooth Lautsprecher”

  1. Hallo Stefan,
    was ist anzupassen, um die Lösung unter Raspian Jessie Lite zu verwenden (ALSA soll da nicht mehr zur Verfügung stehen).

    Mit der Bitte um Unterstützung.

    Gruß
    Uli

    1. Hallo Uli,

      Sorry, leider kann ich dir hierzu keine Hilfe anbieten. Die Lösung ist aktuell an den Einsatz von Raspbian Whezzy gebunden. Vielleicht meldet sich ja ein Leser und kann etwas Hilfe leisten?

      Viele Grüße
      Stefan

      1. Hallo Stefan, mit wheezy hat es geklappt – ich muste allerdings noch in /usr/bin/bluez-simple-agent die Zeile capability=“KeyboardDisplay“ auf capability=“DisplayYesNo“ ändern (es gab auch bei mir eine Fehlermeldung beim pairing).

        Hast Du Teil 2 schon fertig (dem automatischen Verbinden nach dem Einschalten der Bluetooth Lautsprecher und die automatische Wiedergabe des Streams sowie beim Ausschalten das Beenden des Prozesses) bzw. kannst Du dazu schon Hinweise geben ?

        Viele Grüße
        Uli

  2. Hallo Stefan,
    danke für diese Anleitung, genau das habe ich gesucht.
    Leider verlangen meine beiden Lautsprecher beim pairing einen PIN-Code.

    root@raspberrypi:~# bt-device -c D0:9C:30:04:CE:CD
    Connecting to: D0:9C:30:04:CE:CD
    Agent registered
    Device: MD-12 (D0:9C:30:04:CE:CD)
    Enter PIN code:

    Eigentlich sollten sich lautsprecher doch ohne PIN verbinden lassen.
    Es sind ein NOKIA MD-12 und eine UE BOOM.

    Danke schon mal.

    Gruß Andreas
    Hast Du eine Idee?

    1. Hallo Andreas,

      Sorry das ich mich erst jetzt melde, ich kann mich an keine PIN erinnern und auch nichts in meinen Aufzeichnungen finden. Ich hoffe einer der Leser kann dir eine Hilfestellung geben.

      Viele Grüße
      Stefan

    2. Also viele Lautsprecher haben als Pin 0000. Steht in der Anleitung.
      Nachdem der Connect dann geklappt hat und Du den Trust eingerichtet hast,
      wird natürlich nicht mehr nach dem Pin gefragt.

  3. Hallo Stefan,

    danke für die Anleitung. Ich habe es geschaft, bis zur Verbindung der Lautsprecher. Wenn ich jetzt die Audiodatei an den Bluetooth-Lautsprecher wie oben beschrieben ist, verschicke, bekomme ich folgende Fehlermeldung:

    [AO_ALSA] alsa-lib: pcm.c:2217 (snd_pcm_open_noupdate) Unknonw PCM bluetooth

    Failed to initialize audio driver ‚alsa:device=bluetooth‘

    Ich komme nicht drauf, was der Fehler ist. die asoundrc ist identisch eingerichtet.

    Gruß
    Markus

    1. Hallo Markus,

      100% identisch sollte die asoundrc natürlich nicht sein?! Hat denn der Befehl „bt-device -i ***“ den Zustand Paired angezeigt? Ich würde vermuten, dass der Bluetooth Lautsprecher nicht verbunden bzw. erreichbar ist. Aktuell kann ich es leider nicht nachstellen.

      Viele Grüße
      Stefan

  4. Hi Stefan,

    danke für die Rückmeldung, bin ja mit Linux nicht so bewandert, deshalb tu ich mir da schwer, wenn man es nicht 1:1 nach Anleitung nachvollziehen kann.

    Nachdem ich die Befehle mit sudo ausgeführt habe und die asoundrc in das /etc Verzeichnis kopiert habe, hat es dann letztendlich geklappt.

    Gruß

    Markus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code