Installation & Konfiguration
Pin-Belegung und Handhabung
ZigBee Einrichten
Für einfache Tests habe ich mir zunächst einen DAC+ Zero
besorgt.
Laut Webseite, hat diese Platine kein Volume control, kein EEPROM,
keinen ultra-low noise Regler,
aber einen 192 kHz 24 Bit DAC - digital analog converter.
Laut Dokumentation verwendet der DAC+ Zero nur folgende Pins.
Auf der Platine selber steht noch config.txt: dtoverlay=hifiberry-dac
.
Die Verknüpfung zur Beschreibung
support.hifiberry.com funktioniert nicht mehr!
Wer sich die Platine genauer ansieht, sieht dass aus den 5V Pin 2 & 4
mittels analogen Längsregler 3V3 für den ti.com PCM 5101A erzeugt werden.
Desweiteren ist noch 3V3 von Pin 17 genutzt
(geht an PCM 5101A Pin 20 - digital power vom DAC).
Laut Datenblatt ist der PCM5101A, von den übrigen 2,
von mittlerer Qualität mit ordentlichen 106 dB SNR.
Das bedeutet bei Vollaussteuerung, also 2,1 VRMS bzw. 0 dB FS
sind das etwas über 17 Bit (bei ca. 6 dB/Bit)
Etwas besser ist der PCM5102A mit 112 dB SNR also etwas über 18 Bit.
In der Praxis sollten die ±2,97 V nie erreicht werden,
weil der geringste Wert darüber zum "clippen",
also hässlichen Verzerrungen, führt.
Am DAC selber sind bestimmte Pins passend anzuschließen.
Pin 16 FMT vom DAC ist auf Gnd für das I2S Format statt "Left-justified".
Pin 17 XSMT ist über einen Widerstand auf 3V3 -> soft un-mute
Pin 16 FMT ist auf Gnd, also Audio-Format I2S
Pin 12 SCK - system master clock ist auf Gnd
→ kein interpolations Filter ist aktiv
Pin 11 FLT scheint offen zu sein - Gnd für normal latency ist sinnvoll.
Pin 10 DEMP - De-emphasis control
für eine Sampling-Rate von 44,4 kHz ist deaktiviert, da auf Gnd
Folgende Sample-Raten sind mit den 3-Wire PCM Interface
in dieser Verschaltung möglich.
kHz | BCK 32 | BCK 64 |
---|---|---|
44,1 | 1,4112 MHz | 2,8224 MHz |
48 | 1,536 MHz | 3,072 MHz |
96 | 3,072 MHz | 6,144 MHz |
192 | 6,144 MHz | 12,288 MHz |
384 | 12,288 MHz | 24,576 MHz |
Mit diesen Informationen kann man dann auch andere Platinen nutzen,
welche gerade mal die Hälfte kosten…
powerpi.de High End Musik-Streaming-Player selbst gebaut – Raspberry Pi 2 Anleitung
bnikka.com List of HiFi DAC on Raspberry Pi(I2S output)
himbeer.me How to connect a PCM5102 I2S DAC to your Raspberry Pi
sengotta.net Connecting a PCM5102a breakout board to a Raspberry Pi
hifiberry.com HiFiBerry DAC+ Zero
pimoroni.com pHAT DAC
sorokin.engineer Internet radio: How to connect I2S DAC to Raspberry Pi
stackexchange.com How to make PCM5102 DAC work on Raspberry Pi ZeroW?
Zum Anfang
Um den Audio-DAC PCM5101A betreiben zu können,
ist das PCM-Interface zu aktivieren.
Glücklicherweise sind die vielen Paramater zusammengefasst zu
dtoverlay=hifiberry-dac
.
sudo nano /boot/config.txt … # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on # für PCM5101A nicht genutzt dtparam=i2s=on # aktiviert für PCM5101A #dtparam=spi=on # für PCM5101A nicht genutzt … # Enable audio (loads snd_bcm2835) #dtparam=audio=on # auskommentiert dtoverlay=hifiberry-dac # neu hinzugefügt
Damit der PCM5101A zum Standard Audiointerface wird, kann noch folgende Datei editiert werden,
muss aber wahrscheinlich nicht. Es sei denn man hat beispielsweise vorher eine USB-Soundcard verwendet.
sudo nano /usr/share/alsa/alsa.conf … defaults.ctl.card 0 # steht bereits auf 0 defaults.pcm.card 0 # steht bereits auf 0 …
Bei alten Systemen (nicht DEB 10), muss noch eine Datei erzeugt werden,
um zu definieren, welche Schnittstelle für die Audioausgabe genutzt wird.
Auch wenn sie unter Umständen nicht genutzt wird, habe ich sie angelegt.
sudo nano /etc/asound.conf pcm.!default { type hw card 0 } ctl.!default { type hw card 0 }
Die Änderungen haben erst nach einen Neustart eine Auswirkung.
sudo reboot
Nun teste ich, ob die richtige Meldung kommt.
Nicht richtig wäre z.B. wenn noch HDMI oder bcm2835 (PWM-Sound) angezeigt wird.
ssh pi@audio01.fritz.box wieder einloggen Enter passphrase for key '/home/a1/.ssh/id_rsa': Last login: Mon May 3 20:13:57 2021 from 192.168.178.35 aplay -l **** List of PLAYBACK Hardware Devices **** card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0] Subdevices: 1/1 Subdevice #0: subdevice #0
Nun kann man an die RCA- oder Chinch-Buchsen einen, nicht zu laut eingestellten, Verstärker anschließen
und mit folgender Zeile ein Rosa-Rauschen abwechselnd auf die beiden Kanäle abgeben.
speaker-test -c2 -wav -l7 speaker-test 1.1.8 Playback device is default Stream parameters are 48000Hz, S16_LE, 2 channels Using 16 octaves of pink noise Rate set to 48000Hz (requested 48000Hz) Buffer size range from 128 to 131072 Period size range from 64 to 65536 Using max buffer size 131072 Periods = 4 was set period_size = 32768 was set buffer_size = 131072 0 - Front Left 1 - Front Right Time per period = 2.770632 …
Möchte ich diesen Test später wiederholen, ist es nötig das pulseaudio
-System zu
de-installieren.
instructables.com Test Sound Card and Speakers in Raspberry Pi
wordpress.com Connect, Configure and Test USB Microphone and Speaker with Raspberry Pi
raspberrypi-spy.co.uk Using a USB Audio Device with the Raspberry Pi
scphillips.com Sound configuration on Raspberry Pi with ALSA
ubuntuusers.de ALSA - Advanced Linux Sound Architecture
Zum Anfang
Die Zusammenhänge zwischen den Soundsystem ALSA - Advanced Linux Sound Architecture
und den erweiterten Soundserver PulseAudio habe ich bereits unter Linux beschrieben.
Siehe Linux Audio.
Zum Anfang
Für ALSA - Advanced Linux Sound Architecture ist weder der Vorgänger OSS, noch PulseAudio nötig.
ALSA ist quasi die Software um direkt die Sound-Hardware anzusteuern.
Jede Sound-Hardware oder ALSA-Card besteht wiederum aus
Ein- und Ausgabe-Geräten (send device, receive device).
z.B. card 0: pcm5102a-hifi-0 subdevice #0 (für Audioausgabe)
sudo apt install alsa-base Konfigurations-Dateien sudo apt install alsa-utils hiermit stehen dann folgende Tools zur Verfügung: alsactl alsaloop alsamixer alsaaucm amixer amidi aplay … speaker-test
Um mehr Möglichkeiten zu haben, installiere ich noch PulseAudio, was einen Soundserver darstellt,
welcher ALSA nutzt. Siehe wikipedia.org PulseAudio
sudo apt install pulseaudio der Soundserver… sudo apt install pulseaudio-utils paplay pacat parec pacmd pactl padsp pax11publish
Da ich den Zero-W als Sound-Server über das Netz mit Audiodaten speisen möchte,
benötige ich noch folgendes.
sudo apt install pulseaudio-module-zeroconf enth. avahi-daemon sudo apt install avahi-daemon bereits vorhanden sudo apt install dbus-x11
Zusäzlich sind noch zwei Zeilen zu ergänzen.
Wobei der Sound-Server audio01.fritz.box = 192.168.178.50
nur im lokalen Netz hören soll.
Entsprechend werden die ersten 24 Bit ausmaskiert -> 192.168.178.0/24.
In diesem Beispiel habe ich nur IPv4 Adressen angewendet.
IPv6 Adressen können bei Bedarf mit den Semikolon als Trennzeichen, angehängt werden.
sudo nano /etc/pulse/system.pa … # 18.05.21 # 192.168.178.0/255.255.255.0 = 192.168.178.0/24 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.178.0/24 load-module module-zeroconf-publish # Dienst bekannt machen
Nun sind noch die Dienste auf dem Zero-W zu starten
um sicherzustellen, dass sie auch nach den Neustart laufen.
sudo systemctl start pulseaudio.service funktioniert nicht bei DEB 10 Failed to start pulseaudio.service: Unit pulseaudio.service not found. sudo systemctl enable pulseaudio.service würde den Daemon stoppen Failed to enable unit: Unit file pulseaudio.service does not exist. pulseaudio -k Daemon killen (steht schon) E: [pulseaudio] main.c: Failed to kill daemon: No such process pulseaudio --start Daemon erneut starten N: [pulseaudio] main.c: User-configured server at {de746cc27e0f4e179e6f0fa39ef4d167}unix:/run/user/1001/pulse/native tcp:b41:4713 tcp6:b41:4713, refusing to start/autospawn. pulseaudio -D Daemonize after startup sudo service pulsaudio restart Failed to restart pulsaudio.service: Unit pulsaudio.service not found. systemctl --user restart pulseaudio Failed to connect to bus: No such file or directory
Pulseaudio ist zwar installiert, aber der Service läßt sich nicht starten.
Damit der Audio-Service gefunden wird,
starte ich den Avahi-Daemon erneut, was auch nicht half.
sudo systemctl daemon-reload sudo systemctl start avahi-daemon.service sudo systemctl enable avahi-daemon.service Synchronizing state of avahi-daemon.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable avahi-daemon
Das scheint aber alles nicht zu helfen.
journalctl -u pulseaudio bisher keine Fehlermeldungen -- Logs begin at Mon 2021-05-17 23:11:25 CEST, end at Wed 2021-05-19 00:03:03 CEST. -- -- No entries --
pacmd list-modules | grep native-protocol-tcp pacmd list-modules | grep zeroconf-publish wenn keine Meldung kommt, ist alles gut.
Auf dem Raspberry sollte nun der Sound-Server von allen Computern erreichbar sein.
manurevah.com
PulseAudio: Sound over the network
scphillips.com
Playing music on a Raspberry Pi using UPnP and DLNA (revisited)
stackexchange.com
How to set up PulseAudio remote properly and securely?
freedesktop.org PulseAudio
stigok.com
Stream audio over network with PulseAudio running on Raspberry Pi
debianforum.de Audiokonfiguration
ubuntuusers PulseAudio
forum-raspberrypi.de
[Anleitung] zur Installation und Konfiguration von PulseAudio auf dem Raspberry Pi (in meinem Fall Pi 4)
forum-raspberrypi.de
PulseAudio/Examples
Zum Anfang
Um auf den Raspberry Sound-Server zugreifen zu können, ist auf dem Klienten Avahi zu starten.
su # systemctl start avahi-daemon.service # systemctl enable avahi-daemon.service $ systemctl --user restart pulseaudio.service Edit /etc/pulse/default.pa and add these lines: load-module module-native-protocol-tcp load-module module-zeroconf-discover Run these commands: pulseaudio -k pulseaudio --start pacmd list-modules | grep native-protocol-tcp pacmd list-modules | grep zeroconf-discover Only after those changes in the GUI of paprefs did I see remote output devices on the client. su apt install paprefs pactl info Server String: tcp:b41:4713 Library Protocol Version: 32 Server Protocol Version: 32 Is Local: no Client Index: 121 Tile Size: 65496 User Name: a1 Host Name: b41 Server Name: pulseaudio Server Version: 12.2 Default Sample Specification: s16le 2ch 44100Hz Default Channel Map: front-left,front-right Default Sink: alsa_output.pci-0000_28_00.3.iec958-stereo Default Source: alsa_output.pci-0000_28_00.3.iec958-stereo.monitor Cookie: ee70:fe5e
rpf.io documentation > configuration > config-txt
indibit.de Multiroom-Audio: WLAN-Lautsprecher selber bauen
indibit.de Multiroom-Audio: So hab ich es umgesetzt
raspberrypi.org The best Raspberry Pi media players
forum-raspberrypi.de [Anleitung] zur Installation und Konfiguration von PulseAudio auf dem Raspberry Pi (in meinem Fall Pi 4)
forum-raspberrypi.de mpd mit pulseaudio und bluetooth (Raspi OS Lite)
debianforum.de MPD als Systemdienst mit ALSA und Pulseaudio
qastack.com.de Verwenden von Pi, um alle Audioausgaben von meinem PC auf meine Stereoanlage zu streamen
https://www.ap-linux.com/articles/
https://magpi.raspberrypi.com/articles/build-a-multi-room-audio-system-with-raspberry-pi
Zum Anfang