Music Server

Click here for the Sercomm Update Utility

Over the Christmas break at the end of 2005, I bought a Roku SoundBridge M1001:

It's a network music player that plugs into my existing Hi-Fi, and accesses all the music stored on my network, either by Ethernet, or wirelessly.

This is mine mounted on top of my LCD TV:

Originally, I connected it via Ethernet to a wall box I installed above my Hi-Fi, with music stored on my main PC using Windows Media Connect 2.0 to serve the SoundBridge. This worked perfectly, and as the SoundBridge is connected directly to my router, it has its own internet connection and can play the majority of streaming internet radio stations without a music server running. But the PC needed to be on if I wanted to play my own music collection.

So I bought one of these: And one of these:

On the left is a Linksys NSLU2 Network Storage Adaptor, and on the right is a 300GB external USB Hard disk. This is the pair of them installed above my Hi-Fi:

The NSLU2 doesn't do what's required of it straight out of the box, so it needed to be fiddled with. As it runs a version of GNU Linux, its operating system is open source, and a lot of people have fiddled with the code in order to make it do all manner of things. I really only need it to be a music server so I have installed the uNSLUng 5.5 beta firmware. This is installed on the external disk, rather than on the NSLU2's internal ROM. If the disk is attached, it boots into the modified version, and without the disk attached it boots (semi) normally. With the firmware taken care of, and allowing me to log in via telnet on a Windows PC to a Linux session as root, I then had to find the music server itself. It boiled down to 2: Twonky Vision, or mt-daapd (Multi-Threaded Digital Audio Access Protocol). I chose mt-daapd mainly because it is free, and has an excellent support community. It was a wise choice too, as mt-daapd is now called Firefly and is being developed by Roku, the same people who make the SoundBridge. Being as the NSLU2 is a Linux box, installing the server is incredibly easy providing you have access to pre-compiled "Itsy" packages. These are readily found and after copying an IPK file from a Windows PC to the Slug, just typing "ipkg install mt-daapd_svn-909-1_armeb.ipk" was enough o set it going. It did error on a few dependencies, but installing them was just as simple. Just to make it more complicated, instead of going for the stable version, I went for the development (or "nightly") version, mainly as it allows dynamic playlists, which are pretty cool. Since writing this page in 2006, as of 2008 development seems to have stopped at version 1696, which isn't perfect, but does work.

One thing that Roku seem fairly reasonable about (for now) is firmware upgrades. Even after I've bought the device, they are still willing to improve it via its internet connection:

One more modification I might do to the NSLU2 is remove a resistor that Linksys put on the PCB. This under-clocks the processor to 133MHz. Simply unsoldering the resistor (or crushing it with needle nosed pliers) immediately ups the speed to 266MHz.

So that's my music server:
Music stored on an external hard disk...
Shared over my network by a Music Server running on the modified NSLU2...
Made searchable/browsable and played through my Hi-Fi by 2 Roku SoundBridges.

But wait! That's not all. In August 2006 I added a Hewlett-Packard iPAQ rx1950 PDA:

Aside from all the cool things a Wi-Fi ready PDA does, it's main use is to run a program called VisualMR. This is a really well written piece of software that allows the PDA to sit between the NSLU2 server and the Soundbridges, to allow you to control the music being played, display track information on the screen, and even link to the relevant page for the album on Amazon.com. It's written by a chap called Thorsten Lange. See screenshots below:

It's very very cool anyway.

Update during October 2007: Mel bought me another one for my birthday. Since I bought the first one, Roku products are now marketed in Europe by Pinnacle, so it's branded slightly differently, but otherwise (apart from one small (and meaningless to me) difference) it's exactly the same:

Just to make it easier, here is a diagram of my home network:


1: Telewest-supplied, Scientific Atlanta Webstar Cable Modem
2: Belkin F5D5231-4 Wired Router
3: Mercury 5 Port Network Switch
4: Belkin F5D7130 Wireless Access Point
5: Linksys NSLU2 Network Storage Adaptor (running uNSLUng 6.10 Beta firmware and Firefly svn-1696 music server software)
6: Western Digital 1TB External Hard Disk (backup)
7: Desktop PC running Windows XP Home and Ubuntu 10.10 Maverick Meerkat (Main PC)
8: Weather Server running Windows XP Pro
9: Packard Bell iGo Laptop running varities of Linux
10: Pinnacle SoundBridge M1001 Network Music Client (Spare Room)
11: HP iPAQ rx1950 PDA
12: Roku SoundBridge M1001 Network Music Client (Lounge)
13: LaCrosse WS2307 Weather Station
14: Dell Inspiron 1525 Laptop running Ubuntu 11.04 Natty Narwhal
15: Nintendo Wii
16: Maxtor Basics 500GB External Hard Disk (music)
17: HTC Hero running Android 2.1 Mobile Phone (used for Soundbridge control)

Red lines denote Ethernet connections, Blue lines are USB. I'm running 128-bit WEP encryption instead of the more secure WPA. Although the SoundBridge does now support WPA, I haven't gotten round round to upgrading, and probably never will.

There is no (realistic) limit to the number of additional SoundBridges I can add. My wireless access point will support up to 32 clients, but that would be a silly number of SoundBridges. I think one, maybe two more would be good.


Update: February 3rd, 2007:

While Unslinging my NSLU2 I made the really, really dumb mistake of hitting "Refresh" in I.E. in order to verify that the firmware version had changed. The reasons why this is dumb are not obvious, but I'm not going to explain it here, just don't do it. Anyway, my brand new slug was turned into a worthless plastic box with a single red blinking LED on it. That was it - dead. Except for...
The Sercomm Update Utility. This magical piece of software, that is written for another purpose entirely, will happily search for any NSLU2 on your network, and force whatever firmware you want onto it. It literally took about 30 seconds.
It's gone missing just recently though, so I'm offering mine up for anyone who wants it. It was free anyway, so I'm not asking anything for it, just drop me an email to say why you needed it and what for. Just out of interest.

Sercomm Update Utility

Update: July 13th, 2008:

It's been a long time since I updated anything here, but tonight I managed to get my Linux (Ubuntu) laptop talking properly to both SoundBridges. Full details on the Linux page, but I used the excellent SoundBridge Commander software, available here.