Intro: Cobalt RaQ Jukebox/Drive Enclosure
Whither the Cobalt RaQ? IT admins who are old enough may remember these lovely little machines. Cobalt Networks came on the scene in the late 90s with a series of cheap, effective, and absolutely gorgeous little rackmount servers. Lots of functions could be controlled via a series of buttons and an LCD screen on the front panel, which itself was adorned with a translucent blue bezel. For a time the RaQ made Cobalt Networks hugely successful. The company was ultimately bought by Sun Microsystems, and then subsequently dissolved in the wake of the dot-com crash of the early 2000s.
Ever since the Cobalt RaQ4 (and its 450 MHz AMD K6 processor) became obsolete, I've wanted to hack one into a drive bay / iTunes controller. When I started running out of space on the Mac Mini which serves as my living room media computer, it gave me the kick in the butt I needed to start the project.
Step 1: The Plan - the Prep
There were two main things I wanted out of this project:
First, I wanted to use Thunderbolt as my drive interface, so that I'd never experience any performance bottlenecks as a result of my connection, and also because I wanted a forward-looking technology (rather than Firewire, which is clearly on the way out). I already had some SATA drives on hand, so I decided to get LaCie's eSATA Hub. At $200, this was the priciest part of the project by far. But as I've said, I was going for speed. A pair of SATA to eSATA cables ensured I was able to connect my drives to the hub.
My second goal was to make the resultant device as "authentic" to the original as possible. I wanted the LCD, the lights, and the buttons to all work. I decided that: a) the buttons would control iTunes and the volume, b) an LCD would display the current track, and c) the status lights would be replaced with a music-responsive, colour LED lightshow.
I decided to keep the original RaQ power supply in order to power my drives (with the help of some molex to SATA power adapters). Everything else was stripped out.
Step 2: Testing the Hub, Mounting the HDDs
The first step was to make sure that my core concept (a drive box) would work. I used the original RaQ drive caddies to secure my hard disks. One was a 2.5" drive and required me to fit an adapter. I had to change the position of the second drive in order to put the hub in a more desirable position (you'll see why later on).
The hub is a perfect fit for the 1U enclosure. It has been designed as its own heat sink, and although I've enclosed it in another box (the RaQ chassis), I haven't had any problems with overheating. We'll see if that's still the case come summer...
Step 3: The Panel Buttons
In order to have my front panel buttons control iTunes, I needed the help of a little piece of hardware called the U-HID (specifically the U-HID Nano). The U-HID basically impersonates a USB mouse, mini-keyboard, or gamepad. You can wire up buttons or other manual controls to its leads, then configure those controls to be whatever keys, clicks, or macros you like.
I cut the button section off from the rest of the front panel's circuit board with a hacksaw. I then soldered some jumper leads onto the back of the board which I would connect up to my U-HID.
The configuration software needs to be run on Windows. There was also a slight hitch: you can't assign the U-HID extended USB keys such as the volume or media keys. Fortunately, there's a light piece of freeware which lets you reassign the keyboard keys in OS X: KeyRemap4MacBook. Even better, you can tell it to ignore Apple keyboards, so my alterations only applied to the U-HID. I configured the U-HID keys F-9 to F-12, and then used KeyRemap to change them to the volume and playback controls.
In summation, up/down controls volume, left/right controls track forward/back, and the"S" button controls play/pause. The final button, "E", I mapped to as a macro, command-period, to stop iTunes playback completely.
Step 4: The Panel LCD
This step was definitely the most challenging one. I chose Adafruit's USB Backpack and LCD Kit, which luckily has an LCD exactly the same size as the original LCD in the Cobalt RaQ. You have to solder the backpack to the LCD yourself (which I did white-knuckled, convinced I would overheat and damage the backpack). Once the soldering was complete, I drilled some holes in the RaQ's front chassis so I could secure the LCD in place.
Getting the LCD to display the iTunes track info required a bit messier of a solution than I'd hoped for. I knew that AppleScript would make accessing iTunes' info a snap. I had hoped that I'd be able to run a terminal command that would allow me to quickly pass a string to the LCD via serial. Unfortunately, the OS X serial console command, screen, is not really designed with that sort of usage in mind. After a lot of frustration, I ended up turning back to CoolTerm, a serial terminal app that I used for testing, but which is also highly applescriptable.
I modified an existing applescript (iTunes Announcer, which speaks the track info) to pass the track data to CoolTerm, which prints it to the LCD. I've attached my applescript source code here.
Step 5: Blinkenlichten
What electronic project would be complete without Blinkenlichten: flashing colourful lights of dubious functionality? Having considered various approaches, I decided that Canakit's 5-LED VU-Meter would be the easiest and cheapest way to add a lightshow to go with the currently playing music. I also bought some orange and blue LEDs to make the spectrum a little more colourful.
After soldering most of the kit to spec, I put the LEDs on wires so that I could attach them to the clear plastic plate which refracts the LEDs' light to the indicators on the front panel. The circuit requires any voltage between 5-14V, so I stuck some leads in the motherboard connector of the original RaQ power supply to draw off the 5V rail. I then put a splitter on the stereo miniplug output of my Mac Mini so that I could feed the audio signal to the VU-Meter. Easy stuff.
Step 6: Finishing Touches and Final Assembly
The last step was to jam… ahem… carefully arrange everything in place and test it all together. In a perfect world, I wish I could choose cables exactly the right length to avoid crowding. But with specialty items like the SATA to eSATA cords, one has to work with what's available.
Finally I'll reveal why I was so particular about the placement of the LaCie Hub. It has a bright blue light on the front which was perfect for lighting up the Cobalt logo on the front of the case. I used some adhesive rubber feet on the inside of the case to keep the hub where I needed it, without altering the hub or permanently adhering it to the chassis.
Step 7: The Finished Product!
The applescript polls iTunes every 3 seconds for new track data to update the LCD, which is why there's a delay in the video above. Chances are I can speed this up to once every second without bogging down the system overmuch.
Depending on how cooling fares, I might add a new pair of the tiny 35mm Sunon fans which are original to the RaQ. It also might be a good idea to add a toggle switch on the back of the unit so that I can disable the lightshow when desired, because somehow I don't think that we'll appreciate it doing its thing during episodes of Game of Thrones. I may also add a solid LED to the lightshow, since the VU Meter only supports 5 LEDs, and the front panel has 6 status lights.
Thanks for reading!
Step 8: EDIT: 2 Years On
Since this project was so well received when I published it two year ago, I wanted to return let people know how it's held up, and what changes I've made.
Hard Drives: The 2.5" model is still in there. I upgraded the 3" from a 320GB to 640GB model, since I needed some extra space for my Time Machine backups.
Power Supply: Most recently, the decades-old original RaQ PSU gave up the ghost. There was no scrounging a replacement, so I had to go for external power adapters. I scrounged a pair from kits such as these.
Lightshow and HDMI: Shortly after I published this, I finally upgraded my audio receiver to an HDMI-only model. This meant that I could no longer use the stereo-miniplug splitter as a solution for sending output to my LED lightshow. However, I recently realized that I could create an aggregate audio device in OS X that would play through HDMI and the stereo miniplug output simultaneously. Apple has instructions on how to do this here. I needed to fiddle with the settings a bit in order to avoid some minor audio distortion. On the plus side, I can easily disable the lightshow by changing my audio output device in the control panel from the aggregate device back to HDMI.