Qball's Weblog
Setting up a MPD Music Box.
I got my hands on a Juli-C400R board. (Specifications) (foto)
This is a nice little board that can run off a simple +12 & +5 Volt power supply. It can run fan-less (later more on that) and should be fast enough to run MPD + a stream output and some other software.
So below a quick description about setting it up as MPD + other stuff server:
Goal of the box
The main purpose of the box is to run MPD, allow me to stream (via ssh forward) music from university.
For the rest I have the following tasks planned:
- Simple web interface for MPD.
- IR Remote control.
- IR Control off my stereo. (turn off/on etc)
- Turn light on off (it has some General Purpose IO (GPIO) I might be able to abuse for this)
The hardware
A quick overview of the system:
- CPU: Celeron 400Mhz
- Memory: 512 MB
- Harddisk: 1GB CF Card. (contains only /boot + grub)
- USB: 2x usb 1.0 2x usb 2.0
- Network: 2x 100mbit
- The root system is placed on NFS, mostly because I want to keep the box as quiet as possible and I did not want to spend lot of money on a large CF card.
- OS: Debian sQueeze
- Soundcard: (temporary) Behringer UCA202
First thing I did was ditch the power supply it came with, this was a switched 100W ATX supply making a horrible beeping noise (so this was a no go). Remove the 6000 RPM fan blower. To make long story short, I removed everything beside the board.
The board can be powered using a normal molex connector, so after digging up an old external CD casing I had a nice fanless, noisless power supply.
edit: This one broke after 2 weeks, so now it is powered for the time being by an atx PSU.. Needs fixing.
So after setting up the Debian on the NFS root and moving /boot and grub to the CF card.
Doing some test shows that the CPU stays a nice 30 degrees, the chipset is another story (it almost feels like an early atom system), this one goes up to 60 degrees.
I added a nice large 12x12cm fan that keeps the chipset a nice 25 degrees. It does however make more noise then the 13 dB they mention (it kinda runs unstable) But doable.
At the moment everything runs fine. Need to add a case later.
Software
- OS: Debian squeeze
- kernel: 2.6.32
- mpd: 0.15.9
- lighttpd
Problem:
Update-grub cannot wrap his head around root being on nfs. So it cannot correctly install the package. So every time I install something, it tries to finish configuring grup-pc and I get a fail, still need to fix this. (Fixed this by modifying the postinst script).
Case
I am not really one to care for casings and stuff like that. So it sits kinda bare next to my stereo at the moment:
(foto)
Monitor
Thinking about getting a samsung U70 as a small status monitor. These are to expensive for now. So I might just use a 4×16 character display for the time being.
Infrared
(foto)
Light control
The general IO proved to be more tricky then I thought, to read/write to it I needed to send the bios interrupts that would then read/set the value. So this required writing a kernel driver. To much work for the time being.
I solved it by letting a small atmel AVR control a few relays, a display and some other hardware and be controlled by the machine via a serial interface. (The atmel acts as temperature sensor, 4 channel light control, clock, 64 item timer (programmable time+weekday))
I will add a lot of stuff later.