← Alle Projekte

Projektdokumentation / Projekt

Raspberry Pi Audio-Switcher-HAT

Ein kompaktes, auf Lochrasterplatine aufgebautes Raspberry Pi HAT, das mithilfe eines GPIO-gesteuerten Relais automatisch zwischen Stereo-Audioquellen umschaltet.

Fertiggestelltes Audio-Switcher-HAT auf einem Raspberry Pi 3B, mit sichtbarer Lochrasterplatine, Relais, Audioanschlüssen und GPIO-Verbindung.
Fertiges Audio-Switcher-HATDer fertiggestellte Audio-Switcher auf Lochrasterplatine, direkt auf dem Raspberry Pi 3B montiert.

Kurzfassung

Entwicklung und Bau eines kompakten Audio-Switcher-HATs auf Lochrasterplatine für den Raspberry Pi 3B als Ersatz für ein sperriges externes Zweikanal-Relaismodul. Das System nutzt Shairport Sync als AirPlay 2 Empfänger und schaltet die Stereo-Audioverbindungen automatisch über ein GPIO-gesteuertes DS2Y-S-5V Relais um, sobald sich ein AirPlay Client verbindet. Das fertiggestellte HAT dient als eigenständige Zwischenlösung, bevor eine separat entwickelte Audio-PCB gefertigt wird.

Merkmale

  • Automatische Audioumschaltung bei AirPlay 2 Verbindungen
  • Shairport Sync als AirPlay 2 Empfänger
  • Stereo-Audiosignalführung über ein DPDT-Relais
  • Drei 3,5-mm-Stereo-Klinkenbuchsen
  • Gemeinsame Masse mit geschalteten linken und rechten Audiokanälen
  • Ansteuerung über GPIO 17 mit einem BC547B Transistor
  • 1-kΩ-Basiswiderstand und 47-kΩ-Basis-Pulldown-Widerstand
  • 1N4007 Freilaufdiode zum Schutz vor Spannungsspitzen der Relaisspule
  • Kompakter Lochrasteraufbau direkt auf dem Raspberry Pi
  • Einzelrelais-Design als Ersatz für ein Zweikanal-Relaismodul

Aufgabe

Die ursprüngliche Audioumschaltung basierte auf einem Zweikanal-Relaismodul, das mit einem Raspberry Pi verbunden war. Das Relaismodul befand sich in einem separaten Kunststoffgehäuse. Dadurch entstand ein sperriger Aufbau mit zahlreichen Kabelverbindungen zwischen dem Raspberry Pi, dem Relaismodul und den Audioanschlüssen.

Ursprünglicher Audio-Switcher mit einem Zweikanal-Relaismodul in einem Kunststoffgehäuse, verbunden mit einem Raspberry Pi.
Ursprünglicher Aufbau

Obwohl diese Konstruktion die erforderliche Audioumschaltung ermöglichte, war sie für ihren eigentlichen Zweck unnötig kompliziert.

Der Raspberry Pi wurde bereits als AirPlay-Empfänger verwendet. Die Audioverbindungen wurden alerdings mithilfe eines einfachen Knopfes umgeschalten. Ziel war es, das Umschalten bei erfolgreicher Verbindung eines Airplay Clients automatisch durchzuführen und gleichzeitig das externe Relaismodul durch eine kleinere, übersichtlichere und stärker integrierte Hardwarelösung zu ersetzen.

Eine eigenes Audio-HAT-PCB war bereits als zukünftiger Ersatz entworfen worden. Da diese Platine jedoch noch nicht gefertigt war, wurde eine kompakte Zwischenlösung benötigt.

Die wesentlichen Ziele bestanden darin, die Größe des bisherigen Aufbaus zu reduzieren, die Schaltung zur Audioumschaltung zu vereinfachen und die gesamte Baugruppe direkt auf dem Raspberry Pi zu montieren.

Lösung

Das ursprüngliche Relaismodul wurde durch ein eigens entwickeltes Audio-Switcher-HAT auf einer Lochrasterplatine ersetzt.

Anstelle eines Zweikanal-Relaismoduls verwendet das neue Design ein einzelnes DS2Y-S-5V DPDT-Relais, um beide Stereo-Audiokanäle gleichzeitig umzuschalten.

Ein BC547B NPN-Transistor steuert die Relaisspule an, sodass der Raspberry Pi den Schaltzustand über GPIO 17 kontrollieren kann. Die unterstützende Schaltung besteht aus einem 1-kΩ-Basiswiderstand, einem 47-kΩ-Basis-Pulldown-Widerstand und einer 1N4007 Freilaufdiode.

Drei 3,5-mm-Stereo-Klinkenbuchsen stellen die Audioanschlüsse bereit. Ihre Massekontakte sind miteinander verbunden, während die linken und rechten Signalkanäle über die Relaiskontakte geführt werden.

