Raspberry Pi als Radio-stream-ontvanger

Voor mijn vader heb ik met een raspberry Pi een radio (stream) ontvanger in elkaar gezet. Ontvangst via de kabel is gestopt, via de ether valt niet veel te ontvangen, en streams luisteren via de mediabox of smartphone was niet erg praktisch.

Het is snel in elkaar geharkt op basis van een Raspberry Pi 2B (behuizing, voeding), een usb-geluidskaartje, een HD44780-compatible display en enkele drukknoppen. Deels spullen die ik nog had liggen, de rest links naar waar ik het kocht (niet gesponsord dus koop het gerust elders, of geheel niet, nabouwen is niet verplicht, en met een andere behuizing of geluidskaart werkt het vast ook wel).

De software heb ik gebaseerd op deze link, maar aangepast om de standaard in raspberry pi OS (Debian Bullseye) meegeleverde mediaspeler VLC te gebruiken. Ook gebruik ik gpiozero en in plaats van de piFace hat gebuik ik 3 drukknoppen en een LCD module. De aansturing van de LCD heb ik uit een handleiding van een uitbreidingsbordje en zit lompweg boven de rest van de code geplakt. Het display zelf zit met dubbelzijdig tape tegen de binnenkant van de behuizing. En alles zit met van die kleine pinheader-stekkertjes aan elkaar. Kortom: geharkt. Maar het werkt. Hier is mijn rammelende pythoncode. Daar is ook de pinout in te vinden.

Zenders wisselen gaat met de zwarte knoppen (volgende/vorige), pauzeren kan met de rode knop. Afsluiten en uitzetten kan door de rode knop lang ingedrukt te houden. De uitgang van de geluidskaart gaat naar de aux-input van de stereo-instalatie, en uiteraard heeft het een voedings- en netwerkaansluiting nodig. Meer is het niet – de volumeregeling zit in de versterker.

Met behulp van deze tutorial van sparkfun en systemd wordt het automatisch opgestart: dit is mijn unit file die je zelf nog moet aanpassen met je eigen gebruikersnaam. Het filesystem heb ik read-only ingesteld na alle andere dingen te hebben ingesteld (Met hulp van deze tutorial van Adafruit). Ook laat ik de raspberry pi opstarten naar terminal ipv naar de grafische desktop: er hangt toch geen scherm aan.

De USB geluidskaart gaf nog de verrassing dat na alsa te hebben ingesteld alles werkte, maar na het op readonly instellen van het OS het geluid uit m’n HDMI monitor kwam en niet uit de USB geluidskaart. Ik denk dat de card-nummers niet naar een uniek device wijzen, maar dat dit wisselt afhankelijk van de volgorde van aansluiten oid. Card 0 is intern geluid van de raspi, card 1 de usb geluidskaart en card 2 de monitor. Na instellen van het overlay-filesystem (readonly) is card 1 de monitor en card 2 de usb geluidskaart. Door alsa in te stellen op card 2 komt na het instellen van het overlay-filesystem het geluid uit de geluidskaart (en ervoor via hdmi), en werkt alles ook zonder monitor. Opnieuw: geharkt, maar zo werkt het wel binnen een dag.

Het HD44780 display heeft standaard een witte achtergrondverlichting, maar geel/oranje achtergrondverlichting geeft een warmer beeld en sluit beter aan bij ‘onze’ stereo-instalatie. Zodoende heb ik de LED van de achtergrondverlichting vervangen.

De streaming-links heb ik van https://hendrikjansen.nl/henk/streaming.html. Andere ‘zenders’ kunnen eenvoudig worden toegevoegd aan het pythonscript door hun URL in te voeren op dezelfde manier als de zenders die al in het script staan.

Leave a Reply

Your email address will not be published.