Pi Zero radio

Door synoniem op zondag 12 april 2020 23:33 - Reacties (15)
Categorie: Raspberry Pi, Views: 3.688

Als nieuw projectje kwam ik samen met iemand anders op het idee om een kleine radio te maken. Gewoon omdat het leuk is maar ook omdat ik tegenwoordig eigenlijk alleen nog maar naar webradio of mijn eigen muziekcollectie op een NAS luister.

Hardware
Een korte zoektocht op het internet leert dat ik niet de eerste ben en dat er heel veel oplossingen in combinatie met een Pi voor handen zijn. Het is meer een kwestie van wat je precies wilt. In mijn geval wilde ik iets wat op zo'n ouderwetse transistorradio lijkt. Gemakkelijk mee te nemen met een laag volume maar een niet al te blikkerig geluid en met een web interface en of een app.

Zoiets als dit:

https://tweakers.net/i/vtfkf1BZHTsOMS2KWh4e1Yt_Kew=/f/image/wRTFl8Z2ZOv0tAmZeLB646dR.jpg

Alleen wilde ik geen drukknoppen of een volumeknop maar meer dit:

https://tweakers.net/i/KMciQib_QL8_EIG_mnWN2TMes-s=/f/image/cw8N73Msu0ludAYFurciFYVn.jpg

Behorend bij dit overzicht van de te printen onderdelen.

https://tweakers.net/i/1PaAaBGT3PoOjZ27ZI9uU0JKOo8=/f/image/vT2mPXMFAUitu3paElCMgcIR.jpg

Alle drie de plaatjes zijn afkomstig van Thingiverse waar de user neurotik een compleet 3D te printen ontwerp heeft gepubliceerd. Je kunt zijn ontwerp exact nabouwen maar ik heb voor het audiodeel een ander keuze gemaakt en kom aan de volgende onderdelen.De Adafruit Speaker Bonnet is zowel een DAC als een miniversterker ineen. Deze past direct op GPIO header en is net zo groot als de Pi Zero zelf. Overigens heeft hij wel dezelfde PCM5102 chip die ondermeer bekend is onder de naam Hifiberry DAC.

https://tweakers.net/i/kzRDjkQNmrDmbnnyDy17U7_dDp8=/f/image/dTLDhHYtE85RC4vwmxXzLVuf.jpg

De standaard chip op het 16x2 LCD Display is de eveneens bekende HD44780 chip. Standaard heeft deze een parallel interface aansluiting. Wil je niet teveel soldeerwerk dan kun je er beter één kopen met een i2c piggyback zoals als op onderstaande plaatje. Dan heb je nog maar vier draadjes die je hoeft aan te sluiten op de Pi.

https://www.picclickimg.com/d/l400/pict/153603979058_/LCD-Display-Module-1602-Board-IIC-I2C-Serial.jpg

Overigens hoef je natuurlijk geen 3D geprint ontwerp te gebruiken. Je kan dit bij wijze van spreken ook nog in een sigarenkistje inbouwen. Je moet wel een beetje harde holle ruimte hebben om als klankkast te dienen want twee 3W speakers van 4 Ohm zonder klankkast is amper te horen.

Software
Als software heb ik Volumio geïnstalleerd. Voor de Raspberry Pi kun je een compleet image downloaden gebaseerd op een minimale versie van Raspbian Jessie. De lijst met mogelijkheden van Volumio is enorm lang maar om een paar te noemen: speelt FLAC, Aac, Vorbis, mp3. Heeft Airplay, UPNP, Webradio, CIFS en NFS ondersteuning. Daarnaast ook nog plugins voor Spotify en Digital Room Correction. Ook niet onbelangrijk in mijn geval een web interface.

Persoonlijk vind ik de mobiele web interface goed genoeg maar er is ook een betaalde app voor zowel Android als IOS. Volumio Free zelf is gratis. Je hebt ook betaalde versies met allerlei extra mogelijkheden die wellicht voor een audiofiel belangrijk zijn maar die mij verder niet zoveel zeggen behalve de Alexa integratie.

Installatie
Installatie van Volumio is eenvoudig. Je download de image en kopieert deze naar een SD-kaartje. Volumio detecteert automatisch de wifi van de Pi Zero W en start in AP mode met SSID Volumio en WPA key Volumio2. Als je hiermee verbindt kun je in je webbrowser volumio.local of 192.168.211.1 intikken en start de wizard met instellingen. Voor mijn configuratie kies je voor I2S DAC: aan, DAC model: Hifiberry DAC (Adafruit MAX98357 werkt ook overigens) en Mixer type: Software. Een handige instelling is bij de Netwerkinstellingen -> Hotspot Instellingen -> Terugvallen op Hotspot aan te zetten. Valt je wifi weg of neem je radio mee naar een andere locatie, kun je eenvoudig via de hotspot een nieuw draadloos netwerk kiezen.

