Rockbox port to the Rio Karma
About the Rio Karma
The Rio Karma was a DAP designed by Rio for Diamond Multimedia. It was aimed at a higher market than most other DAPs, primarily the audiophile and power user areas. To this day, few (if any) DAPs have ever matched it in terms of features.
This port is still in a state of research. Most of the internal hardware is in use by other supported targets, but there are still some pieces I need information on.
There's a thread on the forums discussing the Karma here: http://forums.rockbox.org/index.php?topic=14226.0
Here's what's known about the Karma's hardware thus far:
- PortalPlayer 5003 SoC; dual core ARM7, up to 90Mhz per core
- Wolfson 8721/8731 DAC/headphone amp (same as the early iPods)
- Custom display by VDS; part number is VG T161251 1WFEBA 038022807
160x128x2 bpp output (although the Original Firmware simulated grayscale by rapidly switching the pixels)
- Cypress EZ-USB FX2 USB controller; chip number is CY7C68013?-56PVC (you can see it in the image below on the lower left) (More info)
- Intel 32Mbit Flash Memory; chip number is F320C3BD?
- Charger IC: Linear Tech LT1733 ISTR
- The DAC is fed with a standard I2S? signal. Pin 2 is the I2S? bit clock, Pin 3 is I2S? data, and Pin 4 is I2S? left/right clock.
- Hard drive is a Hitachi Travelstar Model HTC424020F7AT00? drive. (4200 RPM; 44-pin IDE connector) (NOTE: The iriver H10 and Dell DJ also use this same hard drive!)
- The battery is rated at 1600mAh; it is actually 2 x 800mAh cells, with a protection circuit on the top (it's the little bulge where the wires come out)
Filesystem and Transfer Protocol
According to krazykit
on IRC, the Karma used a custom transfer protocol that is neither MSC nor MTP. We'll need to research this further. (Note: This may need a fully working USB stack in Rockbox first!)
Also pointed out was the fact that the Karma used a custom filesystem called OMFS, but the Linux-Karma project has drivers for Linux available so one can access the filesystem. (See link below!)
OMFS is not a journaled filesystem, and does not offer any better behavior than a FAT32 filesystem. For the Karma, we may need to either write a tool to format the drive to FAT32 before
firmware, or advise users to format the Karma beforehand. RBUtil could include the option to format the drive before installing.
Of special note is the Karma's dock: the dock has an Ethernet port built in, so file transfers may also be handled via a standard network connection and the Java-based Rio Music Manager Lite
(provided by forum user space_ghost)
The Rio Karma's firmware is based on eCos
, an open source operating system for embedded systems. The OS
itself is licensed under the RHEPL v1.1 (Red Hat eCos Public License; basically the GPL with exceptions); a link to the license is here
According to details from an article on DAPreview.net (link below), it IS possible to build your own firmware for the Karma. The Karma firmware was built with GCC; configuration is slightly
tricky but possible.
As stated above, the filesystem and non-standard transfer protocol need to be addressed.
The Karma is not mi4 based as previously thought.
The firmware is stored in flash, although a few portions are stored on the hard disk, such as RMML. This makes it possible to always restore the player even with a blank hard disk.
Recommended Sources of Information
Points of interest revealed by evilnick
(the old link is gone, and the main page now redirects to the old forums)
Unofficial empeg BBS
New Riovolution forums
(Use this if the page above doesn't work for you)
Wikipedia's entry on the Rio Karma
1000 Geeky Details about the Rio Karma
Karma Disassembly Instructions
Copyright © by the contributing authors.