Auf dem Raspberry Pi läuft Shairport Sync, wodurch er als AirPlay 2 Empfänger fungiert. Ein Skript steuert das Relais automatisch, sobald sich ein AirPlay Client verbindet. Dadurch kann die ausgewählte Audioverbindung ohne manuellen Eingriff gewechselt werden.

Das Relais, die Treiberschaltung, der GPIO-Anschluss und die Audiobuchsen wurden auf einer kompakten Lochrasterplatine zusammengefasst, die direkt auf dem Raspberry Pi 3B montiert werden kann.

Das Ergebnis ist ein fertiggestelltes, eigenständiges Audio-Switcher-HAT, das den bisherigen externen Relaisaufbau ersetzt und gleichzeitig als Zwischenversion dient, bevor das eigens entwickelte PCB gefertigt wird.

Architecture

Das System besteht aus drei wesentlichen Funktionsbereichen: dem Raspberry Pi mit seiner AirPlay-Software, der GPIO-gesteuerten Relaistreiberschaltung und der analogen Stereo-Audioumschaltung.

AirPlay-Empfänger und Steuerung

Auf dem Raspberry Pi 3B läuft Shairport Sync, wodurch er als AirPlay 2 Empfänger verwendet werden kann.

Ein separates Steuerskript übernimmt die automatische Umschaltung, sobald sich ein AirPlay Client mit dem Raspberry Pi verbindet.

GPIO 17 liefert das Steuersignal für die Relaistreiberschaltung. Dadurch kann die Software den Schaltzustand des Relais verändern, ohne den für die Relaisspule benötigten Strom direkt über den GPIO-Pin bereitzustellen.

Relaistreiberschaltung

Die Relaistreiberschaltung verwendet einen BC547B NPN-Transistor in einer Low-Side-Schaltkonfiguration.

GPIO 17 ist über einen 1-kΩ-Widerstand mit der Basis des Transistors verbunden. Ein 47-kΩ-Widerstand verbindet die Basis mit Masse und sorgt für einen definierten Low-Pegel, wenn das GPIO-Signal inaktiv ist.

Der Transistor schaltet die 5-V-Relaisspule. Eine 1N4007 Diode ist parallel zur Spule angeschlossen, um die induktive Spannungsspitze beim Abschalten des Transistors zu unterdrücken.

Die Treiberschaltung besteht aus:

  • 1× BC547B NPN-Transistor
  • 1× 1-kΩ-Basiswiderstand
  • 1× 47-kΩ-Basis-Pulldown-Widerstand
  • 1× 1N4007 Freilaufdiode
  • 1× DS2Y-S-5V DPDT-Relais

Stereo-Audiosignalführung

Die Audioumschaltung verwendet drei 3,5-mm-TRS-Stereo-Klinkenbuchsen.

Jede Buchse verfügt über drei elektrische Anschlüsse:

  • Tip: Linker Audiokanal
  • Ring: Rechter Audiokanal
  • Sleeve: Masse

Alle Sleeve-Anschlüsse sind miteinander verbunden und bilden eine gemeinsame Masse. Die Masseverbindung wird daher nicht durch das Relais geschaltet.

Die Tip- und Ring-Anschlüsse werden über die beiden Pole des DS2Y-S-5V Relais geführt. Dadurch können beide Stereo-Audiokanäle gemeinsam umgeschaltet werden.

Die äußerste Audiobuchse ist mit den gemeinsamen Relaiskontakten (COM) verbunden und dient als Ausgang.

Die einzeln angeordnete Buchse, die sich direkt über dem integrierten Audioanschluss des Raspberry Pi befindet, ist mit einem der geschalteten Eingangspfade verbunden.

Die verbleibende Buchse stellt die zweite geschaltete Audioverbindung bereit.

Diese Anordnung ermöglicht es dem Relais, zwischen den beiden Stereo-Signalpfaden umzuschalten, während eine gemeinsame Masse und ein einzelner Ausgang erhalten bleiben.

Physische Integration

Die Schaltung ist auf einer kleinen Lochrasterplatine aufgebaut, die über den GPIO-Header mit dem Raspberry Pi verbunden wird.

Auf der Lochrasterplatine befinden sich das Relais, die Transistortreiberschaltung, die Verbindungsdrähte und die drei Audiobuchsen.

Dadurch entfällt das bisherige separate Relaisgehäuse. Die gesamte für die Audioumschaltung benötigte Hardware wird in einer einzigen Baugruppe zusammengefasst, die direkt auf dem Raspberry Pi montiert ist.

Implementation

Die Entwicklung begann mit der Untersuchung verschiedener Relaiskonfigurationen als Ersatz für das ursprüngliche Zweikanal-Relaismodul.

Ursprüngliches Konzept mit einem bistabilen Relais