Voor het aansturen van het LCD display heb je afzonderlijke software nodig. Neurotik verwijst hiervoor naar pydPiper. dhrone heeft pydPiper inmiddels omgegooid naar een Docker container. De githubversie is inmiddels versie 0.31 maar je kunt beter het installatiescript van 0.3 volgen:

code:
1
2
3
sudo wget https://github.com/dhrone/pydPiper/archive/v0.3-alpha.tar.gz
sudo tar zxvf v0.3-alpha.tar.gz
cd pydPiper-0.3-alpha


Pas het bestand pydpiper.service aan:
code:
1
sudo nano pydpiper.service


Zoek naar de regel met # HD44780 LCD 16x2 display with I2C interface on address 0x27
Verwijder bij de volgende bijbehorende regel het # en verander fahrenheit in celsius en tijdzone in Europe/Amsterdam zodat het er zo uit komt te zien:
code:
1
ExecStart=/usr/bin/docker run --network=host --privileged -v /var/log:/var/log:rw  dhrone/pydpiper:latest python /app/pydPiper.py --volumio --driver hd44780_i2c  --width 80 --height 16 --i2caddress 0x27 --timezone 'Europe/Amsterdam' --temperature celsius --pages pages_lcd_16x2.py

Je hebt (Zie stap 2a op github) nog de mogelijkheid om weer data weer te geven. Hiervoor moet je een API key aanvragen bij Weather Underground service. Dat heb ik niet ingesteld en hierdoor blijven er op de tweede regel van het display drie witte blokjes staan. Dat is dus als bedoeld en geen defect.

Nadat je het bestand aangepast hebt doe je:
code:
1
sudo ./install.sh


Dat duurt wel even want het script installeert o.a. Docker, kopieert het service bestand en activeert systemd en Docker. Waarna de docker container wordt opgehaald en opgestart.

Uiteraard kun je een ander model Pi gebruiken, hoewel het inbouwen daarvan in deze behuizing nog wel een uitdaging is. Maar de Pi Zero W heeft genoeg pit om het allemaal te draaien: best wel een prestatie. Over pit gesproken het is wel verstandig om een USB-stroomadapter met minstens 2A te gebruiken.

Volgende: Pi Zero radio aanvulling 1 23-04 Pi Zero radio aanvulling 1
Volgende: Pi Zero als smart USB-stick 4 27-12 Pi Zero als smart USB-stick 4

Reacties


Door Tweakers user JT, maandag 13 april 2020 11:53

Leuk :) Is die nu al af of ben je nu vooral nog bezig met het software deel? Zelf heb ik een Pi Zero met Volumio en een DAC eraan gesoldeerd aan de versterker beneden hangen.

Wat ik mij alleen altijd afvraag met dit soort ontwerpen is waarom 2 luidsprekers. Ze zitten naast elkaar, van enig stereobeeld zal daardoor geen sprake zijn. Wel lever je in op hoe diep de bas is omdat de luidsprekers effectief nog maar de helft hebben qua behuizing ten opzichte van het gebruik van 1 luidspreker. Ook zou je dan wellicht kunnen upgraden naar een 4" model wat ook weer betere bas op kan leveren. Misschien zelfs te combineren met een passieve radiator!

[Reactie gewijzigd op maandag 13 april 2020 12:17]


Door Tweakers user Redsandro, maandag 13 april 2020 12:04

Hey wat gaaf zeg. Ik ken die app helemaal niet. Ik heb ooit zelf een simpel programmaatje RadioPi gemaakt voor de Raspberry Pi 1 in 2013 oid, maar pas in 2016 op Github gezet.

Toen heb ik een bepaalde tijd allerlei radiozenders verzameld. En later ben ik daarmee de PWA (Progressive Web App) Amp.lol begonnen.

Voornamelijk omdat ik nog een aantal oude Android-telefoons had liggen, en native radio-apps veel te zwaar werden om er op te draaien. Nu heb ik in de keuken gewoon een oude SGS2 met een bootversterker waar Amp.lol als PWA op geinstalleerd staat.

Door Tweakers user synoniem, maandag 13 april 2020 12:33

JT schreef op maandag 13 april 2020 @ 11:53:
Leuk :) Is die nu al af of ben je nu vooral nog bezig met het software deel? Zelf heb ik een Pi Zero met een DAC eraan gesoldeerd aan de versterker beneden hangen.

