advertisement


Raspberry Pi as headless streamer

Thanks for the help guys. I have got the Picore working with the B+ using the 1.17 version. The previous version did not work. Follow instructions here:
http://forums.slimdevices.com/showt...th-Squeezelite&p=788335&viewfull=1#post788335
Now if somebody could confirm the I2S output pins on the B+, that would make my day.

hi themystical,

You must have been quick to get piCorePlayer 1.17. ;)

The table here http://elinux.org/RPi_BCM2835_GPIOs has the pins for the RPi Model B+, GPIO18 to GPIO21.


That's the hardware changes, now there are some software changes to spi-bcm2708.c required for the new pin assignment. Although it is available in the latest Rasbian (based on 3.12.y) it "may not" be in piCore/piCorePlayer yet (based on 3.15.y). Thought I'd mention it so you don't spend days chasing your tail if it doesn't work.

regards
 
hi themystical,

You must have been quick to get piCorePlayer 1.17. ;)

The table here http://elinux.org/RPi_BCM2835_GPIOs has the pins for the RPi Model B+, GPIO18 to GPIO21.


That's the hardware changes, now there are some software changes to spi-bcm2708.c required for the new pin assignment. Although it is available in the latest Rasbian (based on 3.12.y) it "may not" be in piCore/piCorePlayer yet (based on 3.15.y). Thought I'd mention it so you don't spend days chasing your tail if it doesn't work.

regards

Hi Greg
Looking at that table is confusing for me. Are the pins 18 - 21 or are they 28 -31?
For the avoidance of doubt, can you please confirm the pins for Bit Clock, Frame Sync Clock, Data Input 1 and Data input 2?
How does one locate Pin 1 physically on the actual board?
Do you know whether the software mods are already incorporated into piCore 1.17 as you seem to be involved in its development?
 
Hi all
sorry if this was mentioned before - i haven't read through the entire thread.
I have been using the Cubox Humming board for a while, and it's brilliant. It has the same form-factor as the RPI, with a much better hardware and more powerful CPU - Freescale MX6i, with ARM A9, with options for single, dual or quad core CPU.
I am using Geexbox Linux, running Squeezelite, driving an XMOS DAC through USB interface. It plays 192/24 FLACs with no hassles.
See the board picture below.
cheers, Yair

HummingBoard-i2eX.png
 
Hi all
sorry if this was mentioned before - i haven't read through the entire thread.
I have been using the Cubox Humming board for a while, and it's brilliant. It has the same form-factor as the RPI, with a much better hardware and more powerful CPU - Freescale MX6i, with ARM A9, with options for single, dual or quad core CPU.

When i am playing 24/192 waves with picoreplayer, than the cpu load is ~6%, with 16/44 it is ~3%. Good thing in picoreplayer is a minimal linux without many services and kernel modules which are started&loaded in any other standard linux distribution.
I tried wandboard with community squeeze with quad cpu and IMHO picoreplayer connected with usb-waveio-i2s-Buffalo II sounds better, than much more powerfull wandbord.
Now i am waiting for Pi B+, maybe it will be better, or not.
Pi version B is using normal voltage regulator, and B+ uses "switching" type voltage regulator, i am afraid, that they can produce some high frequency noise and cause some damage in audio reproduction.
 
When i am playing 24/192 waves with picoreplayer, than the cpu load is ~6%, with 16/44 it is ~3%. Good thing in picoreplayer is a minimal linux without many services and kernel modules which are started&loaded in any other standard linux distribution.

And how much CPU would those services and modules actually use? Especially considering that even with 24/192, your CPU is twiddling it's thumbs doing nothing 94% or the time...
 
I'm trying the squeezeplug approach. I really enjoy my piCorePlayer, but now i'm trying the Max2play odroid computer. It looks very powerful so far. It has a tolerable analogue audio out, but as a server it should be really good. I'll report back if anyone is interested. Max2play delivery is good and the device seems to be good if a little under developed for the English speakers.

http://www.hardkernel.com/main/main.php

http://shop.max2play.com/de/
 
And how much CPU would those services and modules actually use? Especially considering that even with 24/192, your CPU is twiddling it's thumbs doing nothing 94% or the time...

