Internet Radio with an Orange PI Zero

I had build an Internet Radio with an ESP32 and a VS1051 MP3 decoder, but I was not happy with the sound quality. So I am now trying it with a Orange PI Zero board and an USB DAC.

USB Sound DAC for Internet Radio

Currently I have an USB headphone connected to the PI, but I have ordered a Lusya SA9023A + ES9018K2M USB Portable DAC HIFI External Audio Card Decoder from Aliexpress.

On the Orange PI Zero I installed MPD and MPC for the sound deamon and the controller.

apt install mpd mpc

I also installed apache2 and php to run the web based front end from.

apt install apache2 php
orange-pi-zero
Orange PI Zero

The Orange PI Zero is an Older SOC with WiFi and an USB port, just the things you need for this project. You can buy it for around 18 Euro from Aliexpress.

Plug  your USB DAC in the Orange PI Zero and check the card id.

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 1: Headset [Logitech USB Headset], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0

Here it shows that your hardware card ID = 1.
Use this number to edit /etc/mpd.conf and scroll down to the audio_output section. Here you can change the line with device from hw:0,0 to the below :

audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0"
}

After making changes to mpd.conf you will need to restart mpd

service mpd stop
service mpd start

To add Internet Radio station use the following command:

mpc add http://airspectrum.cdnstream1.com:8114/1648_128

You can add as many stations you want with the above command.

mpc -f "%file%" playlist

To list all the radio stations you added with the mpc add command.

For the web frontend I combined two setups into my setup.
The two sources are:

http://www.suppertime.co.uk/blogmywiki/2014/10/raspberry-pi-internet-radio-with-web-interface/
https://github.com/Edzelf/ESP32-Radio

I added below radio stations with mpc

mpc add http://109.206.96.34:8100 #1 NAXI LOVE RADIO
mpc add http://airspectrum.cdnstream1.com:8114/1648_128 #2 Easy Hits Florida
mpc add http://21263.live.streamtheworld.com/RADIO10.mp3 #3 Radio 10
mpc add http://airspectrum.cdnstream1.com:8000/1261_192 #4 Magic Oldies Florida
mpc add http://icecast-qmusicnl-cdp.triple-it.nl/Qmusic_nl_nonstop_96.mp3 #5 Qmusic Pop
mpc add http://23603.live.streamtheworld.com/SRGSTR09.mp3 #6 Veronica Pop Nonstop
mpc add http://icecast.omroep.nl:80/radio1-bb-mp3 #7 Radio 1, NL
mpc add http://21223.live.streamtheworld.com/SRGSTR05.mp3 #8 Sky Radio
mpc add http://23543.live.streamtheworld.com/SRGSTR10.mp3 #9 Veronica Top 1000
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR11.mp3 #10 538 Hitzone
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR09.mp3 #11 538 Non Stop
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR16.mp3 #12 538 Party
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR21.mp3 #13 538 Verrückte Stunde
mpc add http://ice.cr6.streamzilla.xlcdn.com:8000/sz%3Dnhnieuws%3DNHRadio_mp3 #14 Radio Noord Holland
mpc add http://icecast.omroep.nl/funx-reggae-bb-mp3 #15 Reggae 1
mpc add http://node-19.zeno.fm:80/2sk4vqhtknruv #16 Reggae 2
mpc add http://direct.fipradio.fr/live/fip-webradio6.mp3 #17 Reggea 3
mpc add http://generations-caraibes.ice.infomaniak.ch/generations-caraibes-high.mp3 #18 Reggae 4
mpc add http://ganja.stream.ouifm.fr/ouifmganja-128.mp3 #19 Reggae 5
mpc add http://streams.bigfm.de/bigfm-reggaevibes-128-mp3 #20 Reggae 6
mpc add http://node-01.zeno.fm/8mrdsxfk8neuv #21 Reggae 7
mpc add http://radio.alloldieschannel.com:8000/stream #22 Oldies
mpc add http://21233.live.streamtheworld.com/CANDLELIGHT.mp3 #23 Candlelight
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR18.mp3 #24 Radio 10 60' 70' Hits
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR20.mp3 #25 Radio 10 80' Hits
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPSTR22.mp3 #26 Radio 10 90' Hits
mpc add http://classichits106.stream.laut.fm/classichits106 #27 Classic Hits
mpc add http://21253.live.streamtheworld.com/TLPNET06.mp3 #28 JUKE Nederpop
mpc add http://21253.live.streamtheworld.com/TLPNET11.mp3 #29 Juke Cafe Genee Nederlands Muziek
mpc add http://21253.live.streamtheworld.com/TLPNET12.mp3 #30 Juke Levenslied Nederlands
mpc add http://21253.live.streamtheworld.com/TLPNET05.mp3 #31 Juke Zomer Lounge
mpc add http://icecast-qmusicnl-cdp.triple-it.nl/Joe_nl_1_96.mp3 #32 greatest hits a la Joe
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/TLPNET03.mp3 #33 Cabaret
mpc add http://saw-de-hz-fal-stream04-cluster01.radiohost.de/saw-deutsch_128 #34 Deutsche Hits
mpc add http://mp3.ffh.de/radioffh/hqlivestream.mp3 #35 Hit Radio FFH
mpc add http://pool.radiopaloma.de/RADIOPALOMA.mp3 #36 Radio Paloma Deutch
mpc add http://radiostreamserver.de/wunschradio-70er.mp3 #37 Wunschradio FM
mpc add http://stream.antenne.com/deutsch/mp3-128/radioplayer/ #38 Antenne Niedersachsen Deutsch
mpc add http://streambbr.ir-media-tec.com/live/mp3-128/web/play.mp3 #39 BB Radio
mpc add http://dieneuewelle.cast.addradio.de/dieneuewelle/simulcast/high/stream.mp3 #40 Neue Welle
mpc add http://stream.radiobrocken.de/bestof/mp3-128/radioplayerhp/ #41 Radio Brocken
mpc add http://pool.radiopaloma.de/RP-Kultschlager.mp3 #42 Radio Paloma Kultschlager
mpc add http://streams.greenhost.nl:8080/klassiek #43 Concertzender Klassieke Muziek
mpc add http://playerservices.streamtheworld.com/api/livestream-redirect/SRGSTR25.mp3 #44 Classic FM

Download here the radio.css file for the web frontend

ZIP file with radio.css file

And here the actual web page index.php

ZIP file with index.php file

Unzip the above two files  and put them in your apache web directory.

One thought on “Internet Radio with an Orange PI Zero”

  1. Hi Rob

    I am a beginner to the Orange Pi.
    Before I only worked with Arduino.
    I plan to make an WiFi SIP client.
    Not sure what OS to choose as i looks like the WiFi chip on the Orange Pi is not supported so well.
    Could you point me in the right direction.
    Thanks a lot.
    Greetings from Amsterdam / The Netherlands.
    Remko van Dokkum.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.