Introduction: Homebrew Sonos Music Box, Sort Of...

PARTS:

Oak box:

1 piece 300*300 mm (bottom)
2 pieces 300*200 mm (2 sides)
2 pieces 300*(200-thickness) mm (2 sides)
4 pieces 50*50 (feet)

Lid:

4 slim pieces of whatever wood you have. However oak is not recommended as it is quite hard.
4 smaller pieces to use as stops on the inside of the lid frame.
Speaker cloth 400*400 mm

Electronics:
Creative T10 Speakers
Apple Airport Express (see bellow for hardcore geek alternative)
Wall mounted power socket with space for two plugs (to be placed inside the box)
1.5 meter power cord with plug
Audio cable (Speakers <-> Airport Express)

Tools:

Plate joiner (just google it)
Grinder
etc...

Hardcore geek alternative hardware:

Beagleboard REV C
Wifi USB dongel (mine was with the zd1211rw chipset)
5V power adaptor
SD memory card
IDC10 to DB9 adaptor
NULL modem cable



Step 1: Building the Box...

Building the box itself is fairly straight forward. You need to have some experience working with wood if you want the end result to look really nice.

1. Start by cutting out all the side pieces and sand away all the rough edges.

2. Cut slices into two of the side pieces using the Plate joiner. (see this youtube for an example). I did not cut 45 degree. But instead I joined the edges of two sides to the faces of the two others. My way is much easier ;-)

3. Put all the sides together and glue them in place. Do not forget to use clamps.

4. Measure the bottom and cut the piece to size.

5. Since you will not be looking at the bottom I decides to simply attach the bottom using screws and glue.

6. Once the bottom is in place, cut out the feet and attach them to the underside.

7. Mix sawdust of oak with glue so that you get a thick paste. Apply this paste to all small gaps you can find. Then wait for the paste to dry.

8. Bring forth the grinder! Now sand the whole thing until you are happy with the result. Oak is hard so it might take some time.

9. Pain the box using linseed oil or some other finish. If you used a rag to clean up excess oil then make sure to BURN the rag, as it might self-ignite otherwise.

Step 2: Building the Lid...

The lid is much easier to build than the box itself. However you have to build the box first as your box seen from above, have probably not become a perfect square.

1. Start by measuring and cutting four pieces of wood. These pieces will make up the frame of the lid.

2. Number each piece and match them to each side of the box.. This is only to keep track of where each piece goes when you nail them together.

3. Cut out some smaller pieces that will go in the inside of the frame. These pieces should be higher than the frame itself as they shall extend into the inside of the box, forcing the lid to stay in place.

4. Join the frame pieces by cutting the ends halfway through, and then simply nail and glue them together.

5. Nail and/or glue the inside stops into place.

6. Attach the cloth to the frame using a staple gun.

Step 3: Putting in the Speakers...

By now you should have a box and a lid. However the main part is still missing.

1. Start by measuring where you want the speakers in the box. Your box might be a completely different size than mine, so make sure that you have enough space for everything long before you got to this stage ;-)

2. On the backside of the T10 speakers there are for deep holes which I used for mounting the speakers to the bottom of the box. To fix them in place I used very long plastic expander anchors. These  fitted perfectly into the holes and once I inserted a screw into the anchor it expanded and grabbed hold of the speaker.

3. Measure four points for each speaker and drill a hole slightly smaller than the screw. So that it has some material to attach to as well.

4. With the anchors in place measure where the socket should be and drill a hole straight through the bottom for the power cord. (Mine was in the center of the box)

5. Attach the socket and connect the power chord. If you are unfamiliar with this step then let someone who knows what they are doing perform it.

6. Put the speakers and airport into the box.

Step 4: Playing Some Music...

Your are now ready to play some music on you brand new wireless speaker box. However you need to set up you Airport Express first. Something which I will not go into details about here.

The Airport Express requires a particular configuration software from Apple. This software is only available for OS X and Windows. Since I am running GNU/Linux on all my machines I had to bring it down to work to get it configured.

This made me thinking that it had to be possible to replace the Airport Express with some other not so expensive computer. A computer I could run Debian on, so that I easily could set it up as a Pulseaudio server.

For those of you running OS X och Windows, you will probably be very happy with the Airport Express solution. As it is less cumbersome and is fairly easy to set up.

However for those geeks who wants to make everything a little harder, just so that it works exactly the way you want it to. Please continue ahead...

Step 5: Replaceing the Apple Airport Express With a Beagleboard...

Replacing the Airport Express is not a simple task.

At first I was thinking of using something along the line of an ebox 2300. However this would have made this section quite short as that machine comes with equipped stereo out and it has an miniPCI socket for wifi.

I wanted to try something new  so I bought a Beagleboard.

At this point I could have bough a Beagleboard + Devkit. But I wanted the complete experience of getting it to work on my own.

My first step was to find a HDMI cable, and a 5V power supply. Just to make sure that the board worked.

After reading the complete tutorial BeagleBoardDebian on how to get Debian onto the Beagleboard I tried it out and immediately ran into problems.

1. My NULL modem cable was apparently not a twisted cable so I had to swap pin 2 and 3 on my IDC10 to DB9 connector.

2. Once that was done I was able to get data over the serial port. However I was only able to receive and not able to transmit.

3. I fiddled with it for a few hours until I realized that the holes on the IDC10 is not counted as I thought:

0-1-2-3-4
5-6-7-8-9


But in fact:

0-2-4-6-8
1-3-5-7-9


Once this was remedied I was finally able to interrupt U-BOOT and type in the required lines.

4. My particular USB-WIFI is apparently supported by the default kernel. As it showed up by itself during boot of the Beagleboard. However I needed to install zd1211-firmware to get it working.

5. My Tomato router at home is using WPA2 so the only thing I needed to do was to edit /etc/network/interfaces and adding the following lines:

auto wlan0
iface wlan0 inet dhcp
    wpa-ssid thisismynetworkname
    wpa-psk thisismypassword

6. Now the interface will start on its own at every upstart.

Step 6: Pulseaudio Stuff...

Now when the Beagleboard is ready, and Pulseaudio is installed on it. The only thing remaining is to configure it as a service.

1. First /etc/default/pulseaudio needs to be configured as: 
PULSEAUDIO_SYSTEM_START=1

2. Then /etc/pulse/default.pa needs to be changed to enable native protocol and zeroconf publish

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;10.0.0.0/16
load-module module-zeroconf-publish

10.0.0.0/16 depends on your network.

You also might need to install pulseaudio-module-zeroconf if it is not already installed.

3. Start the Pulseaudio daemon. Then if you are using the Pulseaudio Gnome Panel Applet then you should be able to see your node.

Have a good time with your wireless speaker box ;-)