Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PIMORONI-Internetradio auf Raspberry Model A/B
#1
Jupp hatte im Nachbarthead mal einen erfolglosen Versuch unternommen, den Webinstaller des Pimoroni-Internetradiobausatzes
für einen alten Raspberry Model A bzw. B zu nutzen.

Hier nochmal der Post:

(21.09.2018, 11:51)saarfranzose schrieb: das Experiment mit dem Modell A verlief negativ. Das PhatBeat Modul hatte ich adaptiert. Der erste Teil der GPIO-Pins ist innerhalb der Modelle ja gleich. Die software lief hoch, im webbrowser sah alles normal aus. Die Aktualisierung der Sendernamen verlief aber sehr schleppend. Die Aussteuerungsanzeige des Modules flackerte manchmal auf, um dann wieder zu erlöschen. Als gäbe es ein Performance-Problem. Ein Ton war nicht zu hören.

   

Nun das konnte nicht gut gehen. Der PhatBEAT des Internetradiobausatzes ist nicht pinkompatibel und der Softwareinstaller richtet ALSA natürlich für den PhatBEAT ein.

Die Lösung: Wir nehmen das PhatBEAT-Modul vom Raspberry und nutzen den onBoard-DAC. Lassen wir ruhig den Softwareinstaller von Piromi alles installieren, wir bauen nachher die Lösung mit ein paar Zeilen um.

Nachdem also der Installer durchgelaufen ist, loggen wir uns mit dem Standardzugang (pi/raspberry) ein.

Danach geben wir in der Konsole folgende Zeilen ein:


Code:
sudo sed -i "/^#dtparam=audio=on$/ s|#||" /boot/config.txt
sudo reboot



Nach dem Neustart des Radios ist die alte Soundkarte für das System wieder erreichbar.
Über das Konfigurationstool "raspi-config" sagen wird dem Raspberry noch das er den 3.5mm Klinkenanschluß als Ausgang nutzen soll.
Wir geben also in die Konsole folgendes ein:

sudo raspi-config

wählen dann Menüpunkt "7.Advanced Options", "A4 Audio" und "1 Force 3.5mm ..." aus. Nach einem Neustart per "reboot" läuft das Radio dann ganz normal mit 3.5mm Klinke.  Hört man noch keinen Ton, dann ist eventuell die Lautstärke abgedreht. Die Lautstärke kann man mit dem Konsolentool "alsamixer" regeln. Vorher per F6-Taste die richtige Soundkarte auswählen und den PCM-Wert erhöhen. Normalerweise geht das über das PhatBEAT-Modul mit seinen Tasten, aber diese Tasten sind ja nun nicht vorhanden bzw. die Pins sind auf dem 26-Pin-Header nicht vorhanden auf dem der Phatbeat-Daemon lauscht. Man kann allerdings den Phatbeat-Daemon auch so modifizieren, das man mit normalen Tastern (gegen GND) an dem 26er Header die Programme umschalten und die Lausstärke verändern kann.

Dazu öffnet man folgende Dateien:

/usr/lib/python3/dist-packages/phatbeat/__init__.py
/usr/lib/python2.7/dist-packages/phatbeat/__init__.py



Dort gibt es eine Sektion die ungefähr so aussieht:

BTN_FASTFWD = ...
BTN_REWIND = ...
BTN_PLAYPAUSE  = ...
BTN_VOLUP = ...
BTN_VOLDN = ...
BTN_ONOFF = ...

Die Zahlen dahinter sind jeweils die GPIO-Nummern am Header an der der jeweilige Taster hängt. Einfach in beiden __init__.py stimmig abändern und nach einem Neustart des Radios (oder nur des PhatBEAT-Daemon "phatbeatd" aus /usr/bin/) reagiert dann das Radio auf die neue Tastaturbelegung direkt an den Pins des Raspberry.

Man könnte die Änderungen alle in ein Script schreiben und dann automatisiert laufen lassen, aber ich denke der Anfänger tut ganz gut daran sich mit der Software des Internetradios einmal direkt zu befassen und alle Änderungen händisch vorzunehmen. Das trainiert auch den Umgang mit Linux und seinen Werkzeugen. Wer will kann ja ein Shellscript dazu schreiben. Tongue


