How to make the Neuros play Vorbis files

I bought a Neuros audio player recently, because the prices dropped to a very reasonable level. When it arrived, I naturally wanted to make it play Vorbis files, preferably using only my Debian system. This turned out to be possible, but I ran into several problems along the way. I couldn't find any single comprehensive howto document which covered all of this, so I thought it might be worthwhile to write this.

Introduction: My computer

My computer is a generic i386 box (Athlon XP) running Debian GNU/Linux unstable ("sid"). It's got a VIA KT400 motherboard chipset, and three of the USB controllers show up in lspci as USB Controller: VIA Technologies, Inc. USB (rev 80). The fourth shows up as USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82).

I'm running Linux 2.4.21 at the moment; this is a custom kernel, with almost everything configured as a module. (I like having the flexibility to load or unload modules for future hardware, and to be able to change driver parameters without rebooting.)

Step 1: Get USB working

The first challenge was to get USB mass storage support working under Linux. I'd never done that before. I've used my digital camera with OpenBSD, where it's extremely simple -- literally plug and play with the generic kernel. Under Linux, it's not as simple.

Apparently just loading the usb-storage module is not enough. The module will load, but it doesn't do anything! You have to load a "host controller" driver as well. This is not obvious, and not well documented.

    modprobe uhci
    modprobe usb-storage
    echo uhci >> /etc/modules
    echo usb-storage >> /etc/modules
  

Some people may have to use a different host controller driver than uhci. If uhci doesn't work for you, then try usb-uhci or usb-ohci. Or maybe usbcore will be enough -- some of the older documentation I've seen didn't mention controller drivers at all, so you may have to dig around a bit.

When you've done this, you should be able to plug the Neuros into your USB port and see a new SCSI disk appear in the output of dmesg. If you see that there's a SCSI disk detected, but you can't find the name of the device, it's probably sda. Verify that the device is correct by probing it for a partition table:

    fdisk -l /dev/sda
  

You should see something like this:

    Disk /dev/sda: 20.0 GB, 20003864576 bytes
    16 heads, 32 sectors/track, 76308 cylinders
    Units = cylinders of 512 * 512 = 262144 bytes

       Device Boot    Start       End    Blocks   Id  System
    /dev/sda1             1     76309  19535024    b  Win95 FAT32
  

Now you need to arrange for your normal user account to be able to mount it. Add a line like this to your /etc/fstab file:

    mkdir /neuros
    echo "/dev/sda1 /neuros vfat user,noauto 0 0" >> /etc/fstab
  

From this point, everything you do (except for some software installation, shown below) should not require root permissions. You should be able to mount the Neuros by typing mount /neuros as your normal user account. Don't forget to unmount it (umount /neuros) when you're done with it, before you disconnect the USB cable.

Step 2: Upgrade the firmware

My Neuros was shipped with firmware version 1.38 (which you can see by reading the version.txt file on the Neuros). To play Vorbis files, you need at least firmware version 1.40. So you need to download the new firmware and install it on the Neuros.

    cd
    wget http://www.neurosaudio.com/files/woid_0140_beta.exe
    cd /tmp
    unzip ~/woid_0140_beta.exe

    Now, unmount the Neuros and turn it off by holding Play.
    Unplug the power cord and the USB cable.
    Hold the Down button while pressing Play to turn it back on.
    Connect the USB cable.
    Mount the Neuros, copy the firmware to it, and unmount it:

      mount /neuros
      mkdir /neuros/Firmware
      cp Firmware/woid.hex /neuros/Firmware
      umount /neuros

    Wait until the Neuros says USB IDLE.
    Unplug the USB cable.
    Follow the instructions on the Neuros's screen.

    rm Readme.txt Firmware/woid.hex
    rmdir Firmware
    cd
  

Obviously, the instructions above will give you firmware version 1.40, which is the latest "beta" version of the firmware as of this writing. But version 1.40 is not fully optimized for Vorbis decoding at higher quality levels (above quality 4 or so). If you have high-quality Vorbis files you want to play, you'll probably have to get a pre-beta firmware from open.neurosaudio.com. The instructions for that are basically the same as above, just substituting the filenames and skipping the unzip.

Step 3: Install Positron

To manage the Neuros under Linux, you need a program called Positron. To make it manage Vorbis files, you also need some Python module packages. You can get all this in Debian (unstable):

    su
    apt-get install positron python-pyvorbis
    exit
  

Installing python-pyvorbis will also bring in python-pyogg.

Now, as your normal user, you need to configure Positron. There are two steps to this, one of them obvious, the other non-obvious. Make sure you have upgraded the firmware to version 1.40 or higher before you do the second step!

    mount /neuros    (if you haven't yet)
    positron config

    Now, edit your ~/.positron/config file and change the last line
    from oggvorbis_support=false to oggvorbis_support=true (for some
    reason, the configuration didn't do this for me, and didn't even
    ask me about it or warn me that Vorbis wouldn't work until I
    did this).
  

Step 4: Where's my database?

When I booted up the Neuros, it ran through some initialization steps, but they seem not to have worked properly. I was supposed to have a database directory called WOID_DB on the Neuros -- but it wasn't there! Everything I tried failed because it expected this database to exist, and I couldn't find clear instructions on how to create it. I was nearly reduced to trying to install the Windows software on a Windows machine (eeek!) -- but fortunately my wife was using the Windows machine, so I had to work harder at finding an answer.

It turns out that the Positron software can create the database -- but only if you help it by creating a couple directories first.

    Skip this step if you already have a database on your Neuros!

    mount /neuros   (if you haven't yet)
    mkdir /neuros/WOID_DB
    mkdir /neuros/MUSIC
    positron rebuild
  

Step 5: Copy your music to the Neuros

Well, at this point all the hard stuff is done. If you looked at Positron or its documentation, you probably figured out how to use the positron add command to copy files over. But just in case you haven't:

    mount /neuros   (if you haven't yet)
    cd /where/your/music/is
    positron add file1.ogg file2.ogg file3.ogg ...
  

You can also add MP3 files.


Greg Wooledge <greg@wooledge.org>