Der erste Entwurf sah die Verwendung eines bistabilen Relais (Latching Relay) vor.

Ein bistabiles Relais behält seinen Schaltzustand bei, ohne dass die Spule dauerhaft mit Strom versorgt werden muss. Dadurch erschien es als attraktive Möglichkeit, den Stromverbrauch eines Systems zu reduzieren, das möglicherweise längere Zeit im selben Schaltzustand verbleibt.

Allerdings brachte das zunächst betrachtete bistabile Relais zusätzliche Komplexität in die Schaltung.

Die vorgesehene Ansteuerung umfasste zwei Transistorstufen mit entsprechender Freilaufbeschaltung. Außerdem war noch unklar, welche Versorgungsspannung für die Relaisspule benötigt würde und ob dafür ein zusätzlicher DC-DC-Wandler erforderlich wäre.

Da die gesamte Schaltung auf einer kompakten Lochrasterplatine Platz finden sollte, waren die zusätzlichen Bauteile und Verbindungen unerwünscht.

Daher wurde eine Alternative in Betracht gezogen: das DS2Y-S-5V, ein konventionelles, nicht bistabiles DPDT-Relais.

Obwohl dieses Relais im angezogenen Zustand dauerhaft Spulenstrom benötigt, kann es mit einer einzigen Transistortreiberschaltung angesteuert werden.

Für die Zwischenlösung wurde deshalb die vereinfachte Schaltung ausgewählt.

Schaltungsentwicklung

Die endgültige Schaltung verwendet GPIO 17, um einen BC547B Transistor über einen 1-kΩ-Basiswiderstand anzusteuern.

Ein 47-kΩ-Widerstand verbindet die Transistorbasis mit Masse und verhindert, dass die Basis auf einem undefinierten Potenzial liegt, wenn der GPIO-Pin nicht aktiv angesteuert wird.

Der Transistor steuert die Relaisspule, während eine 1N4007 Diode als Freilaufschutz dient.

Zur Dokumentation der Relaisansteuerung und der vorgesehenen Audioverbindungen wurde ein handgezeichneter Schaltplan erstellt.

Handgezeichneter Schaltplan mit Bauteilliste, DS2Y-S-5V Relais, BC547B Transistor, Widerständen, GPIO 17 und drei Stereo-Audioanschlüssen.
Schaltplan

Die Audiokontakte wurden so angeordnet, dass die beiden Stereo-Kanäle gemeinsam über das DPDT-Relais umgeschaltet werden können. Die Massekontakte der drei Audiobuchsen bleiben dabei dauerhaft miteinander verbunden.

Breadboard-Prototyp

Vor dem Aufbau der endgültigen Schaltung wurde die vereinfachte Relaistreiberschaltung auf einem Breadboard aufgebaut.

Breadboard-Prototyp des Audio-Switchers mit Relais, Transistor, Widerständen und Verbindungsdrähten. Daneben befindet sich ein Raspberry Pi.
Breadboard-Prototyp

Der Breadboard-Prototyp enthielt das Relais, den Transistor, die zugehörigen Widerstände und Verbindungsdrähte.

Dieser Aufbau stellte einen Zwischenschritt zwischen dem handgezeichneten Schaltplan und der endgültigen gelöteten Umsetzung dar.

Anschließend wurde der Breadboard-Aufbau durch eine kompaktere Konstruktion auf Lochrasterplatine ersetzt.

Aufbau auf Lochrasterplatine

Die endgültige Schaltung wurde auf einer kleinen Lochrasterplatine aufgebaut.

Das DS2Y-S-5V Relais, die Treiberkomponenten, der Raspberry Pi GPIO-Anschluss und die drei 3,5-mm-Audiobuchsen wurden so angeordnet, dass sie auf der verfügbaren Platinenfläche Platz finden.

Die elektrischen Verbindungen wurden von Hand durch Lötstellen und Verbindungsdrähte hergestellt.

Das Relais und die Audioanschlüsse wurden direkt in das HAT integriert, anstatt sie in einem separaten Gehäuse unterzubringen.

Die fertige Baugruppe wurde über den GPIO-Header auf dem Raspberry Pi 3B montiert.

Bestückungsseite des fertigen Audio-Switcher-HATs auf Lochrasterplatine mit gelbem Relais, GPIO-Header und drei 3,5-mm-Audiobuchsen.
Fertiger Aufbau
Lötseite des fertigen Raspberry Pi Audio-Switcher-HATs mit handgelöteten Verbindungen, Drähten und Anschlusspins der Audiobuchsen.
Lochraster-Verdrahtung

Softwareintegration

Auf dem Raspberry Pi läuft Shairport Sync, wodurch er als AirPlay 2 Audioempfänger fungiert.

Ein Steuerskript verändert automatisch den Schaltzustand des Relais, sobald sich ein AirPlay Client verbindet.