Ist nochetwas zu beachten? Naja, die alten ersten Raspberrys haben weniger Rechenleistung als der Zero und booten deshalb etwas langsamer (45-60 Sekunden aus dem Kaltstart heraus), aber man kann den Boot-Prozess noch etwas trimmen, den VU-Meterprozess killen (ein Phatbeat mit der Aussteueranzeige ist ja nicht gesteckt) und/oder den alten Pi mittels "raspi-config" etwas Overclocken - Medium ist zum Beispiel eine gute Einstellung. Insgesamt läuft der alte Pi aber immer noch ganz gut in dieser Aufgabe und die Tastaturreaktionen erfolgen bei der Lautstärke sofort. Die Programmumschaltung dauert 1-2 Sekunden.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#2
Hallo Bernhard,
ich hab auf dem A-Type alles nach Anleitung gemacht. Auch die sed-zeile ohne das Gleichheitszeichen. Ich kann den raspberry anpingen, der webserver über port 8080 ist aber nicht erreichbar. Ton ist keiner zu hören.
"bcm2835 ALSA" ist doch die richtige soundkartenauswahl?
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#3
die Ausgabe einer Testdatei nach dieser Anleitung funktioniert.


.jpg   test-sound.JPG (Größe: 20,42 KB / Downloads: 417)

also ist der Audiokanal okay.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#4
Guten Abend Jupp. Wenn du die Testdatei abspielen kannst und der Ton der Testdatei über die Klinke kommt, dann ist in dem Bereich schon mal alles okay und wieder richtig umgestellt. Schaue mal mit dem Befehl htop nach ob ein Prozess wie vlc bzw. vlcd läuft. Das ist dann die Playersoftware die auch das Webinterface bietet.

Kille mal alle vlc Prozesse: sudo killall vlc
Danach vlc mal händisch starten: cvlc http://url_zu_einer_radiostation

Funktioniert das und es kommt Ton?

Wenn das nicht klappt, dann kann ich dir ein Image von meiner SD Karte zusenden.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#5
guten Morgen Bernhard,

die killall Anweisung hat gezeigt daß der VLC-Prozess gar nicht lief. Das händige Starten war erfolgreich, trotz der Fehlermeldungen.

   
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#6
der Effekt ist beim A+ und beim B+ der gleiche. Das händige Starten lässt zwar den Radiosender wiedergeben, aber das webinterface ist immer noch nicht erreichbar.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#7
Hallo Jupp, 

für das Webinterface muss dem Befehl noch ein Argument übergeben werden (siehe mein Nachbarthread!), aber wir machen jetzt etwas anderes. Stoppe nochmal alle vlc Prozesse mit dem killall-Befehl und dann gehe nach /usr/bin und starte dort den vlc-Daemon von Pimoroni durch Eingabe von ./vlcd

Dieses Script soll bei Systemstart eigentlich ausgeführt werden, es sucht nach einer neuen Programmliste und startet vlc mit allen zusätzlichen Argumenten, damit auch der Fernzugriff über das Webinterface funktioniert. Intern sieht es so aus und ganz unten siehst Du welche zusätzliche Startargumente der vlc-Befehl hat.

Code:
#!/usr/bin/env bash

sudo mkdir -p /var/run/vlcd

if [ -n $(cat /etc/passwd | grep -w "pi:") ]; then
   sudo chown pi:pi /var/run/vlcd
   if [ -f /boot/playlist.m3u ]; then
       mkdir -p /home/pi/.config/vlc
       sudo mv -f /boot/playlist.m3u /home/pi/.config/vlc/
       sudo chmod -R pi:pi /home/pi/.config/vlc/
   fi
   if [ -f /home/pi/.config/vlc/playlist.m3u ]; then
       playlist="/home/pi/.config/vlc/playlist.m3u"
   else
       playlist="/etc/vlcd/default.m3u"
   fi
else
   playlist="/etc/vlcd/default.m3u"
fi

if [ -f /boot/wpa_supplicant.conf ]; then
  sudo mv -f /boot/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf
fi

volpref=$(grep "^alsa-gain" ~/.config/vlc/vlcrc)

if [ -z $volpref ]; then
   volpref="alsa-gain 0.065"
fi

/usr/bin/vlc \
--verbose 1 \
--file-logging \
--logfile /var/run/vlcd/vlcd.log \
--$volpref \
--audio-filter compressor,volnorm \
--norm-buff-size 10 \
--norm-max-level 80.0 \
--norm-max-level -3 \
--compressor-attack 50.0 \
--compressor-release 200.0 \
--compressor-ratio 20.0 \
--compressor-threshold 0.0 \
--compressor-rms-peak 0.0 \
--compressor-knee 1.0 \
--compressor-makeup-gain 0.0 \
--intf dummy \
--extraintf rc:http \
--rc-host 0.0.0.0:9294 --rc-fake-tty \
--http-host 0.0.0.0 --http-port 8080 --http-password raspberry \
--no-quiet \
--daemon \
--pidfile /var/run/vlcd/vlcd.pid \
$playlist
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#8
da scheint was zu fehlen! Ich lasse grad die Pimoroni-Software neu drüberlaufen.


