Linux servers and Soekris DAM1021

Someone on another forum commented that the RPi was busy on the USB side with music data (for a USB DAC), data from the HDD (if USB hard drive), and wireless dongle for communicating with the UI. Perhaps, that was a cause of glitches some folks find.

Not an issue anymore with rpi2 and newer modern installations.
I used to have those issues with rpi (first model).
Not anymore.

lots of "mpd" apps that can control a rpi or other headless computers.

But usb, ethernet etc share the same I/O bus on a rpi.
 
Last edited:
Not an issue anymore with rpi2 and newer modern installations.
I used to have those issues with rpi (first model).
Not anymore.

lots of "mpd" apps that can control a rpi or other headless computers.

But usb, ethernet etc share the same I/O bus on a rpi.

Thanks to both you and DEQ for the input. If my goal is to replace my Squeezebox Touch with something that doesn't need the computer turned on in the other room and something feed a DAC (Soekris DAM in this case) at hi-rez, it sounds like SqueezeLite or LMS is a good software choice. Is it still available to download?

I'm about to get a headless computer. I was thinking about a Udoo or Wandboard but what I am hearing is that I may have to figure out how to make the software work by myself. What the best choice? RPi2?

I realize that there may be differing opinions, but I would appreciate any help.

Jac
 
I might not be the best to answer this as I'm not into hi-rez or DSD. Nearly all music to my liking is produced on PCM platforms so there is no benefits in it for me other than expensive hassle.

But my understanding is that SqueezeLite and LMS(beta, yes still under development) can deliver DSD.
DSD/DSF Files in LMS - Page 2

But LMS is regarded a service designed to run on a “server”. Although if your hardware can handle it there shouldn’t be a problem running both simulations. I do so on an old i5 laptop running Win8. Although my laptop has a screen it is mostly used as a headless device with the lid shut.

If dam1021's FIFO is working as good as planned and hoped for the Tough's will give us 24-bit 192Khz. I think I'm covered for PCM. But I guess Touch has to go if DSD is your interest with the upgrade. But then I'm not sure dam1021 would be my first chose as DAC. Somehow it seems contradicting.
 
Thanks to both you and DEQ for the input. If my goal is to replace my Squeezebox Touch with something that doesn't need the computer turned on in the other room and something feed a DAC (Soekris DAM in this case) at hi-rez, it sounds like SqueezeLite or LMS is a good software choice. Is it still available to download?

I'm about to get a headless computer. I was thinking about a Udoo or Wandboard but what I am hearing is that I may have to figure out how to make the software work by myself. What the best choice? RPi2?

I realize that there may be differing opinions, but I would appreciate any help.

Jac

I started with a RPi configured as both server and player using the Squeezeplug solution and all my music is on a NAS. This worked OK but scanning was very slow (over an hour). I have had an ongoing issue with the SD card seemingly becoming corrupted after a few weeks and having to be reimaged. This would mean the library would need scanning again.

So then I went to a separate server PC (I used a fanless PC I already had that was previously used as a CAPS) with Vortexbox. This is very stable and scans are much quicker - a new music scan is now 1 min instead of 10 mins. The RPi is still used with Squeezeplug but now only as the player.

All the management is done headless from another PC with either Putty or WinSCP. For music selection I mostly use a browser on a netbook but also have Orangesqueeze on a tablet.

Squeezebox/LMS has been around a long time now (I know because my first experience with playing music from a computer was using a Squeezebox Classic nearly 8 years ago!) and is still well supported. HD and now DSD are provided for and there is even the option of upsampling from 16/44.1 using SoX.
 


I made a bit more progress, but no sound out of the Dam1012 yet. I’m running the RPi (version B) with Runeaudio 0.3Beta and have selected a I2S dac profile (all preconfigured profiles seem to behave similar with the following result). The Dam1012 find a signal lock as the green led comes on solid and I get a message on the console like L044 or L192, depending on the source material. I’ve tried differently 16 and 24 bit encode material, but no difference.

Any suggestion would be greatly appreciated.
 