Das Skript steuert GPIO 17 an, der wiederum den BC547B Transistor und damit das DS2Y-S-5V Relais kontrolliert.

Dadurch wird die softwaregesteuerte AirPlay-Funktionalität mit der analogen Audioumschaltung verbunden.

Größte Herausforderung

Die wichtigste technische Abwägung bestand in der Entscheidung zwischen einem bistabilen und einem konventionellen monostabilen Relais.

Die ursprüngliche Motivation für ein bistabiles Relais war die Energieeffizienz.

Da ein bistabiles Relais seine Position ohne dauerhafte Stromversorgung der Spule beibehält, könnte es den kontinuierlichen Stromverbrauch vermeiden, der beim Anziehen eines konventionellen Relais entsteht.

Dieser Vorteil musste jedoch gegen die höhere Komplexität der Treiberschaltung abgewogen werden.

Der zunächst betrachtete bistabile Relaisentwurf benötigte zwei Transistortreiber und zusätzliche Schutzkomponenten. Die Anforderungen an die Spannungsversorgung warfen außerdem die Frage auf, ob ein zusätzlicher DC-DC-Wandler erforderlich sein könnte.

Dies stand im Widerspruch zu den räumlichen Anforderungen des Projekts.

Die gesamte Schaltung sollte auf einer kleinen Lochrasterplatine Platz finden, die direkt auf dem Raspberry Pi montiert wird. Jedes zusätzliche Bauteil erhöhte den Platzbedarf und den Umfang der Punkt-zu-Punkt-Verdrahtung.

Das alternative DS2Y-S-5V Relais ermöglichte es, die Ansteuerelektronik auf einen einzelnen BC547B Transistor, zwei Widerstände und eine Freilaufdiode zu reduzieren.

Die Entscheidung beruhte daher auf zwei konkurrierenden Prioritäten:

  • Minimierung des dauerhaften Stromverbrauchs des Relais
  • Minimierung der Schaltungskomplexität und der Baugröße

Für diese Zwischenlösung wurde die Einfachheit der Schaltung priorisiert.

Das konventionelle Relais wurde trotz seines kontinuierlichen Spulenstrombedarfs im angezogenen Zustand ausgewählt.

Dadurch konnte auf die aufwendigere Treiberschaltung für das bistabile Relais verzichtet werden, was den kompakten Lochrasteraufbau vereinfachte.

Das Projekt zeigt, wie die einfachste praktikable Schaltung gegenüber einem theoretisch energieeffizienteren Design vorzuziehen sein kann, wenn Bauteilanzahl, Montageaufwand und Platzbedarf wichtige Randbedingungen darstellen.

Quantitative Leistungsmessungen oder direkte Effizienzvergleiche zwischen den beiden Relaiskonfigurationen wurden nicht dokumentiert.

Ergebnis

Das Projekt führte zu einem fertiggestellten, kompakten Audio-Switcher-HAT für den Raspberry Pi 3B.

Die neue Hardware ersetzt das ursprüngliche Zweikanal-Relaismodul und das separate Kunststoffgehäuse durch ein einzelnes DPDT-Relais und wenige zusätzliche Komponenten auf einer Lochrasterplatine.

Das fertige HAT verfügt über drei 3,5-mm-Stereo-Klinkenbuchsen mit gemeinsamer Masse sowie über das Relais geschaltete linke und rechte Audiokanäle.

Die äußerste Buchse dient als gemeinsamer Audioausgang, während das Relais zwischen den beiden Stereo-Signalpfaden umschaltet.

Die Schaltung wird über GPIO 17 mithilfe einer BC547B Transistortreiberschaltung angesteuert.

Mit Shairport Sync auf dem Raspberry Pi fungiert das System als AirPlay 2 Empfänger. Ein Steuerskript schaltet das Relais automatisch um, sobald sich ein AirPlay Client verbindet.

Die fertige Baugruppe integriert die Schaltungselektronik und die Audioanschlüsse direkt auf dem Raspberry Pi. Dadurch entfällt das bisherige externe Relaismodul.

Die Hardware wird als abgeschlossenes Projekt und nicht als unfertiger Prototyp betrachtet.

Gleichzeitig stellt sie einen Zwischenschritt bei der Entwicklung eines stärker integrierten Audiosystems dar. Eine separate, eigens entwickelte Audio-HAT-PCB wurde bereits entworfen, jedoch noch nicht gefertigt.

Diese PCB ist als nächste Hardwareiteration vorgesehen und kann auf der Website als verwandtes Projekt verlinkt werden.

Quantitative Messungen zur Audioqualität, zur Umschaltverzögerung oder zur Langzeitzuverlässigkeit wurden nicht bereitgestellt.

Technologien

  • Raspberry Pi 3B
  • Shairport Sync
  • AirPlay 2
  • DS2Y-S-5V

Links und Downloads