Positron Developer's Guide: An Overview of the Neuros

This document describes the design and features of the Neuros from a developer's perspective. It is not meant to be comprehensive, but rather it covers the aspects of the Neuros most likely to be of interest to someone writing software for it.

General Design

The Neuros is a portable music player designed to play compressed music formats, like MP3 and Ogg Vorbis, as well as FM radio. It can also record to MP3 from either a microphone source or the radio. A modest FM transmitter also allows the Neuros to broadcast audio to a nearby FM radio, thereby allowing cordless playback to things like car radios and home stereo systems. The "HiSi" feature allows a 30 second clip from a song on the radio to be recorded in MP3 format and later identified when the Neuros is attached to the host computer.

The Neuros itself is a modular device composed of both a main unit, containing the DSP, flash memory and other electronics, and a backpack containing the battery and optionally a hard disk. This allows the device to be upgraded by replacing the backpack to provide new capabilities. Currently, the Neuros is available in the following configurations:

The HD backpack is sold separately, and can be attached to the 128 MB main unit. All configurations are handled the same way by the synchronization software, with one exception documented in the File Structure section. Note that the current configuration of the Neuros cannot be straightforwardly detected in software. Positron decides whether the HD or the flash memory is in use by looking at the size of the filesystem of the mounted Neuros.

Interface

All interfacing to the Neuros is done through a USB 1.1 port. It presents itself as a USB Mass Storage device, so the standard USB drivers included with nearly all modern operating systems are used to communicate with the Neuros. The Neuros can then treated as an external drive with a single FAT32 partition to be mounted using the standard operating system tools. Beyond that, no special drivers are needed, which makes the Neuros (in principle) very portable between operating systems.

When connected to a host computer via the USB port, the Neuros goes into a synchronization mode where it simply acts as a passive hard disk. The host does not directly send commands the Neuros, but rather copies files and manipulates a database stored on the filesystem, which is then read by the device firmware when the device is disconnected for normal use.

Database

Because the Neuros appears as a standard external hard drive when attached to the host computer, any type of file can be stored on it, regardless of whether it is a recognized audio file format. Rather than spend extra time dynamically generating a list of available music files, a database of music files is maintained on the device. Only those files listed in the database will be made available for playback. The database also provides the ability to index files based upon the contents of various fields in the database, like artist or genre. It is the job of the synchronization program running on the host computer to update the database to reflect changes in the list of files available for playback.

There are several databases kept on the Neuros. One lists all the audio files, but others are used to keep track of HiSi clips which have been successfully identified, cannot be identified, or have not been identified yet, as well as the listing of all the music files stored on the host computer.

For more information about the database format, read Working With the Database.

File Structure

The file structure of the device is:

/        - root directory
/sn.txt  - contains the serial number of this Neuros
/WOID_DB/ - directory for all databases
/WOID_DB/audio/ - database of audio files stored on the Neuros
/WOID_DB/failedhisi/ - database of HiSi clips that could not be identified
/WOID_DB/idedhisi/ - database of HiSi clips that were identified
/WOID_DB/pcaudio/ - database of audio files stored on the host computer
/WOID_DB/unidedhisi/ - database of HiSi clips that have not been identified yet
/WOID_SYNC/ - not sure what this is for
/WOID_HISI/ - (Optional) directory for HiSi MP3 clips
/WOID_RECORD/ - (Optional) directory for recordings (FM or Microphone)

Also note that the Windows Neuros Sync Manager and positron use /MUSIC/ by default for storing music tracks, though that is in no way required.

Pathnames in the databases use a strange hybrid Windows/Unix-like syntax. The root directory on the Neuros is called "C:" if the Neuros is wearing the hard drive backpack, and "D:" if the flash memory is being used. Forward slashes are used instead of backslashes. For example, C:/WOID_RECORD/Mic 02-27-01 17-19-00.mp3 is a possible filename for a track saved on the Neuros hard drive.