Rio Karma Review, Pt IV: Secret Order of the Karma

Rio hasn’t published any detailed specs for the Karma beyond the usual product-sheet stuff, so I’ve gathered what backend information I could find about its inner workings. A big thanks to Dave Marsh and everyone over at Riovolution for digging this stuff up.

The CPU is from a company called PortalPlayer. It’s a neat jack-of-all trades chip specifically designed for portable media devices, series PP5002. It’s got two 90Mhz ARM7 RISC processors running symmetrically in 32-bit. One controls the decoding and signal output, while the other handles the interface (buttons, LCD) and hard-drive. It also provides the UltraDMA66 bus and ethernet/USB functions.

The actual buffer memory is only 16MB. It’s been stated that most of that is taken up by fonts and firmware, so the Karma must be making good use of the Hitachi’s APM capabilities to buffer so well and still preserve battery life.

The onboard OS is ECOS, which is a *nix-ish (POSIX-compliant) system for embedded devices. Given the CPU, I had originally figured on RTOS, but it looks like Rio’s gone for the open-source choice instead.

The onboard filesystem is a proprietary journalling FS, and Rio’s been tight-lipped about its specs, but they are planning a migration to FAT32 for the sake of USB Mass-Storage Capability (MSC). Usually, this would spell disaster, as it does with the iRiver, but Rio’s engineers have sworn that they’re going to get it absolutely right. Given their track record so far, I trust them, but I’d be very curious how they manage it without adding fragmentation or reducing battery life.

As far as the onboard database goes, nobody knows. Rumor has it that it’s a grandchild of the software from the venerable Empeg, a Linux-based dashboard mp3-player which was purchased by SonicBlue back in 2000. This seems feasible, as well as being sound technical sense.

Actual boot-time for the Karma is The equalizer is fully customizable, but the Karma comes with five presets. Default center frequencies (from top to bottom) are:

12kHz

4kHz

1kHz

250Hz

80Hz

with a width of 2 octaves on all bands.

The actual presets are:

Rock: 4, -2, 0, 6, 0

Pop: 2, 0, 6, 0, -2

Jazz: 2, 0, 1, 0, -3

Classical: -3, 0, 3, 0, -3

Trance: 4, 5, 0, 0, 6

If you know anything that should be included here, let me know.