Thanks to all for the suggestions. I'm learning a lot as I go.

I also ran across this on another thread. SoundCheck makes a pretty good argument for using a USB converter as listed below.

"The I2S drivers and implementation of I2S for each ARM board differs.
You need to check its status and feature list out first -- for every single board.
We're talking about proprietary HW specific kernel drivers here.
I had a problem with e.g. Hifiberry module regarding 24bit support.
No way to get that fixed at that time.
The Rune Audio and Volumio team/community might help on certain issues though.


That's why I'd strongly recommend to go for a USB-I2S interface.
The USB driver is a well maintained usually pretty generic driver. (HiRez >96kHz under Windows is a mess though.)

A good USB interface will also provide proper isolation from the noisy ARM board.
And you're much more flexible."

I hope that is helpful.

Jac
 
I'd suggest giving Voyage a try. It's been around for several years (there's a great thread on Computer Audiophile) and has daily builds. Works flawlessly on any sample rate on a Pi B+ (have not tried a Pi2B yet) using i2s to feed the Soekris. There are specific instructions on the Voyage site for setting up the Soekris with it.

I have gotten Volumio to run on the Soekris using Toni's hints as above but that was using Volumio 1.51 and a Pi B+, not a Pi2 as I believe Robert is using. I switched to Voyage for its stability, maturity and the fact it's using a newer kernel than Volumio.

For those challenged by the requirement to have a Linux computer in order to download the Voyage image, consider that you already have such a device if you have a Pi. Install one of the standard RPi images like Raspbian from the RPI site on a card and use that to download Voyage to another card or USB stick plugged in to the Pi as per the instructions on the Voyage site.
 
...rpi i2s direct from GPIO. Does it handle every samplerate? I have read that it has some limitiations caused by the internal clock?

Think the limitations you mention were more to do with the way the Pi implements it's clocking rather than them imposing a limitation on its ability to handle every sample rate - see Hifiduino's write-up on the Pi for an explanation.

The Soekris' reclocking takes care of that 'flaw' in the Pi.

And to answer your question directly, I have played every sample rate from 44.1 to 192kHz with the Voyage/Pi/Soekris using i2s directly from the Pi's GPIO.

Punky, originator of Voyage MPD, states he has used a Pi 2B to send DoP DSD64 to a suitable DAC with no issues.
 
Hi Derek,

Thanks for your input, will get and install Voyage to my Pi2 tomorrow.
I've been working with Volumio but now interested in Voyage.
Linux for me is no problem so it will be not difficult.

It's Voyage MuBox right?

Kohjin

Yes, it's Voyage Mubox for the Pi. The link in post 28 above takes you directly to the correct page. Punky also ported Voyage to various other boxes. Voyage has a mailing list which is very helpful if you have questions and Punky himself is very responsive. I used Voyage MPD on an Alix 2d2 for years and always got great support from Punky and other users.

Am interested in your results with the Pi2 so please let us know. I have one on the way but where I live it can take some time so let us know your progress - especially if you try the DoP on the Pi 2.

Suggest you implement the overclocking as well when disabling the device tree and changing the /etc/modules file.
 
Another member here suggested,

"The settings outlined in here
https://volumio.org/forum/es9018k2m-based-streaming-solution-t2087.html
with an ESS K2M and Volumio 1.51 and it worked with the Soekris - I simply connected the i2s to pins 12, 35, 39 & 40".

It did not work for me on the rpi 2 but it may work on the earlier models.
It also seems that Volumio, Rune, and Archphile will not play 16 bit over i2s. I changed bit depth to 24 on a few tracks with sox and they worked after. Unfortunately they sounded worse for the extra processing.

I loaded piCorePlayer to Rpi 2, set up i2s, and connected to Logitech Media Center online and it worked like a charm. Easy instructions here, including i2s setup:
https://sites.google.com/site/picoreplayer/home/how-to-1

Also another member has endorsed Voyage MPD:
Voyage MPD | Voyage Linux
It requires a linux computer to set up. I will be excited to try it!

This is the correct link for Voyage as per Derek. Can't edit my original post for some reason...
http://mubox.voyage.hk/rpi
 
Voyage Mubox for Pi to Soekris DAM1021

For those wanting to try Linux, here's a guide for getting Voyage MuBox onto the Raspberry Pi B+ or 2B for use via i2s with the Soekris DAC:

The following uses a Windows 7 PC. Use a minimum 4Gb µSD card. First, download and install WinSCP :: Free SFTP and FTP client for Windows and Download Win32 Disk Imager from SourceForge.net to the Windows 7 machine. If you have an iOS device get the https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8 app.

PREPARE µSD card: To prepare your memory card do the following in Windows7 -be careful here!
1.Press Windows-R and type DiskPart in the ‘Open’ box. (Hold Windows flag key and press R key)
2.This will bring up a DOS box with DiskPart running in it.
3.Type ‘list disk’ (without the italics) and look for the disk that resembles your SD card. (Let’s assume it’s Disk 1).
4.Type ‘select disk 1′ BE REALLY SURE IT IS THE CARD AND NOT YOUR HARD DRIVE SELECTED.
5.Type ‘clean’. This wipes the disk.
6.Type ‘exit’ to quit.

DOWNLOAD Voyage MuBox image to µSD card. As of this writing the procedure is to connect to Raspberry Pi B+ & 2B | Voyage MuBox and, if you’re familiar with Linux and/or have a Linux computer, follow the instructions on the page. The download requires a computer running Linux.

If you don’t have a Linux computer either obtain the image from a friendly Linux user or use the following workaround to get the image:

As you already have a Pi you can use it temporarily as the required Linux computer. Using your Windows PC, download and install on to your card a Raspberry Pi default operating system like Raspbian. With the card inserted in your Pi you now have the ‘Linux computer’ required to download Voyage onto a second µSD card or a small USB stick – stick must be no bigger than 4Gb, smaller the better, 256Mb is fine.

Plug the small USB stick or the second µSD card (via a USB card reader) into the Pi.

On your Windows PC, download the zip file version of Raspbian from Downloads | Raspberry Pi . Extract it with Download or any unzipping software. You will end up with a .img file of about 3Gb. This has to be written to your first (or only) µSD card using Win32DiskImager downloaded previously above.

Once you have written the image to your card and inserted it into the Pi you need to ascertain it’s IP address and then the ‘/dev/sdx’ of the USB stick or µSD card plugged into the Pi. You have two options for doing this – hook up an HDMI TV and a USB keyboard to the Pi and power it up. Or, if you don’t want to hook up a TV and keyboard, you can use Fing or other method of scanning your LAN to ascertain the Pi’s IP address. Simply power the Pi up and use Fing or other LAN scanner to get the IP address of the Pi.

The Fing option is probably easiest but if you opt for hooking up the TV etc. (you can use a dongle and wireless keyboard) what you see on your screen is the Command Line Interface or CLI. Welcome to Linux! To ascertain the Pi’s IP address and the sdx letter assigned to the second card or USB stick using the HDMI/keyboard option: from the CLI type ifconfig and press Enter. Make a note of the Pi’s IP address after ‘inet addr:’ Then type cat /proc/partitions (space between cat and /proc) and make a note of the ‘sdx’ entry - this is the designation of the USB stick or second µSD card you plugged in to the Pi. Should be sda. From here you no longer need the TV/keyboard.

If you opted for the second option using Fing you now have the Pi’s IP address but not the sdx number of the stick or card plugged into the Pi.

Then, whichever method used, once you have the Pi’s IP address you can access it via WinSCP – which is easier to use than the pure CLI. On WinSCP’s Login screen ensure the File Protocol is SFTP, enter the Pi’s IP address under Host Name, pi under User Name and raspberry for Password. Save and click Login. WinSCP includes PuTTY – it can be launched from within WinSCP. PuTTY is an SSH client – essentially a means of accessing the CLI. Open PuTTY from within WinSCP – it’s the third icon from the right at the top – two screens and a lightning bolt. If you don’t already have the sdx number then type cat /proc/partitions as above and note the sdx number - most likely sda.

Next, on your Windows machine, go to Raspberry Pi B+ & 2B | Voyage MuBox and scroll down to ‘uSD card creation by script’. Hover the mouse over the words ‘installation script’ and click. Copy everything that comes up to the clipboard. This script contains the automated instructions for downloading the image from the Voyage website – saves much hair-pulling on the learning curve.

Next, go back to WinSCP and click on root at the top of the ‘tree’ on the left of WinSCP – a Windows Explorer-like environment for Linux that acts mostly like Windows Explorer. Scroll down to the /home/pi folder and, once in /home/pi, create a new file (File>New>File) and name it install-mubox-rpi.sh

When the file is created a blank screen will appear. Simply paste (Ctrl-V) the contents of the clipboard copied earlier from the Voyage website into this blank file and save by clicking the diskette icon at the top. Exit using the red X.

Go back to PuTTY and type sudo su and press Enter. This should change the prompt to root@raspberrypi:/home/pi#. Type chmod a+rwx install-mubox-rpi.sh (and press Enter).

At the prompt type ./install-mubox-rpi.sh /dev/sdx (changing the sdx to sda or whatever you noted above). Note that there is a space between sh and /dev. No spaces anywhere else. This should install Voyage on your card or stick. Be patient, it will indicate when it’s done.

If you used a card, plug it into the Pi and power up – you now have Voyage running on your Pi and can move on to configuring it to work with the Soekris. If you used a USB stick, copy the image on the stick to a folder on your Windows machine using Win32DiskImager and then reformat the µSD card you used for Raspbian using DiskPart as outlined above and write the saved-from-the-USB-stick Voyage image to the card using Win32DiskImager.

Try powering up and using WinSCP/PuTTY to see if it boots.Configuration later.
 
Last edited:
I've not taken the plunge with the Soekris DAC so far, but plan to do so once I finish some of my other projects!

I plan to use a Beaglebone Black running the Botic distro, developed by miero;

http://www.diyaudio.com/forums/twisted-pear/258254-support-botic-linux-driver.html

http://bbb.ieero.com/

Botic grew out of a Twisted Pear development idea, hence the thread location, but has proven to be very flexible, capable and reliable. The BBB/Botic combo has been used successfully in many non-TPA DAC projects such as the DDAC and the Soekris DAC;

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-210.html#post4265557

My understanding is that the BBB/Botic combo has been tested for data rates up to 384KHz and with DSD128.

I already use a BBB/Botic combo with an Acko SO3 isolator/reclocker as an i2s transport for a Buffalo DAC IIIse; the BBB/Botic 'tells' the SO3 whether the incoming data is 44 or 48KHz family and the correct high quality clock is selected on the SO3 and masterclock signal is fed back into the BBB/Botic, thus correctly preserving native sample rates. (Although the RPi supports 44 and 48KHz data families it does this via fractional division of its onboard 19MHz clock.). The Soekris DAC header has both clock select in and masterclock out so should work in exactly the same way as my Acko SO3.

If you check out miero's botic page you'll see just how flexible it's config options are. That includes using being able to use masterclock inputs to the BBBat 45/49MHz (i.e. no subdivision down to 22/24MHz) as in the link above.

I operate a UPnP/DLNA environment so I have added a UPnP control layer on top of my botic distro and that works very well and I know others have done a similar thing with squeezelite.

Ray
 
I've not taken the plunge with the Soekris DAC so far, but plan to do so once I finish some of my other projects!

I plan to use a Beaglebone Black running the Botic distro, developed by miero;

http://www.diyaudio.com/forums/twisted-pear/258254-support-botic-linux-driver.html

http://bbb.ieero.com/

Botic grew out of a Twisted Pear development idea, hence the thread location, but has proven to be very flexible, capable and reliable. The BBB/Botic combo has been used successfully in many non-TPA DAC projects such as the DDAC and the Soekris DAC;

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-210.html#post4265557

My understanding is that the BBB/Botic combo has been tested for data rates up to 384KHz and with DSD128.

I already use a BBB/Botic combo with an Acko SO3 isolator/reclocker as an i2s transport for a Buffalo DAC IIIse; the BBB/Botic 'tells' the SO3 whether the incoming data is 44 or 48KHz family and the correct high quality clock is selected on the SO3 and masterclock signal is fed back into the BBB/Botic, thus correctly preserving native sample rates. (Although the RPi supports 44 and 48KHz data families it does this via fractional division of its onboard 19MHz clock.). The Soekris DAC header has both clock select in and masterclock out so should work in exactly the same way as my Acko SO3.

If you check out miero's botic page you'll see just how flexible it's config options are. That includes using being able to use masterclock inputs to the BBBat 45/49MHz (i.e. no subdivision down to 22/24MHz) as in the link above.

I operate a UPnP/DLNA environment so I have added a UPnP control layer on top of my botic distro and that works very well and I know others have done a similar thing with squeezelite.

Ray

Hi Ray, the Miero driver for the BBB could at somepoint at least on paper work directly with dam1012, however the /2 clock divider is not yet available and I've not heard of anybody who's done this. I'm quite surprised how few people seem to have successfully managed to get an embedded board to work with this dac. I've been at it for days and still no sound.
 
Configuring Voyage for RPI and the Soekris DAM1021

Configuring Voyage for use with i2s out from a Raspberry Pi B+/2B to Soekris DAM1021

These instructions are based on the configuration on the Voyage website and include a few additional tips. If you’re comfortable with Linux go to to the Raspberry Pi B+ & 2B | Voyage MuBox page and follow the instructions for configuring Voyage with the Soekris as well as Overclocking and reducing GPU memory. For the guide below you need to set WinSCP up with the Pi’s IP address, the username root and the password voyage then launch PuTTY and type remountrw at the prompt.

Then, disable the device tree that comes set up as the default in Voyage for a Hifiberry DAC: using WinSCP, navigate to the /boot directory and double-click on the config.txt file. When it comes up scroll to the bottom and add # in front of the line that starts ‘device_tree_overlay…’ as well as the line ‘dtoverlay=hifiberry-dacplus’. This is known as ‘commenting out the line’. Next, add the line device_tree=

Then overclock the Pi - just above these lines you should see four lines starting with #arm_freq=1000. Remove the # in front of each line (uncomment the line) and add the line temp_limit=80 If you’re running a B+ change the 1000 to 1100. If you’re running a 2B, 1100 may be too high, use 1000. Next, reduce the GPU memory by changing the 64 on the end of the two lines gpu_mem 512=64 and gpu_mem 256=64 to 16. When all that is done save the config.txt file.

Still in WinSCP, navigate to the modules file under the /etc folder. Add the following two lines: snd_soc_pcm1794a and snd_soc_rpi_dac and save the file.

Now reboot the Pi by using PuTTY and typing reboot at the CLI prompt. When it comes back up you should have Voyage working with the Soekris DAM1021. At that point, as a test, power down the Pi, add a few songs (of differing sample rates if you like) to a USB stick, plug it in to the Pi and power up.

You will need a suitable client like MPod, MPad, MPDroid, GMPC etc to manage your music. Read the Help or instructions for whichever you choose but, if you’re in a hurry, here are the main points - connect your M-client to Voyage by adding the Pi’s IP address under the ‘Server’ input in the M-client Connections setup. Port is 6600. Just name it at the top – any name you like. Once you’ve saved this connection you need to Update Database under Settings. This loads the ‘contents’ of your music library (in this case the USB stick) into the Pi. Depending on the size of the library this can take a while. To check on progress you can launch PuTTY and type mpc at the prompt, you’ll see “Updating db” while the update is in progress. Give it a few minutes depending on how many songs you loaded and type mpc again. When you type mpc and no longer see ‘Updating db’ it’s done updating. At that point tap the ‘Refresh Local Cache’ option above ‘Update Database’ on the M-client Settings menu. This loads a list or table-of-contents of the database on to your app. After that you should be able to play music….

If you like what you hear consider a donation to Punky at Voyage.

TIPS:
The Voyage username is root and the Voyage password is voyage.

Voyage requires you to type remountrw at the CLI if you wish to make changes. Bear in mind that some changes are not saved if you yank the power rather than typing reboot or halt – especially important to reboot gracefully after updating the database.

The Cookbook menu on the Voyage Mubox site has instructions on many options – check it out.

Hardware (cabling) hookup - the i2s hookup between the Pi and Soekris is straightforward. Pins 12, 35, 39 and 40 on the Pi correspond to BCK, LRCK, GND and Data on the Soekris.

Server Auditor is a great SSH client for the iPad/iPhone.

Mount a SAMBA/CIFS NAS - assuming your music is held in a folder called ‘music’ on your NAS and your NAS uses SAMBA/CIFS share add the details of your NAS to the /etc/fstab file by adding:

\\192.168.xxx.xxx\music /mnt/music cifs username=yourNASusername,password=yourNASpassword,rsize=8192,wsize=4096,file_mode=0644,dir_mode=0755,iocharset=utf8,sec=ntlm 0 0

You may need to link the music folder to Voyage by:
mkdir /mnt/music
mount –a
ln –s /mnt/music/ /var/lib/mpd/music/music

Mount an NFS share – assuming your music is held in a folder called ‘music’ on your NAS and your NAS is using an NFS share add this to /etc/fstab:

192.168.xxx.xxx:/music /mnt/music nfs rw,noatime 0 0

WiFi setup – see here [RPi] Setup wireless access point using Nano USB adapter | Voyage MuBox

BACKUP PLAYLISTS - playlists created on Voyage will be lost if the SD card is reformatted. To make backups of playlists: before creating playlists use WinSCP, PuTTY or Server Auditor to alter the save_absolute_paths_in_playlists “no” line in the /etc/mpd.conf file to save_absolute_paths_in_playlists “yes”

This will save the full path to the playlist selections. Use WinSCP to copy the playlists (usually found in the /var/lib/mpd/playlists folder) to a Playlist backup folder somewhere other than the Pi. Once the same music directories are used for the new installation, the playlists can be copied to the /var/lib/mpd/playlists folder of the new installation.

The ‘Replace All’ function of a text editor like Notepad can be used to alter the paths if they need to be different. Save the new file with an “.m3u” extension.

Once you have everything set up to your liking use Win32DiskImager to make an archival copy of your card - makes it easy to reload the image with all your music, configurations etc.
 
Last edited:
Hi Ray, the Miero driver for the BBB could at somepoint at least on paper work directly with dam1012, however the /2 clock divider is not yet available and I've not heard of anybody who's done this. I'm quite surprised how few people seem to have successfully managed to get an embedded board to work with this dac. I've been at it for days and still no sound.

stijn001, check through Acko's reclocker thread and you'll find people have been removing the clock divider from their SO3 boards and running the BBB on 45/49MHz clock, with some reported improvements in SQ too. Here are some examples;

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-210.html#post4265557

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-200.html#post4257844

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-168.html#post4191208

Given the frustrations with the RPi maybe worth the £35 expenditure to try a BBB?

Ray
 
stijn001, check through Acko's reclocker thread and you'll find people have been removing the clock divider from their SO3 boards and running the BBB on 45/49MHz clock, with some reported improvements in SQ too. Here are some examples;

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-210.html#post4265557

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-200.html#post4257844

http://www.diyaudio.com/forums/group-buys/227502-amanero-isolator-reclocker-gb-168.html#post4191208

Given the frustrations with the RPi maybe worth the £35 expenditure to try a BBB?

Ray

Hi Ray, thanks for the links, I know some have reported BBB on 45/49MHz clock works, however others have reported problems, so I'm not convinced this is a working solution. I have had the Miero, BBB+S03 running in my other dac, and have found this very stable. I'm keen to use the RPi as I would like to use more then one USB port. I however don't want to throw more money at the Soekris, by buying yet another RPi (i.e. the version 2, to try Derekr instruction) untill I at least have some sound from the thing. It is indeed frustrating.