Wat ik mij alleen altijd afvraag met dit soort ontwerpen is waarom 2 luidsprekers. Ze zitten naast elkaar, van enig stereobeeld zal daardoor geen sprake zijn. Wel lever je in op hoe diep de bas is omdat de luidsprekers effectief nog maar de helft hebben qua behuizing ten opzichte van het gebruik van 1 luidspreker. Ook zou je dan wellicht kunnen upgraden naar een 4" model wat ook weer betere bas op kan leveren. Misschien zelfs te combineren met een passieve radiator!
Hij is helemaal klaar inmiddels en staat nu op de rand van mijn bureau te spelen :).

Twee speakers, tja de meeste DAC's zijn stereo en nu heb ik gekozen voor een retro transistorradio waar het geluid ook niet veel beter van was. Zou ik een ontvanger bouwen voor een hifi installatie, zou ik ook voor een hogere kwaliteit DAC gaan met een losse versterker en losse speakers. Je kan met een Pi Zero W en Volumio een Sonos-achtige installatie maken maar ook in dat geval zou ik kiezen voor een losse DAC en een hoogwaardige speaker.

[Reactie gewijzigd op maandag 13 april 2020 12:45]


Door Tweakers user synoniem, maandag 13 april 2020 12:44

Redsandro schreef op maandag 13 april 2020 @ 12:04:
Hey wat gaaf zeg. Ik ken die app helemaal niet. Ik heb ooit zelf een simpel programmaatje RadioPi gemaakt voor de Raspberry Pi 1 in 2013 oid, maar pas in 2016 op Github gezet.

Toen heb ik een bepaalde tijd allerlei radiozenders verzameld. En later ben ik daarmee de PWA (Progressive Web App) Amp.lol begonnen.

Voornamelijk omdat ik nog een aantal oude Android-telefoons had liggen, en native radio-apps veel te zwaar werden om er op te draaien. Nu heb ik in de keuken gewoon een oude SGS2 met een bootversterker waar Amp.lol als PWA op geinstalleerd staat.
Grappig zeg, want ik had nog nooit van RadioPi of Amp.lol gehoord. Ik gebruik wel MPD op een Pi 2b om in combinatie met Icecast2 muziek te streamen vanaf mijn NAS en had dus net zo gemakkelijk RadioPi kunnen gebruiken. Volumio heeft overigens een instelling waarmee je met een MPD client de Pi ook kan aansturen

Door Tweakers user i-chat, maandag 13 april 2020 13:37

synoniem schreef op maandag 13 april 2020 @ 12:44:
[...]

Grappig zeg, want ik had nog nooit van RadioPi of Amp.lol gehoord. Ik gebruik wel MPD op een Pi 2b om in combinatie met Icecast2 muziek te streamen vanaf mijn NAS en had dus net zo gemakkelijk RadioPi kunnen gebruiken. Volumio heeft overigens een instelling waarmee je met een MPD client de Pi ook kan aansturen
leuk die amp.lol - ik kende het nog niet,

zelf ben ik een tijdje bezig geweest om te zoeken naar een pi met een leuke 5.1 versterker als basis voor een kodi/volumio setup. maar de verschillende dac's doen hooguit 2.0 en dat is gewoon niet genoeg (voor mij).

[Reactie gewijzigd op maandag 13 april 2020 13:38]


Door Tweakers user synoniem, dinsdag 14 april 2020 08:52

i-chat schreef op maandag 13 april 2020 @ 13:37:
[...]


zelf ben ik een tijdje bezig geweest om te zoeken naar een pi met een leuke 5.1 versterker als basis voor een kodi/volumio setup. maar de verschillende dac's doen hooguit 2.0 en dat is gewoon niet genoeg (voor mij).
Er zijn inmiddels Hifiberry DAC's met een TOS-link die je als basis zou kunnen gebruiken.

Door Tweakers user Thijsmans, dinsdag 14 april 2020 12:13

Leuk project! Toeeval: ik ben ook bezig om een Pi internetradio te bouwen. VLC draait als daemon en is benaderbaar via de HTTP-api. Een simpele webinterface stuurt via een websocket commando's naar een PHP-script, dat vervolgens verzoeken doet aan de lokale VLC HTTP-api. De radio-streams werken, nu nog de Bluetooth interface, YouTube koppeling en NAS-UPnP koppeling :)

Na het lezen van je blog dacht ik even te kunnen overstappen op Volumio, maar ik zie alweer een subscription-model (voor o.a. Bluetooth?). Ik knutsel dus lekker verder :Y)

/edit: de Pi Zero W is dramatisch verkrijgbaar, zo lijkt het. Iemand tips?

[Reactie gewijzigd op dinsdag 14 april 2020 12:14]


Door Tweakers user synoniem, dinsdag 14 april 2020 12:19

