Squeezebox Classic Repair

I’ve had a Squeezebox Classic (Squeezebox 3) for a couple of years, and over that time I’ve been very happy with the functionality and quality of the device. I’m glad that through the transition to Logitech they’ve managed to remain successful in their niche, and I still recommend them to folks looking for a quality media player.

You can’t buy the Squeezebox 3 anymore, but the Squeezebox Touch appears to be the closest comparable product. If that’s not audiophile enough for you, there is always the Transporter. More important than the media player is the encoding format you select for your music (nothing is going to make 64k MP3s sound good). Squeezebox supports FLAC if you’re really serious, and high bitrate MP3s are no sweat either. It also supports non-DRM Apple format (AAC), Ogg Vorbis and a host of others.

I’m a little back level on the server software, but it has been consistently good. The web interface is reasonable and there are some fairly good remote control apps for the iPhone and Android. I run the software on my file server, but there are ways of getting this running on various NAS units as well which is a nice combination.

For various reasons the Squeezebox is at toddler level in our family room. This means over the last few months it has endured countless drops onto the floor. It seemed to handle these well, but the other day I noticed the screen was dark and it was no longer on the network. Initial attempts to reset / reboot the device failed to make any difference. When power was applied to the device, you’d see the TOSLink connector light up (see picture at top of this post), but that was about it. So I had to open it up.

Inside the unit was very clean, and I didn’t notice any soldering quality issues that others had mentioned in the forums. Unfortunately, my first visit inside the box didn’t reveal any actual problems so it ended up sitting on the shelf waiting for me to find some time to investigate further.

Tonight I discovered what was wrong, I should also credit this forum thread for helping me. There is the main circuit board, and mounted on that is a daughter card. Slotted into that daughter card is the wifi card (you can see this stack of cards in the picture above). Apparently the unit will work without the wifi card installed, and it is a part that goes bad for some. I am glad mine is still working, but I run my device over wire anyways. What I didn’t realize the 1st time I looked was the daughter card had become separated from the main circuit board.

Just to the left of my finger tip, you can see a rectangular white connector. I’m holding the board slightly up to show a separation between the two connectors. This is how the daughter card connects to the main board. To help you visualize the orientation, the RCA connector(s) are where the black box is to the right of my finger.

Here is a second shot of the daughter card properly installed. If you look carefully you can see the rectangular connectors are well mated. That was all it took to fix things up. You’ll need a torx t10 or similar screwdriver to open up the device. There are 2 screws securing the cover, then a further 4 inside holding the main board to the case.

Installing IBM Support Assistant on Ubuntu

The IBM Support Assistant (ISA) is free (cost) software from IBM that helps with problem determination for IBM software. From my point of view it is most useful for being a gateway to some of the tools for looking into Java problems. Two of particular note are the Health Center and Garbage Collector and Memory Visualizer – great tools for checking into Java performance.

The software is available for Linux, but in RPM format. It is quite easy to transform an RPM file for use with a Debian based system such as Ubuntu. I’m running Ubuntu 10.04 Lucid Lynx (LTS).

  1. Install Alien
    sudo apt-get install alien
  2. Convert the RPM into a deb package (including scripts)
    sudo alien -d --scripts support-assistant-4.1.2.00-20101123_1610.i386.rpm
  3. Install resulting deb package
    sudo dpkg -i support-assistant_4.1.2.00-20101124_i386.deb

As far as I can tell, a Java runtime is included in the download. My system already had Java installed, and as these are tools for analyzing Java you will probably want Java installed. I’d suggest you get a copy of the IBM JDK 6, but I’m a bit biased. (you may get a chuckle out of the fact that getting the IBM JDK on Ubuntu will require you to do some additional installation tricks).

Once installed you just have the workbench. To get the tools you’ll need to add them. The first launch should guide you through this process. If not, you can get there via the Workbench menus:

It may take some digging here as there are lots of options, but you want the “IBM Monitoring and Diagnostic Tools for Java – Health Center” and “IBM Monitoring and Diagnostic Tools for Java – Garbage Collection and Memory Visualizer” which should be in the “JVM Based Tools” category.

Convert DVD for PS3 with 5.1 under Ubuntu

There are many, many questions on how to convert video to be suitable for streaming to the PS3 – and as many solutions. Some of the issues I ran into are due to the configuration of my home theater, and others were because I was trying to accomplish this under Linux.

My setup for playback is a PS3 connected wirelessly (but wired will work fine) to my home network. The PS3 outputs the video over HDMI, and the sound over TOSLink. I run XBMC on my Ubuntu desktop to serve up the video content stored there.

The first, and most obvious path to success is to use HandBrake – it is available across platforms and is simple to use. More recent versions have dumped the specific PS3 encoding options, but the iPod/iPad encoding settings seem to create videos that work just fine in my experience. Where Handbrake fell down for me was that the default encoding settings change the audio into stereo. I’ve got a 5.1 setup and wanted to keep the surround from the DVD.

HandBrake will let you create an AAC 6 channel encoding if you poke around a little in the configuration. Sadly for me, the TOSLink connection does not have enough bandwidth to handle 6 channel PCM, so the PS3 re-encodes the 6 channel mix into a 2 channel mix. This was a bit of a downer after a 2hr encode. If you have your audio going over HDMI, or don’t care about 5.1 then HandBrake may be the perfect solution.

It is also worth mentioning that ps3mediaserver can handily deal with .iso files (and lots more) and re-encode on the fly. I specifically didn’t want to go this route, for no reason other than I didn’t want to be bothered to set it up as I already had XMBC handy. I’ll assume there are others out there as stubborn as I am and they may find this useful.

My path to success turned out to be using k9copy to create an .avi file from the DVD that contained only the movie and the AC3 5.1 sound track. Then I used ffmpeg to convert that .avi file into a VOB format file that the PS3 would accept for streaming.

ffmpeg -i video.avi -acodec copy -vcodec copy -r 23.976 -f vob video.mpg

Once done (and it was fast as there is no actual re-encoding happening in the ffmpeg step) the resulting file streamed just fine from XMBC to my PS3 over wireless. As with most solutions, I spent plenty of time banging my head on more complicated paths until arriving at this very simple solution. I do have to give credit to a blog post that helped me reach the ah-hah moment. What I really like about this solution is the video and audio are exactly what appears on the DVD, only the wrapper they are stored in has changed: k9copy extracted the bits from the DVD that I wanted to have, and ffmpeg fiddled the container around to make the PS3 happy.

I’m still a huge fan of HandBrake and will continue to use this for converting video for portability (Android phone, iPhone, etc). However, k9copy has earned a place in my video conversion toolbox.