Category Archives: Linux

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.

Setting up the Orange Pi Zero with XFCE Desktop

 

I am playing a bit with the Orange Pi Zero.
I want to use it as an internet browser with Firefox to surf on the Internet, without any problems to get an virus on my main PC.
Orange Pi Zero
Check which packets are already installed

dpkg-query -l
// or
apt list --installed
// or
dpkg --get-selections
// or
dpkg -l
Show all available packets
apt-cache search .
// or with search
apt-cache search vnc
Handy tools to install on Orange Pi Zero
apt-get install screen
apt-get install locate
Setup XFCE GUI on the Orange Pi Zero
apt-get install xfce4 xfce4-goodies
// Install missing fonts for the vncserver
apt-get install  xfonts-base
// Install the missing Icons for the Desktop
apt-get install gnome-icon-theme tango-icon-theme
// Install a VNC server to get remote access
apt-get install tightvncserver
apt-get install firefox-esr
Add swap space
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
// add  following line to /etc/fstab
/swapfile none swap sw 0 0
// Set it up to aggressively swap 
sysctl vm.swappiness=80
Enable and setup the WiFi with the command prompt
use commandline program 'nmtui'
To add keepalive to your SSH sessions:
Add the following line to /etc/ssh/ssh_config file:
ServerAliveInterval 60

When trying to copy some data (About 25Mb) the connection over the WiFi , it suddenly stopped. When using the fixed Ethernet the problem does not show.  When using the WiFi without big data transfers the problem also does not show. Even not when running for a longer time with total more then 50Mb.