Thijsmans schreef op dinsdag 14 april 2020 @ 12:13:
Leuk project! Toeeval: ik ben ook bezig om een Pi internetradio te bouwen. VLC draait als daemon en is benaderbaar via de HTTP-api. Een simpele webinterface stuurt via een websocket commando's naar een PHP-script, dat vervolgens verzoeken doet aan de lokale VLC HTTP-api. De radio-streams werken, nu nog de Bluetooth interface, YouTube koppeling en NAS-UPnP koppeling :)

Na het lezen van je blog dacht ik even te kunnen overstappen op Volumio, maar ik zie alweer een subscription-model (voor o.a. Bluetooth?). Ik knutsel dus lekker verder :Y)

/edit: de Pi Zero W is dramatisch verkrijgbaar, zo lijkt het. Iemand tips?
Als je toch zelf graag knutselt kun je misschien een plugin maken voor Bluetooth in Volumio?

De verkrijgbaarheid van de Pi Zero W is inderdaad moeizaam. De laatste keer heb ik er een paar via aliexpress gevonden. Duurde alleen ruim twee weken en nu zal het nog wel meer zijn.

Door Tweakers user Thijsmans, dinsdag 14 april 2020 12:45

Gek genoeg gaan ze ook daar voor meer dan € 22 pas weg... En dat zou dan inclusief korting van 50% zijn 8)7

Door Mr.Viking, woensdag 15 april 2020 21:29

Deftones <3

Door Tweakers user grrrommm, maandag 20 april 2020 06:41

Qua software; kijk ook eens naar LMS/Slimserver (Logitec Media Server). Het ondersteund vele formaten, heeft een zeer goede LCD aansturing, Spotify support, mutli-room, API's (dus ook integratie met HA), radio support en vele codecs. Zeer actief qua ontwikkeling en open-source.

https://www.picoreplayer.org/main_getting_started.shtml

[Reactie gewijzigd op maandag 20 april 2020 06:43]


Door Tweakers user rdoorn, zaterdag 25 april 2020 19:55

Volumio en hifiberry perfecte combi (gebruik ik nu als upgrade van de huiskamerstereo), Laat je vooral niet afschrikken door het subscription model van volumio (@Thijsmans) Bijna alles werkt.

maar een portable volumio optie is ook wel nice. komt er nog een accu pack bij?

Door Tweakers user synoniem, zaterdag 25 april 2020 20:01

rdoorn schreef op zaterdag 25 april 2020 @ 19:55:
Volumio en hifiberry perfecte combi (gebruik ik nu als upgrade van de huiskamerstereo), Laat je vooral niet afschrikken door het subscription model van volumio (@Thijsmans) Bijna alles werkt.

maar een portable volumio optie is ook wel nice. komt er nog een accu pack bij?
Een accu heb ik inderdaad al aan zitten denken. Qua ruimte in de behuizing zou het moeten kunnen denk ik. Moet wel een beetje de moeite zijn natuurlijk een alleen ups-achtige oplossing om netjes af te sluiten is niet de bedoeling.

Door Tweakers user Demo, zondag 26 april 2020 19:22

Leuk, ik ben niet de enige die dol is op de Pi Zero :D Ik heb er zelf twee in gebruik, uiteindelijk staat er alleen Snapcast op geïnstalleerd en wordt de audio gestreamd vanaf mijn server. De server zelf doet niet veel meer dan een pipe doorsturen naar de clients, waarbij ik twee pipes heb vanuit librespot en MPD. Dit kan gestreamd worden naar mijn Debian laptop, de twee Pi Zero W's, mijn Android toestel en zelfs naar Windows 10. (Pulseaudio voor Windows + WSL met de client er in :P) Multiroom audio voor een prikkie!

Door Tweakers user synoniem, zondag 26 april 2020 22:47

Demo schreef op zondag 26 april 2020 @ 19:22:
Leuk, ik ben niet de enige die dol is op de Pi Zero :D Ik heb er zelf twee in gebruik, uiteindelijk staat er alleen Snapcast op geïnstalleerd en wordt de audio gestreamd vanaf mijn server. De server zelf doet niet veel meer dan een pipe doorsturen naar de clients, waarbij ik twee pipes heb vanuit librespot en MPD. Dit kan gestreamd worden naar mijn Debian laptop, de twee Pi Zero W's, mijn Android toestel en zelfs naar Windows 10. (Pulseaudio voor Windows + WSL met de client er in :P) Multiroom audio voor een prikkie!
Herkenbaar inderdaad. Ik heb nog een Pi 1B+ met MPD en Icecast2 als streaming server voor de muziek die op mijn NAS staat. Plus nog een paar andere Pi's die vanaf het netwerk laat booten voor diverse taken. Plus nog Zero die dienst doet in een met wifi bestuurbare autootje en waarvan de volgende stap autonoom rijden is m.b.v. sensoren.

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)