Rennschnecke


The Linksys NSLU2 was a simple USB NAS device, but it had quite some attention when it was opened. Back in those days there where no cheap dev boards at hand, and people did crazy stuff with the little thing. I got mine at the (events.ccc.de/congress/2014/wiki/)31C3 for a bottle of Mate. Its a bit outdated by now, but easely fast enough too play some music.

Adding serial


The nslu2 has an internal serial port (J2), which only needs to be populated (see more $file heere).
  • The pinout is (from the leftmost marked pin): +3V3, RX, TX, GND

I intend to use it to communicate with a μC (ATTiny2313 i think) to drive a Display, read a rotary encoder and switch some relays. the Relays need 5V, so the 3v3 is useless. I tapped into USB 5V instead.

The Serial Port has 3v3 Level. Thats no problem for TXD since the AVR recognizes everything above 3V as High. But for RX i need a level converter. In this case, a simple voltage divider is soldered directly onto the pin header.

I use 1k between GND and RX and 680 Ohm between RX and RX Pin.
GND (J1 Pin 4)    --==1k ==--\
                              |-- RX (J1 Pin 2)
RX (from outside) --==680==--/

Internal USB Stick SSD-alike thingything


The USB chip on the nslu has some unused ports (see more $file heere). I used one to connect a internal USB Stick as a "SSD". I used hot glue to fix the wires. The good thing about hot glue is that it can be removed rather easely and without remains.

I hot glued the Stick onto the battery. It fitted there well.

then i relocated the sticks activity led to the optical guide of one of the internal leds. Now it can be green, red or orange :)

These are the pitty remains of an afternoon of tinkering.

Software


I installed Debian Wheezy (see $file heere and $file heere). With Debian, the rest of the setup is strait forward.
  • alsa-utils (mixer, volume restore at boot, ...)
  • nfs-common (i have my music collection on a nas)
  • mpd

The nslu2's Processor lacks a FPU, but mpd comes with codecs with fixed-poitn arithmetic. Be sure to use the internal sample rate conversion, libsamplerate uses floats.
samplerate_converter            "internal"

The nslu2 has 32mb RAM, thats enough for mpd and nfs. Its enough to have two bash, a screen and alsamixer run alongside. When using ncmpcpp or elinks i notice a bit of swapping here and there.
Path: 28.871, Handler: 8.695, Options: 12.309, Content: 7.033, Template: 0.034, Render: 9.793