Skip to content

importPI19fromDHGE/emb3-audio-retrofit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Netzwerk-Audio mit Raspberry Pi als Retrofit Lösung

Dokumentlinks

Produkt-Backlog

ID Priorität User Story Schätzung Zeitaufwand [h]
0 1 Ich als Anwender möchte über das eingebettete System ein analoges Tonsignal ausgeben, um über ein angeschlossenes analoges Wiedergabegerät das Tonsignal abspielen zu können. 2
1 2 Ich als Anwender möchte eine Bluetooth-Verbindung zum eingebetteten System herstellen, um Bluetooth als Audio-Quelle zu verwenden. 3
2 1 Ich als Anwender möchte eine Spotify-Connect-Verbindung zum eingebetteten System herstellen, um Spotify Connect als Audio-Quelle zu verwenden. 2
3 2 Ich als Anwender möchte eine UPnP-Verbindung zum eingebetteten System herstellen, um mit Hilfe von UPnP MP3-Dateien wiederzugeben. 3
4 8 Ich als Anwender möchte das eingebettete System schnell über ein angepasstes Betriebssystem-Image auf die microSD-Karte des eingebetteten Systems bereitstellen können, um es leicht vervielfältigen zu können. 8
5 4 Ich als Anwender möchte das eingebettete System durch eine LAN- oder WLAN-Verbindung in ein Netzwerk integrieren, um über UPnP und Spotify Connect Audio wiederzugeben. 8
6 7 Ich als Bastler möchte zwischen dem HiFiBerry DAC 2 Pro und dem internen DAC wechseln können, um das System auf meine individuellen Bedürfnisse anzupassen. 8
7 6 Ich als Anwender möchte Software-Updates von Betriebssystem und verwendeten Software-Bibliotheken automatisch erhalten, um von den neuesten Software-Versionen zu profitieren. 3
8 3 Ich als Anwender möchte eine Schnellstartanleitung erhalten, um über die erforderlichen Einstellungen informiert zu sein. 4
9 8 Als Anwender möchte ich die Lautstärke über eine App auf meinem Android-Telefon steuern können, um nicht auf die Steuerung der Musik-Anlage und der Kommandozeile der Lösung angewiesen zu sein. 20
10 6 Als Anwender möchte ich das eingebettete System nicht manuell herunterfahren möchten, sondern mit Hilfe eines Schreibschutzes des internen Datenträgers ohne Schädigung des Systems zum Ausschalten die Spannungsversorgung trennen können 3

Technische Spezifikationen zu Produkt-Backlog

Wiedergabe eines analogen Tonsignals

Referenz zu User-Story-ID: 0

  • es erfolgt eine Ausgabe eines analogen Tonsignals über die auf dem DAC vorhandenen Ausgabeports
    • für das HiFiBerry DAC2 Pro: Stereo 3,5 mm Klinkenanschluss oder Stereo Cinch
    • für den Raspberry Pi integrierten DAC: Stereo 3,5 mm Klinkenanschluss
  • Die Linux-Komponente ALSA steuert den Treiber des DACs an, um ein digitales Tonsignal daran zu senden

Herstellen einer Bluetooth-Verbindung

Referenz zu User-Story-ID: 1

  • mit Hilfe von Bluetooth-fähigen Android-, IOS-, Linux- und Windows-Endgeräten soll ein digitales Tonsignal an das eingebettete System gesendet werden können
  • das eingebettete System kann in den Kopplungsmodus wechseln, um neue Geräte zu koppeln
  • das eingebettete System speichert bereits gekoppelte Geräte ab, um diese erneut zu verbinden
  • es sollte nur maximal ein Gerät gleichzeitig mit dem eingebetteten System verbunden sein
  • das eingehende digitale Audiosignal wird mit Hilfe des PulseAudio Bluetooth Moduls verabeitet

Herstellen einer Spotify-Connect-Verbindung

Referenz zu User-Story-ID: 2

  • Wiedergabequelle und das eingebettete System befinden sich im gleichen Subnetz ohne Netzwerkrestriktionen des LAN-zu-LAN-Verkehrs
  • Verbindung zwischen Wiedergabequelle und dem eingebetteten System wird aufgebaut
  • für die Verwendung von Spotify Connect ist eine Internet-Verbindung notwendig, um zu den Spotify-Servern zu verbinden und Musik zu streamen

Herstellen einer UPnP-Verbindung

Referenz zu User-Story-ID: 3

  • Wiedergabequelle und das eingebettete System befinden sich im gleichen Subnetz ohne Netzwerkrestriktionen des LAN-zu-LAN-Verkehrs
  • Verbindung zwischen Wiedergabequelle und dem eingebetteten System wird aufgebaut

Bereitstellung des angepassten Betriebssystem-Images