.jpg   IMG_7875.JPG (Größe: 60,87 KB / Downloads: 379)
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#9
Das scheint der Grund zu sein warum bei Dir kein vlcd direkt nach dem Systemstart läuft. Du musst dann aber auch nochmal alle Schritte oben durchlaufen, denn der Installer biegt deine Audioausgabe ja wieder auf den nicht vorhandenen PhatBEAT um.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#10
nach der Neuinstallation der pimoroni/vlc software und dem Aktivieren der Klinkenbuchse funktioniert es nun!
Evtl. hatte ich mir durch einen Syntaxfehler beim erstmaligen Umschalten mit der sed Anweisung irgendwas gelöscht oder verbogen (der Fehler mit dem Gleichheitszeichen). Ich hatte nach der recht komplizierten syntax gegoogelt und mit den parametern experimentiert.
Aktuell läuft jetzt der B+, jetzt werde ich noch auf den A+ wechseln.
Bernhard, du bist genial!
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#11
Raspberry A+ und B+ laufen beide gleich gut. Ich werde mich demnächst noch um die gpios kümmern, damit man direkt am Gerät bedienen kann.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#12
Wunderbar Jupp. Im Prinzip kann man so wie oben beschrieben auch alle anderen Kleinrechner wie Banana Pi, alle anderen Raspberrys, Odroids usw. mit der Software von Pimoroni zum Internetradio umbauen. Eventuell werden hier und dort ein paar kleine Anpassungen nötig, aber grundsätzlich ist es kein Problem.

Ich empfehle übrigens dringend sich die Installerscripte für den Radiobausatz, den PhatBEAT und den PhatDAC, sowie die entsprechenden Github-Repositories mal auf
die Festplatte zu ziehen. Wer weis schon wie lange Pimoroni die Seiten am Leben hält oder das Projekt selbst besteht. So kann man später immer noch ein Radio einrichten oder die Software und Installer bequem daheim umbauen. Nur zur Sicherheit!
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#13
das halte ich ebenso. Alles was ich an software, hardcopies und Anleitungen benötige sammle ich in einem Projektordner. Da pimoroni über einen weblink installiert wird weis ich in dem Fall allerdings nicht wie ich da speichern kann.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#14
Hallo Jupp, hallo alle anderen.

Auf der Pimoroni-Seite steht ja folgender Befehl: curl https://get.pimoroni.com/vlcradio | bash

Das Kommandozeilentool curl lädt von der Adresse "https://get.pimoroni.com/vlcradio" ein Script und reicht es Mittels des Operators "|" an die Shell mit dem Namen "bash" weiter.

Ersetzen wir einfach den "|" Operator durch die Umleitung ">" und die Bash-Shell durch einen Dateinamen wie "installer_vlcradio.sh". Dadurch wird das Installerscript nicht ausgeführt sondern einfach in die Datei auf dem Dateisystem geschrieben.

curl https://get.pimoroni.com/vlcradio > installer_vlcradio.sh

Das Ganze würde ich dann auch mit dem Installer für den PhatBEAT machen.

curl -sS get.pimoroni.com/phatbeat > installer_phatbeat.sh