Try to stop all unnecessary services and unload all unused kernel modules on your player and LISTEN. Every process and kernel module is using some IO and RAM and this affects the data flow.
If you want to see, which kernelmodules are used, than login into your player.
"lsmod" shows all kernel modules and dependences between them, but many will have "0" and those modules you can safely unload with "sudo rmmod".
With processes is more difficult, but also possible to find out which processes you need only to play some music.

For my R Pi with picoreplayer 1.17a i wrote a short script unloading, stopping and killing everything what is not needed. It is for configuration without wifi and with usb dac:

Add the script at the END of /mnt/mmcblk0p2/tce/OliWeb-master/ivySox/myweb/do_rebootstuff.sh file, than save the configuration with "sudo filetool.sh -b" and reboot with "sudo reboot"
After each reboot you have 10 minutes time to make eventual changes with ssh or web gui, than ssh login and web gui is also killed.
this configuration works only with wired network and usb dacs.
Here starts the actual script:

sleep 3
sudo umount /dev/loop29 /dev/loop28 /dev/loop27 /dev/loop26 /dev/loop25 /dev/loop24 /dev/loop23 /dev/loop22
sudo umount /dev/loop17 /dev/loop16 /dev/loop7 /dev/loop6 /dev/loop5
sudo kill -9 $(pidof udevd)
sudo rmmod bcm2708_dmaengine snd_bcm2835 snd_soc_wm8804 snd_soc_bcm2708_i2s
sudo rmmod virt_dma snd_soc_core regmap_mmio regmap_spi regmap_i2c snd_pcm_dmaengine snd_compress
sleep 600
sudo /usr/local/etc/init.d/oliweb_initd stop
sudo kill -9 $(pidof udhcpc)
sudo umount /dev/loop1
sudo killall dropbear
sudo umount /dev/loop0
#end

IMHO with a high quality hifi system you will hear sq improvement.
 
Every process and kernel module is using some IO and RAM and this affects the data flow.

Did you look at the cpu and memory usage (using top) before and after the "cleanup" of the processes and modules?
 
Did you look at the cpu and memory usage (using top) before and after the "cleanup" of the processes and modules?

Yes. RAM usage went from ~70MB to 58MB and system load from ~0,07 to 0,02.
Interesting is "system idle", it went from ~92% to 98% when playing uncompressed 16/44 wav, so actually Pi playing waves has nothing to do. Playing mp3 or flacs is causing more load - the squeezeplay process is using ~6% CPU.

I received Pi+ yesterday and i tested today Pi against Pi+. Maybe it is my imagination, but with absolutely the same conditions (same Super Teddy ps, usb Waveio-i2s-Buffallo, same os) for my ears Pi is better than Pi+.
Pi+ is using switched voltage regulator onboard and Pi normal voltage regulator. Maybe a switched type voltage regulator on Pi+ is causing some hf noise ?
 
‘’Maybe a switched type voltage regulator on Pi+ is causing some hf noise ?’’

You could be on to something there.

Is it possible to switch the supplies over and let us know what you hear with the linear on the PI+?

I’m just about to start on a Beaglebone Black (awaiting order to arrive) which should be fun given my complete lack of knowledge with Linux.

Worth a punt from what I’m reading.
 
Try to stop all unnecessary services and unload all unused kernel modules on your player and LISTEN. Every process and kernel module is using some IO and RAM and this affects the data flow.
If you want to see, which kernelmodules are used, than login into your player.
"lsmod" shows all kernel modules and dependences between them, but many will have "0" and those modules you can safely unload with "sudo rmmod".
With processes is more difficult, but also possible to find out which processes you need only to play some music.

For my R Pi with picoreplayer 1.17a i wrote a short script unloading, stopping and killing everything what is not needed. It is for configuration without wifi and with usb dac:

Add the script at the END of /mnt/mmcblk0p2/tce/OliWeb-master/ivySox/myweb/do_rebootstuff.sh file, than save the configuration with "sudo filetool.sh -b" and reboot with "sudo reboot"
After each reboot you have 10 minutes time to make eventual changes with ssh or web gui, than ssh login and web gui is also killed.
this configuration works only with wired network and usb dacs.
Here starts the actual script:

sleep 3
sudo umount /dev/loop29 /dev/loop28 /dev/loop27 /dev/loop26 /dev/loop25 /dev/loop24 /dev/loop23 /dev/loop22
sudo umount /dev/loop17 /dev/loop16 /dev/loop7 /dev/loop6 /dev/loop5
sudo kill -9 $(pidof udevd)
sudo rmmod bcm2708_dmaengine snd_bcm2835 snd_soc_wm8804 snd_soc_bcm2708_i2s
sudo rmmod virt_dma snd_soc_core regmap_mmio regmap_spi regmap_i2c snd_pcm_dmaengine snd_compress
sleep 600
sudo /usr/local/etc/init.d/oliweb_initd stop
sudo kill -9 $(pidof udhcpc)
sudo umount /dev/loop1
sudo killall dropbear
sudo umount /dev/loop0
#end

IMHO with a high quality hifi system you will hear sq improvement.

Hi tomek,

You will need to modify your script for 1.17 and 1.17a. Steen is changing over from olibweb to httpd and there are actually 2 web interfaces delivered at the moment. Code in oliweb directory is no longer used. Well, there may be a bit of overlap but it will soon disappear.

regards
 
Interesting is "system idle", it went from ~92% to 98% when playing uncompressed 16/44 wav, so actually Pi playing waves has nothing to do.

Indeed. It is amazing how little CPU power it actually takes - and that is why I am somewhat sceptical about the effects of any optimisation.

I received Pi+ yesterday and i tested today Pi against Pi+. Maybe it is my imagination, but with absolutely the same conditions (same Super Teddy ps, usb Waveio-i2s-Buffallo, same os) for my ears Pi is better than Pi+.
Pi+ is using switched voltage regulator onboard and Pi normal voltage regulator. Maybe a switched type voltage regulator on Pi+ is causing some hf noise ?

It would be great to have that verified by ABX, and the noise levels measured.
 
Hi tomek,

You will need to modify your script for 1.17 and 1.17a. Steen is changing over from olibweb to httpd and there are actually 2 web interfaces delivered at the moment. Code in oliweb directory is no longer used. Well, there may be a bit of overlap but it will soon disappear.

regards

This is the version for 1.17a:
###
sleep 3
sudo umount /dev/loop29 /dev/loop28 /dev/loop27 /dev/loop26 /dev/loop25 /dev/loop24 /dev/loop23 /dev/loop22
sudo umount /dev/loop17 /dev/loop16 /dev/loop7 /dev/loop6 /dev/loop5
sudo rmmod bcm2708_dmaengine snd_soc_wm8804 snd_soc_bcm2708_i2s virt_dma
sudo rmmod snd_soc_core regmap_mmio regmap_spi regmap_i2c snd_compress snd_pcm_dmaengine
sleep 300
sudo /usr/local/etc/init.d/oliweb_initd stop
sudo kill -9 $(pidof udevd)
sudo kill -9 $(pidof httpd)
sudo kill -9 $(pidof udhcpc)
sudo umount /dev/loop1
sudo killall dropbear
sudo umount /dev/loop0
###
 
Tomek,

Can you add more please.

Is it NAS(does it run a server?)->pi (running plug)->wolfson

And what do you control it with?
 
Tomek,

Can you add more please.

Is it NAS(does it run a server?)->pi (running plug)->wolfson

And what do you control it with?

On my pc at work i have the music library and Logitech media server, i am controlling the player with www browser or Samsung tablet with Logitech Squeezebox controller app. Pi with Wolfson is connected to one old Akai Receiver.

At home i have one older notebbok with 3TB USB drive and Win 8 Pro + LMS. This notebook is used only as a media server. It is connected wired to the router, other devices at home can use it wirelessly (kitchen) or wired in my listening room.

If you use external dac, than probably Picoreplayer is the best solution, but Wolfson card is not supported by Picoreplayer, so i took squeezeplug
.
 
Thanks tomek, that script has peaked my interest. I did a little bit of poking around with it last night. I'm using the SPDIF out of my HiFiBerry card rather than the USB output so I didn't disable the i2c outputs, but I guess there are other things I can probably kill off, like USB for instance (unless it shares the bus with the SDCARD I guess). That's got me hooked and I want to learn more about how this works and see what other optimisations can be done, as much from a geeky Linux tinkering project as for any gains in audio quality. Any more tips are appreciated.
 


advertisement


Back
Top