Jump to content
  • The Computer Audiophile
    The Computer Audiophile

    Geek Speak: How To Build A UPnP / DLNA / OpenHome Renderer For Less Than $100

    thumb.jpg

    1-Pixel.png

    Warning: This article is technical in nature, but is far from rocket surgery. The step-by-step how-to instructions below make the process extremely easy. That said, this article isn't for everybody.

     

    This is the second article in the CA Geek Speak series (Link to first article ex.png). If you have a USB DAC and want to turn it into a network capable device or if you want to setup multiple zones for playback and control via iPad for less than $100 per zone, then this article is for you. The instructions below provide a step-by-step guide for creating a UPnP / DLNA / OpenHome renderer with Ethernet input and USB output for connection to a USB DAC. In a way, this device can be considered the poor man's Auralic Aries (Review Link ex.png) or SOtM sMS-100 Mini Server (Review Link ex.png). In the previous Geek Speak article readers were forced to log in to the device and make configuration changes via command line. This time I've taken care of all the configuration myself. Readers simply need to download the preconfigured image file and flash it to a Beaglebone Black (Rev. C) following the instructions. That's it.[PRBREAK][/PRBREAK]

     

    This device is a tiny 2.4" x 0.82" x 3.54" Beaglebone Black fanless computer running Linux and a couple pieces of preconfigured software. It connects to a home network via wired Ethernet and connects to an audio system via USB. With this device in an audio system the user can stream music from a NAS or any computer running JRiver Media Center and have full control over music selection and volume for a single or multiple zones with an iPad or similar device. I highly recommend using JRiver and JRemote. Whether using a single device connected to a USB DAC in a main audio system or using several of these devices connected to audio systems throughout a home, JRemote makes control of everything extremely simple. Currently this renderer supports both PCM and DSD via DoP playback. I've tested PCM up through 24 bit / 192 kHz and DSD 64 without any issues. Gapless playback at all sample rates is also supported. I am unsure exactly what USB DACs are supported, but I know that USB DACs capable of functioning without drivers on Mac OS X should work just fine with this renderer.

     

     

     

     

     

     

    1-Pixel.png

     

     

    [ATTACH=CONFIG]17349[/ATTACH][ATTACH=CONFIG]17350[/ATTACH][ATTACH=CONFIG]17348[/ATTACH]

     

     

     

    1-Pixel.png

     

     

     

     

     

     

    Details for Geeks

     

    MP version - Music Player Daemon 0.19.9

    upmpdcli version - upmpdcli-0.9.0

    Linux version - BeagleBoard.org Debian Wheezy Image 2015-03-01 (3.8.13-bone70)

    Username = root

    Password = (no password / blank)

     

     

     

    Requirements

     

    BeagleBone Black (Rev. C required) ex.png ($60)

    BeagleBone Black case ex.png ($10)

    Power Adapter (5 volts, 2 Amps, 10 Watts) ex.png ($9)

    MicroSD Card with Adapter ex.png (~$10)

    SD Card Reader ex.png (~$13) (Optional)

    Win32 Disk Image ex.png ($0) (Windows users)

    Ethernet cable

    NAS Drive or computer for music storage

    Tablet for control such as iOS or Android device

    UPnP Server software such as JRiver Media Center ex.png or MinimServer ex.png

    UPnP Control Point software such as JRemote ex.png (when used with JRMC) or BubbleUPnP ex.png

     

     

     

     

    Step-By-Step Mac OS X

     

     

    - Connect the MicroSD card to the computer

    - Open Disk Utility (Applications > Utilities > Disk Utility), select select all volumes under the MicroSD card, then select Unmount. In my example the volume is named 8GB. (Image Link ex.png)

    - Download the preconfigured image file (USB Output Version ex.png). (HDMI Output Version ex.png)

    - Double-click the downloaded preconfigured image file named CA-NetAudio-1.0.img.zip. This will automatically extract the image file named CA-NetAudio-1.0.img

    - Open the Terminal app (Applications > Utilities > Terminal)

    - Type -> sudo su (without the arrow ->)

    - Enter your password if asked.

    - Type -> diskutil list

    - Take note of the disk number of the MicroSD card connected to your computer. My MicroSD card is listed as /dev/disk1. The MicroSD card should be easily identifiable by its small size. My MicroSD card is listed as 7.9 GB (Image Link ex.png)

    - Type -> sudo dd if=

    - Drag the preconfigured image file named CA-NetAudio-1.0.img on to the Terminal window to automatically fill in the path to the file (Image Link ex.png) You can also type this in manually if desired.

    - After dropping the image file on to the Terminal window the command line should read something like this >> sudo dd if=/Users/chris/Desktop/CA-NetAudio-1.0.img (Image Link ex.png).

    - Make sure there is a single space after the path to the preconfigured image file named CA-NetAudio-1.0.img entered in the previous steps.

    - Type -> of=

    - Then enter the disk number of your MicroSD card. In my case this is /dev/disk1

    - The text should look something like this of=/dev/disk1 (Image Link ex.png).

    - Make sure there is a single space after the path to your MicroSD card entered in the previous steps.

    - Type -> bs=1m

    - The entire line should now look something like this >> dd if=/Users/chris/Desktop/CA-NetAudio-1.0.img of=/dev/disk1 bs=1m

    - Here is an image of my Terminal (Image Link ex.png)

    - Hit Enter on your keyboard and wait for the image to be written to the MicroSD card. This will take several minutes and appear like your computer is stuck. Please wait for the command to finish.

    - Once the image has been written to the MicroSD card the Terminal window will list something like this.

    3781+1 records in

    3781+1 records out

    3965190144 bytes transferred in 2489.137016 secs (1592998 bytes/sec) (Image Link ex.png)

    - If you receive an error message stating "Resource busy" (Image Link ex.png) you likely skipped step 2. Please unmount the volume and try again.

    - Open Disk Utility (Applications > Utilities > Disk Utility), select the MicroSd card, click Eject or Eject Disk via the right-click menu.

    - Place the MicroSD card into the BeagleBone Black's MicroSD card slot.

    - Hold down the small Boot Switch / Button ex.png while connecting the power supply to the board.

    - As soon as one of the User LEDs illuminates, release the Boot Switch / Button.

    - The User LEDs should continue flashing while the MicroSD card image is copied to the on-board eMMC flash memory. The process should take about five minutes.

    - When all four User LEDs are illuminated steady, pull the power supply from the board and remove the MicroSD card. Or, the board will power down automatically if you wait long enough after the copy is complete.

    - Connect an Ethernet cable to the board and your USB DAC to the USB port and re-connect the power supply.

    - The BeagleBone Black will boot up and automatically appear as a UPnP / DLNA / OpenHome renderer in your application of choice such as JRiver Media Center. If using JRiver Media Center the device will appear as a new zone named NetAudio. To send music to the device simply select NetAudio, then select the music you want to play.

    - That's it.

     

     

     

     

     

     

     

     

    Step-By-Step Windows

     

    - Connect the MicroSD card to the computer

    - Install Win32 Disk Image Link ex.png

    - Download the preconfigured image file (USB Output Version ex.png). (HDMI Output Version ex.png)

    - Right-click the downloaded preconfigured image file named CA-NetAudio-1.0.img.zip. Select Extract All (you may have to click Next after this). This will extract the image file named CA-NetAudio-1.0.img into a folder with the same name CA-NetAudio-1.0.img.

    - Open Win32 Disk Imager

    - Make sure the MicroSD card drive letter is selected under Device (Image Link ex.png)

    - Select the small folder to the left of the Device drive letter and browse to the file previously extracted named CA-NetAudio-1.0.img. Don't select the .zip compressed file.

    - Click the Write button and Yes to any popup questions.

    - Eject the MicroSd card when Win32 Disk Imager finishes writing the image.

    - Place the MicroSD card into the BeagleBone Black's MicroSD card slot.

    - Hold down the small Boot Switch / Button ex.png while connecting the power supply to the board.

    - As soon as one of the User LEDs illuminates, release the Boot Switch / Button.

    - The User LEDs should continue flashing while the MicroSD card image is copied to the on-board eMMC flash memory. The process should take about five minutes.

    - When all four User LEDs are illuminated steady, pull the power supply from the board and remove the MicroSD card. Or, the board will power down automatically if you wait long enough after the copy is complete.

    - Connect an Ethernet cable to the board and your USB DAC to the USB port and re-connect the power supply.

    - The BeagleBone Black will boot up and automatically appear as a UPnP / DLNA / OpenHome renderer in your application of choice such as JRiver Media Center. If using JRiver Media Center the device will appear as a new zone named NetAudio (Image Link ex.png). To send music to the device simply select NetAudio, then select the music you want to play. The device will also appear automatically in JRemote as a zone called NetAudio (Image Link ex.png).

    - That's it.

     

     

     

     

     

    Please let me know if you find errors in this guide. I will keep it updated as appropriate and update the preconfigured downloadable image. Tips, tricks, and tweaks are also encouraged!

     

     

     

     

    1-Pixel.png

     

     

     

    1-Pixel.png




    User Feedback

    Recommended Comments



    Everything is OK ! ;-)

    The problem was with computer with Jriver (wrong DNS).

     

    NetAudio plays quieter than my PC (with Daphile) over USB !

    I assume that NetAudio is not bitperfect ...

    This is 100% but perfect as long as the volume is set to 100.

    Share this comment


    Link to comment
    Share on other sites

    Unfortunately no. However, there is an I2S output on the board. I'm sure someone could make an add-on piece to convert this :~)

     

    Thanks Chris. That's what I thought. It would be great if someone would come up with an I2S adaptor that is easy to implement. I won't hold my breath.

    Share this comment


    Link to comment
    Share on other sites

    This is 100% but perfect as long as the volume is set to 100.

     

    Volume is set to max and NetAudio plays quieter.

    Share this comment


    Link to comment
    Share on other sites

    A friend told me:

     

    There should not be /etc/asound.conf,

    and /etc/mpd.conf is to appeal to the device hw: X, Y.

    Of course, ReplayGain and volume normalization should be disabled.

    mixer set to 100%, both ALSA and in MPD.

     

    Is the system configured in this way ?

    Is MPD linked to pulseaudio (standard in Debian) ?

    Share this comment


    Link to comment
    Share on other sites

    Thanks!

     

    Hi...It's working but only seems to output at 48k regardless of content. J.river is set to pass original sample rate.

    Share this comment


    Link to comment
    Share on other sites

    Hi...It's working but only seems to output at 48k regardless of content. J.river is set to pass original sample rate.

    If this is the case it's a limitation with the HDMI output only I don't know how to work around.

    Share this comment


    Link to comment
    Share on other sites

    Everything is OK ! ;-)

    The problem was with computer with Jriver (wrong DNS).

     

    NetAudio plays quieter than my PC (with Daphile) over USB !

    I assume that NetAudio is not bitperfect ...

     

    I found the same thing, low audio level, when I first turned on the NetAudio devise. I found that there are settings in Jriver (19)under media network that sets the options on the renderer. I made the changes and the max volume was the same as my direct PC USB output.

     

    hope this helps,

    Share this comment


    Link to comment
    Share on other sites

    If this is the case it's a limitation with the HDMI output only I don't know how to work around.

     

    From what I can tell, the clock on the board only does the 48k family which I'm sure impact the HDMI. It looks like that also applies to I2S though I wonder if most I2S applications can operate it as a slave unit. Ie where the dac's clock controls the data flow (like USB).

    Share this comment


    Link to comment
    Share on other sites

    Everything is OK ! ;-)

    The problem was with computer with Jriver (wrong DNS).

     

    NetAudio plays quieter than my PC (with Daphile) over USB !

    I assume that NetAudio is not bitperfect ...

     

    How did you fix the problem you had? I'm having the exact problem: a few seconds of a track then goes to the next track, etc

    Share this comment


    Link to comment
    Share on other sites

    How did you fix the problem you had? I'm having the exact problem: a few seconds of a track then goes to the next track, etc

     

    My unit does the same thing if I'm trying to play WMA files. No problem with FLAC or m4a files.

    Share this comment


    Link to comment
    Share on other sites

    My unit does the same thing if I'm trying to play WMA files. No problem with FLAC or m4a files.

     

    Fixed it. Here are my settings. Hope this helps...

     

    image.jpg

    Share this comment


    Link to comment
    Share on other sites

    Fixed it. Here are my settings. Hope this helps...

     

    [ATTACH=CONFIG]17563[/ATTACH]

     

    Having a bad time trying to this to work. No matter my jriver setting tracks don't play. Are there any special port settings?

    Share this comment


    Link to comment
    Share on other sites

    I progressed just fine and saw all of the appropriate responses described in the article until I hooked it up to my computer, and JRiver does not see NetAudio. It does see my AVR, so not sure why the disconnect. I have tried both a direct ethernet connection to my computer, and via the network switch which is how my AVR is connected. Any advice?

     

    Thanks, John

    Share this comment


    Link to comment
    Share on other sites

    I progressed just fine and saw all of the appropriate responses described in the article until I hooked it up to my computer, and JRiver does not see NetAudio. It does see my AVR, so not sure why the disconnect. I have tried both a direct ethernet connection to my computer, and via the network switch which is how my AVR is connected. Any advice?

     

    Thanks, John

    Try unplugging your DAC, then rebooting the renderer by pulling the power.

    Share this comment


    Link to comment
    Share on other sites

    Having a bad time trying to this to work. No matter my jriver setting tracks don't play. Are there any special port settings?

     

     

    Mia culpa. The player only functions when there's a dac connected. I was testing without one.

    Share this comment


    Link to comment
    Share on other sites

    Did some A/B comparsions of this vs. the SoTM-SMS100 in my main system Differences are basically it loses resolution for background instruments and softens percussion instruments... wood blocks tend to have a soft splat vs a hard knock. Still loving this as a portable option for headphone station

    Share this comment


    Link to comment
    Share on other sites

    Try unplugging your DAC, then rebooting the renderer by pulling the power.

     

    Thank you Chris. I had two DAC's with which to experiment and had two problems it turns out. In the first case JRiver could not see the player because it was linked by ethernet directly to the computer playing JRiver, but not to the network, which I did not understand at first. I would have to create another access point to tie it all together, if I understand this correctly, but I will tackle that later. Meanwhile in the second case the player was connected to the network switch so JRiver could see it, but the sound was wrong. That was solved by switching a JRiver setting from "Convert audio if necessary" to "Don't convert audio" in Options, Media Network, Client Options (when connected to a library server), Audio Conversion. How my original setting was not BeagleBone Black friendly I don't know, I am too new to this. I am trying to leave an attachment showing the JRiver Options screen, but not sure if that will work. Final words, it works very very well, this powerful little device is a real help, thanks!!

    IMG_0492.jpg

    Share this comment


    Link to comment
    Share on other sites

    Did some A/B comparsions of this vs. the SoTM-SMS100 in my main system Differences are basically it loses resolution for background instruments and softens percussion instruments... wood blocks tend to have a soft splat vs a hard knock. Still loving this as a portable option for headphone station

     

    Curious ... How were you powering both of them?

    Share this comment


    Link to comment
    Share on other sites

    I found a nice improvement with a linear power supply over the small switcher originally quoted in the article. This renderer configuration was a big improve over a stock Mac Mini USB out.

    Share this comment


    Link to comment
    Share on other sites

    Has anyone had the problem of shutting the unit down while connected to a dac causing the dac to lock up?

    Share this comment


    Link to comment
    Share on other sites

    I found a nice improvement with a linear power supply over the small switcher originally quoted in the article. This renderer configuration was a big improve over a stock Mac Mini USB out.

     

    What linear supply did you use and where did you get it? Thanks.

    Share this comment


    Link to comment
    Share on other sites

    What linear supply did you use and where did you get it? Thanks.

     

    I'm using a diy unit from diy audio Super Regulator V2.2 - Power Supplies and Accessories - Circuit Boards

     

    It may be overkill, I had it sitting around so I hooked it up to see if it would make a difference and it's worth doing. Gives more definition and focus. I have another unit with a LT1085 and I will report back any difference.

    Share this comment


    Link to comment
    Share on other sites




    Guest
    This is now closed for further comments




×
×
  • Create New...