Sowie den PhatDAC wenn man hat (https://learn.pimoroni.com/tutorial/phat...ac-install), wobei hier ja nur die Treibereinstellung für den Hifi-Berry gesetzt werden (selbe Hardware).

Die Githubs findet man auf den Internetradios (nachdem der Installer durchgelaufen ist) selbst oder hier:

https://github.com/pimoroni/phat-beat
https://github.com/pimoroni/pivumeter
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#15
den Anweisungen von Bernhard folgend hab ich nun die GPIO's auf den A+ angepasst. Alle 6 Steuerungspins lagen außerhalb der 26pol Steckerleiste des A+. Es waren aber nur noch 4 GPIOS frei. Deshalb lies ich PlayPause und OnOff unberücksichtigt. Statt Taster benutze ich meine attiny-Schaltung, als Wiedergabegerät das Ducretet C7 soundsystem per AUX-Eingang.


.jpg   umbelegung-gpios.JPG (Größe: 30,91 KB / Downloads: 334)

Zwei Varianten der Steuerung habe ich per Video dokumentiert.

Variante 1:
Lautstärkesteuerung mit Drehbewegung des Encoders, Vorwärtsschalten des Senders mit dem switch des Encoders



Variante 2:
Vorwärts/Rückwärtsschalten des Senders durch Drehbewegung des Encoders (keine Lautstärkeeinstellung)



Final werde ich eine dritte Variante einsetzen:
Vorwärts/Rückwärtsschalten des Senders durch Drehbewegung des Encoders, und statt der Lautstärkefunktion PLAYPAUSE und ONOFF auf die GPIO's legen, die dann über Taster bedienbar gemacht werden können. Die Lautstärkeeinstellung per hardware erachte ich als sinnlos weil sie sich über 100% einstellen läßt und dadurch die NF verzerrt.

Das wird dann so aussehen:


.jpg   umbelegung-gpios-2.JPG (Größe: 32,27 KB / Downloads: 336)

Für weitere Basteleien hab ich heute 2 Stück pHAT DAC bestellt.

PS: Upload der Videos läuft aktuell noch
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#16
Hallo Jupp,

ich habe heute mal testweise an einem vollständig installierten Raspi eine Aktivbox angeschlossen und über das Internet eine Radiostation gehört.

Allerdings hatte ich da so ein zwitschern mit drauf.

Kann man da was tun oder liegt das einfach an der Sounderzeugung des Raspi, so dass ich hier doch besser mit einem zusätzlichen D/A-Wandler bedient wäre?


Grüße

Martin
Zitieren
#17
Hallo Martin,

ich hab ein solches Zwitschern noch nicht vernommen. Möglich dass es mit deinem Netzteil zusammenhängt oder mit der Aktivbox. Manche Boxen haben miserable Class-D Verstärker.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#18
(20.10.2018, 23:34)Radiobastler schrieb: Kann man da was tun oder liegt das einfach an der Sounderzeugung des Raspi, so dass ich hier doch besser mit einem zusätzlichen D/A-

Kann, muss aber nicht.  Bei der Onboard-"Karte" trickst der alte Pi, das fällt gerade bei größer eingestellten Lautstärken am Pi auf.
Abhilfe: Signalpegel am Pi mit zum Beispiel "alsamixer" runterdrehen und nach dem Ausgang stärker verstärken.

Eine deutlich bessere Soundausgabe liefert immer ein externer richtiger Digital-Analog-Wandler. Deshalb gibt es diese ja für die Raspberrys.

Auch möglich: Einstreuung durch einen externen Wifi-Dongle auf die Audioplatine. Nimm mal ein USB-Verlängerungskabel ( größer 50 cm ) und entferne den Dongle vom Rest der Schaltung.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#19
ich arbeite hier grad mit einem A-Modell. Sogar in Verbindung mit einer Class-D Endstufe. Das originale 2A Raspberry Netzteil versorgt das NF-Teil und hinter dem Poti-Schalter geht es über 2 Strippen zum Ladeelko des Raspberry. Der Ton ist glockensauber, obwohl die Konstruktion im Prinzip schon gewagt ist! Martin, die Störungen können nur von der Umgebung kommen.

   
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#20
Hallo Jupp, Hallo Bernhard,

dann muss ich noch ein wenig probieren, ich hatte allerdings gestern nur sehr wenig Zeit.

Die Aktivboxen sind zwar 'Billigheimer', laufen aber an meinem Notebook (Kopfhöreranschluss) problemlos.


Grüße

Martin
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  fl2k, GNU Radio und Raspberry Pi Raphael_S 6 291 25.03.2024, 15:28
Letzter Beitrag: Raphael_S
  Tivoli Model One Umbau tivoli 23 2.590 19.03.2024, 00:44
Letzter Beitrag: saarfranzose
  Internet Radio mit Raspberry Pi – Alternativen zu Volumio? Josef_1958 10 1.555 04.11.2023, 22:08
Letzter Beitrag: Josef_1958
  Huth E72 Internetradio mit ESP32 saarfranzose 10 1.785 12.05.2023, 14:49
Letzter Beitrag: saarfranzose
  Raspberry iRadio, heavy duty Emmpunkt 5 1.039 27.03.2023, 17:58
Letzter Beitrag: saarfranzose

Gehe zu: