Positron Developer's Guide: Quirks and other Common Pitfalls

As with any device, the Neuros has some quirky behavior that can trip up a developer. This document collects these issues together. Please help us keep this up to date! Email volsung@xiph.org with problems and solutions you discover.

USB Interface

Some of the most frequent problems experienced in testing are problems related to the USB support in the Linux kernel. The kernel might not recognize the device as a USB Mass Storage device, the USB modules might freeze up during I/O, and sometimes the whole system might go down. This seems to be strongly dependent upon the kernel used:

Of course, this list is hardly exhaustive. Please send me more reports!

USB Issues with MacOS X

Another class of problems is caused by a buglet in the USB code on the Neuros. The Neuros does not respond to the "Mode Sense" command defined in the USB Mass Storage Class standard. The Mode Sense command is used by the host to determine if the USB device is read-only or read-write. When the host computer sends a Mode Sense command to the Neuros, the request is ignored, or fails in some other way.

Different operating systems appear to deal with this failure in different ways. Linux and Windows just assume the device is read-write. OS X assumes the device is read-only. The result is that it is impossible to update the database on OS X because the Neuros cannot be written to. Because Linux and Windows assume the device is read-write, there is no problem there.

The only OS this is known to cause a problem for is Mac OS X. Unfortunately, the workaround requires a trivial patch to the USB Mass Storage component of Darwin, which I doubt many OS X users would be willing to install. (It might be possible to deliver the update through a friendly installer, but I don't know about all the issues and pitfalls with updating core OS components in OS X.) Fixing the firmware is also a possibility, but there has been no timetable announced by DI for such a patch.

Filenames

The Neuros uses a FAT32 filesystem, so there are several things to consider while working with it from a UNIX system:

Database