A geek’s thoughts on various stuff
14 Jul
Over a year after it began, the whole-house-audio project is complete. 4 rooms around the house can now be filled with the sound of any of (currently) 4 audio devices thanks to a mixture of hardware and software.
The project had a slightly rocky start, with a prototype not functioning at all and partly destroyed amplifier (which was thankfully fixable by replacing a couple of components). A software alternative was considered at one point, to avoid too much expensive hardware. The hardware solution proved to be less complex and more likely to work.
The living room, dining room, kitchen and master bedroom are host to a pair of speakers each, connected to matching 240W rack-mounted amplifiers housed in my home-made full-height 19″ rack cabinet. The cables that carry the audio signals to the speakers were installed along with 24 runs of CAT5 before moving into the house.
The audio is routed to the amplifiers via an 8×8 VAMS-0808 AV matrix switcher, which allows the 8 outputs to take their inputs from any of the 8 available sources. Only 4 of each are currently in use, so there’s plenty of room for expansion.
4 audio sources are connected via simple custom-altered CAT5 cables, which simply transmit line-level signals over the existing twisted pair infrastructure installed in the house. These sources are currently the DAB radio in the kitchen, the TV in the living room, the computer in the dining room (for playing CDs) and a second DAB radio in the master bedroom.
I’ve written the software to control it all using .Net (C# of course), running on mono on linux. There are four components to this:
There is currently just the one controller front-end, located in the dining room. To listen to the kitchen radio, for example, all that is necessary is to select the ‘Kitchen DAB Radio’ option from the main menu, then select which of the 4 rooms to play it through - or all of them if you are going to be wondering around most of the house.
Thanks to building the web interface with iUi, the system is compatible with the iPod Touch and iPhone, so they can instantly act as frontends for audio control. A second fixed controller may be added in the master bedroom in time, if there’s enough money available. Each front-end costs about £200 in hardware, depending on what bargains can be found on eBay.
The matrix switcher supports both audio and video. Only the audio channels are used at the moment, so there is the very real possibility of using the remaining 4 output zones to connect to TVs around the house and adding some AV sources. This way it’s instantly converted into a whole-house-AV system. The video signals can be carried over the twisted pair CAT5 cables like the audio, but will require a little more hardware to preserve quality. This hardware is relatively expensive, although savings can be made by building the equivalents by hand. Following the tradition of this project, that’s probably what I’ll do. I have done it before while I was at university and it works beautifully.
12 Jul
One thing that has been lacking since the first build of the rack is ventilation. With both sets of doors closed, the inside can get quite warm, especially when iron is turned on. Not any more though, having just completed the installation of 2 active ventilation zones, lighting and a low voltage power supply system complete with rack-mount control panel.
Air is drawn in at the bottom of the rack by 5 quiet 80mm 12v fans, positioned behind a perforated 2U panel inside the front panel of the base. The air is blown vertically into the cabinet from the bottom through a similar 1U perforated panel. Although the draught is barely noticeable, the difference it makes to temperatures at the front of the rack is significant.
With this ‘air curtain’ alone though, the back of the rack still gets very warm. To solve this I’ve installed a relatively huge 200mm ‘Big Boy’ fan into the newly-added top of the cabinet. This sucks out the warm air and dispenses it into the containing room. Together these fans keep the entire cabinet cool.
To power the fans I’ve used an old ATX power supply. In order to make replacement easy when the supply fails, no modifications have been made to it. Instead, I bought a 20-pin molex connector so that I could just plug the ATX connector straight into my system.
The PSU is connected to 4 switches that are mounted on a 1U blanking panel in the front of the rack. I wanted some fancy switches, so I splashed out on some nice chromed illuminated ones from China (via eBay). There’s one green DPDT switch, which switches the PSU on and off, and three blue SPDT switches which control power to the two fan systems and some lighting.
The lighting illuminates the front of the rack, and is there purely for decorative purposes. I had considered using cold-cathode tubes, but the seller that I got the switches from also sells strips of LEDs encased in a flexible transparent rubber-like substance. They are sold in various lengths, but I thought 96cm would be OK for what I wanted (at the time I bought it to experiment with, thinking that it could illuminate the wall behind my desk). This strip is now mounted on the left-hand front door.
10 Jul
The audio system that I’m building requires 2 low-power computers: 1 for the touchscreen controller (not using an iPod Touch for the moment) and 1 to act as a webserver and serial-console server.
Once again eBay has come to the rescue, and by searching for ‘geode’ - a low-power processor for Thin Clients & Small Form Factor (SFF) PCs - I found the 2 machines that I needed. These are the specs:
magnesium (the black one)
£70 + P&P
potassium (the grey one)
£35 + P&P
Magnesium is used as the client machine, and potassium runs a custom-made webserver and the control software for the VAMS-0808 Matrix Switcher.
Both came pre-installed with Puppy Linux, a lightweight distribution designed for low-power machines such as these. It runs surprisingly quickly, but to make it easier for me to maintain I decided to install Ubuntu.
On such slow computers it took many hours to get Ubuntu installed on magnesium alone. I initially installed to the CF drive that came with the machine. However I found it to be quite slow, so I followed a guide for running Ubuntu via network boot and removed the CF disk. I did the same for potassium. Both booted off of the fileserver, boron.
Unfortunately during installation, I found that the slower of the machines has a tendancy to overheat causing the machine to hang. To get Ubuntu installed I had to remove the case. This has now been rectified by installing a blower to get at least some air circulating. This is the only fan in either of the machines. Magnesium gets quite hot but has never crashed because of it. It also sits in a cooler environment, and is much better engineered.
Sadly I’ve been forced to install Windows XP on magnesium purely because I couldn’t get the touchscreen to work under linux despite spending more than a day trying to. While it was detected, and it detected touches, the calibration was completely off and there was no way to configure it. Rather than waste any more time I decided to switch to Windows and everything has worked beautifuly since then. To accomplish this I’ve had to reinstall the CF disk since as far as I know XP Pro can’t do diskless booting.
Shots of these computers in use and more information on their roles to come soon.
15 Jun

One of the things that has been lacking in my bedroom is a TV. I can watch recorded TV programs, DVDs and other videos on my PC, but not at the same time as relaxing on my bed. While I had a week off work I was looking around the Dabs website and ventured across a real bargain of a TV (now discontinued). It supports full 1080p HDTV as well as being a relatively huge 37″ all for just £539. I couldn’t pass this by, so I spent a while doing investigation work and finally decided to take the plunge and buy the thoroughly indulgent item.
When I designed the rack, the idea was that I would eventually get an LCD TV and it would be mounted to the side of the rack. However, it now contains so much equipment that the weight has become a bit of a concern. To avoid problems with the rack castors collapsing under the load - or even the floor of my bedroom doing the same - I decided to mount it in a more traditional location, on the wall at the foot of my bed (though I had to turn my bed around to make it the foot).


Now I needed something decent to connect it to, with the ability to run MythTV and watch video at possibly 1080p resolution. Boron used to live in a HTPC case, but it started getting a little crowded and warm and with the construction of my rack the innards were moved to a 19″ case. That meant that I’ve had a spare high-quality case lying around doing nothing for a while. Now I had the opportunity to bring it back into service.

The Core 2 Duo in my gaming machine has done nothing but impress with its performance and cool running, so I knew what I wanted to base this new machine around. The E7200 2.53GHz was the cheapest Core 2 available on Dabs, so into the basket it went. I wasn’t too bothered about having a high-spec for the rest of the system, and indeed it needs to be farily quiet and cool so for graphics I went with the Asustek Radeon HD3450 256MB and a cheap-but-capable Gigabyte motherboard.

The processor ended up getting swapped for the slightly slower one in aluminium, so I got a small upgrade for gaming at the same time. For the OS I’m currently experimenting with MythBuntu for amd64. I’ve also taken another look at LinuxMCE, which I might give a go some time.

The new machine was named barium, and sits fairly neatly under my bedside table.
15 Jun

There are 4 audio zones in the house, each requiring it’s own amplifier and pair of speakers. I’ve just purchased the last of the amplifiers, which completes the selection of hardware that’s necessary within the cabinet. I took the opportunity to rearrange the order of things in the rack a little to tidy things up.





15 Jun

We recently had our latest electricity bill in, and it was pretty huge. To try to reduce the next bill, reduce the heat output of the cabinet and speed up the network I decided to combine 5 switches into one.
Before now all devices in the house have been connected to one of 3 switches: a 5 port gigabit switch (4 usable ports, 1 for uplink), a 24 port managed 10/100 switch, and a 4 port managed gigabit switch (3 usable ports, 1 for uplink. These switches used a combined 51 watts, and are on continuously, although lately I’ve switched the 4 port gigabit switch off to reduce the noise levels in the cabinet.

I have now replaced these 3 switches with a single 24 port unmanaged gigabit switch. It was a 2nd hand purchase from eBay, and had 2 faulty fans. I’ve replaced one of the fans and left the other disconnected with no problems so far. This switch uses about 17 watts of power.

In addition to consuming 34 watts less, I’ve also freed up 1u of space. With all the amplifiers, computers, networking equipment etc. space is starting to become a premium and the weight of the rack is becoming a concern.
15 Jun

A recent electricity bill has prompted me to investigate how much power is being used by each device in and around the cabinet in the hope of figuring out what can be replaced to reduce running costs. I’ve had a power monitor from Maplin for a while, but most of the time it’s been monitoring total power consumption of the rack.
The audio system components haven’t been measured yet because at the moment they aren’t ready to drive a load and measuring the idle consumption wouldn’t be very meaningful. The amplifiers will be switched off when not in use and won’t be used that much compared to the items listed above.
Based on the data above, I have replaced the 3 switches with 1 switch. I have been investigating replacing boron with a collection of NAS devices for storage and a low-power ITX-based machine for services such as DHCP and DNS. However this is currently quite an expensive option.
Aluminium is a gaming-spec PC so will always consume quite a bit of power, however I’ve got some software under development which should mean that I won’t need to keep it on to download the occaisional torrent - that job could be offloaded to boron or my hosted server.
Barium is only on when I want to watch a DVD, a video or recorded TV from MythTV. It was specced to be quiet and consume as little power as possible with a Core 2 Duo CPU, 1GB DDR2, a passively cooled HDCP-capable VGA/DVI graphics card and a quiet PSU.
I’m going to continue to look at reducing consumption not just in the rack but around the rest of the house.
12 Jun
Thanks to the chip manufacturer of the cheap serial port card, I’ve managed to get some extra serial ports working. If you can’t figure out how to get additional serial ports working, I recommend this guide [ZIP, 792KB] available from the Moschip driver download page. It should be valid for most models of serial cards, and explains how to add more than the standard 4 ports that most linux installs have.
Now that this problem is out of the way I can continue with writing the remote control software for the audio system.
11 May
Having put the 4 port serial card back into boron, the onboard port now works again, so I’ll probably continue with developing the software. The expansion card still doesn’t work though, so I’ve ordered a cheap 2-port card from eBay in the hope that a different card will work.
Before reinstalling the card I upgraded Ubuntu to see if that would help (it didn’t) which brought its own scary moment of the 1TB RAID volume being dead. That too is solved now - the drive letter assignments had changed.
10 May
Today I started development of the software to control the whole-house audio system. It’s written in C# and based on the MiniHttpd project - a small but powerful implementation of a web server in C#.
However, when it came to testing the first bits of code, I’ve envountered a problem. A while ago I bought a 4 port RS232 serial card to go into boron, because the motherboard only has 1 onboard port which isn’t enough for the UPS, the matrix switcher and probably some other things such as connections to network switches.
The new card shows up fine in lspci, seems to be ok when running setserial -gb, but when trying to send or receive data nothing happens. Thinking it might be a conflict with the onboard port, I went into the BIOS and disabled it. Still nothing. So I swapped the card into another machine and re-enabled the onboard port in boron’s BIOS. Now the onboard port doesn’t work either.
I’m going to contact the manufacturer of the card for some help. But for the onboard port I’m completely stumped. It too shows up in lspci and setserial -gb (though only when running using sudo, which wasn’t necessary before) but any attempts to use the port result in various I/O error messages. I was worried that the new card may have killed the serial communication capabilities of the matrix switcher and the UPS, but I’ve confirmed that at least the matrix switcher still works by connecting it to my test machine, iron.
If anyone thinks they might know what’s getting on, please get in contact via the comments for this post - I would be very greatful for any help.