Referenz zu User-Story-ID: 4

  • das eingebettete System soll über ein Image bereitgestellt werden können
  • das Image soll als IMG-Datei abliegen
  • das Image enthält alle Partitionen und den Bootsektor, der für den Betrieb nötig ist
  • das Image wird mit Hilfe des Tools dd erzeugt
  • das Image soll sowohl mit Hilfe von Linux oder Windows auf die microSD-Karte geflasht werden können

Netzwerkverbindung des eingebetteten Systems

Referenz zu User-Story-ID: 5

  • das eingebettete System soll per LAN oder WLAN mit einem IP-Netzwerk verbunden werden können
  • das eingebettete System soll eine automatische IP-Konfiguration per DHCP erhalten

Wechsel des DACs

Referenz zu User-Story-ID: 6

  • ein Wechsel des DACs soll durch Interaktion des Anwenders über eine Software-Schnittstelle möglich sein
  • grundsätzlich wird die Wahl eines geeigneten Treibers dem Linux-Kernel überlassen
  • es kann notwendig sein, über ein Device-Tree-Overlay einen Treiber zu inkludieren, der möglicherweise mit anderen Treibern im Konflikt steht
    • eine solche Situation ensteht zum Beispiel zwischen dem internen DAC des Raspberry Pis und einem HiFiBerry-DAC
  • in diesem Fall soll die o.g. Software-Schnittstelle die notwendigen Änderungen an der Datei /boot/config.txt des eingebetteten Systems durchführen

Update-Installation des eingebetetteten Systems

Referenz zu User-Story-ID: 7

  • beim Systemstart sollen periodisch, sofern eine Internetverbindung besteht, Updates gesucht und installiert werden
  • alle durch den Paketmanager verwalteten Pakete sollen dabei aktualisiert werden
  • der Schreibschutz soll während der Update-Installation temporär deaktiviert werden

Schnellstartanleitung

Referenz zu User-Story-ID: 8

  • in einer Schnellstartanleitung sollen für den Anwender alle erforderlichen Schritte enthalten sein, um das eingebettete System in Betrieb nehmen zu können
  • die Verbindungsmöglichkeiten sollen an Hand eines Beispiels dargestellt werden

Lautstärkeregelung mit Hilfe einer Android-App

Referenz zu User-Story-ID: 9

  • es wird eine Android-App zur Verfügung gestellt, welche mit Hilfe einer REST-API Zugriff auf die Lautstärke-Regelung, Bluetooth-Regelung (An-/Ausschalten, Pairing-Modus) und das Einleiten eines System-Neustarts bereitstellt
  • die REST-API wird mit Hilfe einer Flask-Anwendung auf dem eingebetteten System bereitgestellt

Schreibschutz

Referenz zu User-Story-ID: 10

  • das System soll durch Stecken und Ziehen, beziehungsweise Ein- und Ausschalten der Spannungsversorgung, ein- und ausgeschaltet werden
  • um einen inkonsistenten Zustand des Speichermediums des eingebetteten Systems zu vermeiden, soll dieses schreibgeschützt sein
  • es soll die Möglichkeit bestehen, für das Koppeln neuer Bluetooth-Geräte und dem Installieren von Software-Updates den Schreibschutz temporär zu deaktivieren

Meilensteine

Wir benutzen die Github Milestones Funktion hier.

Bestellliste

ID Artikel Menge Quelle Einzelpreis Händler
0 Raspberry Pi 4B 4GB Elementary Kit 1 https://www.berrybase.de/raspberry-pi/raspberry-pi-computer/kits/raspberry-pi-4-computer-modell-b-4gb-elementary-kit 69,50€ BerryBase
1 SanDisk MicroSD-Karte 32GB 1 https://www.berrybase.de/raspberry-pi/raspberry-pi-computer/speicherkarten/sandisk-extreme-micro-sdhc-a1-uhs-i-u3-speicherkarte-43-adapter-32gb?c=183 8,85€ BerryBase
2 HiFiBerry DAC2 Pro 1 https://www.hifiberry.com/shop/boards/hifiberry-dac2-pro/ 39,90€ HiFiBerry
3 Gehäuse für Raspberry Pi 4 mit HiFiBerry DAC 1 Yannis nach Vereinbarung Yannis

Orga: Git-Submodule

Dieses Projekt enthält Git Submodule. Diese erfordern ein gesondertes Vorgehen verglichen mit den restlichen Inhalten dieses Repos:

  • sollen beim Auschecken gleich alle Submodule mit ausgecheckt werden, muss rekursiv geklont werden: git clone --recurse-submodules <repo-url>
  • Um lustige Konflikte in Git zu vermeiden, sind alle Änderungen an den Submodulen bitte in ihren jeweiligen Haupt-Repos durchzuführen und hier zu pullen

Wenn Git Submodule bisher gänzlich unbekannt sind, ist ein Blick auf die Dokumentation empfehlenswert.

About

Netzwerk-Audio mit Raspberry Pi als Retrofit Lösung

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published