You people who actually know me probably know that I recently purchased a Rio Karma, and more than a few have been asking me how I like it. I've been meaning to write this up for a while now, and one of those friends forwarded some random person from IRC's query about the Karma to me[1], so I ended up typing it all up in an email anyway.
The short version is: if you want an iPod-like device that works Right on just about any operating system (provided you're familiar enough with that operating system to make Sun's JRE 1.3 or 1.4 work there), and you don't really need the instant gratification of the iTunes store (which rocks, but isn't something I need since I've already got around 120 GB of music ripped from CDs), and especially if you want support for Xiph's (Open) Ogg Vorbis and FLAC audio codecs in a portable music player, you could do a lot worse than the Karma, and looking around it doesn't look like you could do much better.
Though it doesn't have the whizz-bang, no-moving-parts controls that the iPod does, I think its interface is better (easier to do things that you actually want to do). It's got a jog wheel and a mini digital joystick. In the main mode, the jog wheel scans through the track and the four points of the joystick are play/pause (up), stop (down), skip/scan forward (right), skip/scan backward (left). In the menu interface (accessed through a slightly recessed button, whose effects at a press and at a hold are separately configurable, next to the joystick) the jog wheel scrolls through options and the joystick modifies selection values. You can also click in the jog wheel (like the mouse wheels that are popular with the kids these days), which will go one forward through the value choices that the joystick lets you page through in either direction.
Because the device supports DRM formats (or, at least, I'm pretty sure this is why), it is not a USB mass storage device. They'd probably have had to put a faked up layer between the actual storage and what was presented as the USB mass storage device in order to honor licensing agreements. For the record, I'm okay with this. It doesn't seem very likely that I'll want to play any DRM-enabled formats, but I recognize that some people probably do (and there will definitely be, if there aren't already, iTunes competitors using these formats; again, if I had any interest in an online music purchasing service, I'd go with iTunes… but I don't have any interest in that). The important thing about the Karma is that Rio's support of these formats has basically zero interruption for the actual use of the device.
As a side note (those of you not wearing propeller-laden beanies will want to skip this paragraph), it isn't totally clear that it really has a file system as such for the music and data files you put on it. All files stored on it are given a unique ID number, and then referenced that way internally, as near as I can tell. This sounds like it could be a ticketing system rather than a file system, like the shitty-ass new Centera that EMC's pushing these days (they call it “content addressed storage”; trust me, it's unique tickets in place of file hierarchies, and you have to wait for the retrieval of your ticketed object from some scary internal data structure). If that's the case, then even if you managed to trick the firmware into presenting you with a direct interface into the data on the internal hard drive via USB 2.0 or the Ethernet port, you'd have to write a software layer all your own to map that into a file system (as you have to to use the EMC product, incidentally; I don't think there's anyone like Veritas out with support for it yet), or you have to totally rewrite a driver for their disk interface and disk without any documentation of the controller and replace their firmware with that, including functionality to make the beastie play audio (again, across an undocumented interface). This screams “fixing a problem that doesn't exist” to me, since the damn thing plays music just fine as it is, K TNX.
You interact with the device through a Windows application, Rio Music Manager, that behaves a lot like iTunes (the application, not the store). If you've got Windows. If not, you use the Java port of that same application, Rio Music Manager Lite, that can only interact via the Ethernet interface, not via the USB 2.0 interface. There's some suggestion that that limitation is “for now” based on Rio's responses in the forums at Riovolution. The Ethernet interface is 10BaseT, not 100BaseT. You might imagine this to be a problem, but I really haven't noticed it as such. I haven't needed to recharge the thing yet, but I also haven't managed to listen all the way through the 3.5 GB of music I dumped on it the first day, much less the 20 GB that could potentially be on. (I'm certain I'm able to fill it and will probably want the ability to rotate music through periodically, of course, but I don't forsee doing that across 10 Mb Ethernet ever being a limiting factor, though.) I would expect that I will need to recharge it more often than I will want to juggle music, and dropping it in the cradle while I'm at home/work is really painless (especially since the cradle has RCA jacks and can sit on top of my stereo receiver at home).
To transfer arbitrary files, rather than music tracks (which, it would appear, the application doesn't provide a way to transfer back off the device, though I haven't played with that much; this would probably be a bow to the DRM powers that be, and it does irritate me a little bit, but not enough to matter never mind; there's a goddamn “Save as…” menu option… duh), you use a separate application (there's both a Windows and a Java version). This is, even in its Java incarnation, drag-n-drop in UIs that support that, if I remember a random post I read at Riovolution correctly (don't ask me for a reference; go research this yourself if you really really must have drag-n-drop data transfers on a device that is, in main, a music player). I just run RMMLite with java -jar rmmlite.jar, since I'm using a the X Window system on a Unix box with a window manager that doesn't really do the desktop icon thing. I'm sure I could transfer files using the Karma. It may even make sense for me at some point. I don't forsee making much use of this, though. (If it were a USB mass storage device, I might very well take to packing my SSH and PGP keys along on it, which I carry on a floppy disk now. Since it's not, and since those are of rather limited size, I'll probably just pick up some USB dongle–perhaps in the form of a watch, if I can bring myself to wear a wristwatch, or a pen–which I'd been planning to do some time soon anyway. No big loss, in my book.)
When connected to the network, the Karma gets a DHCPed address (which you can get off its LCD) and starts up a web server from which you can download whatever version of the Java interface is in its flash memory at the time. You can update the firmware (I'm pretty sure it really is firmware; that the drive is used ONLY for your data files, not for their OS) only through the Windows interface (or “only through the USB 2.0 interface”; which of those they really mean isn't totally clear to me). I haven't bothered to upgrade the firmware yet, though I probably will. I don't forsee being forced to do this by way of a Windows machine as much of a problem, since the version firmware that's on the thing now works (as in “accepts transferred music tracks and plays music”) just fine as it is, and, though I don't have a Windows machine at home and probably never will, I can easily get access to one at work or at the Yale House.
The developer at Rio in charge of the Java RMMLite has permission from Rio to post newer versions of RMMLite than even Rio has available on their web page (I'm using his 2003-12-02 build at the moment) at rmml.dev.java.net. Note that this is not open source (it's a jar file, not Java source files), but it's probably as close as he can get (I expect that the software, by way of supporting DRM formats, includes licensed and NDA'ed code, and that since Rio's a corporation without an explicit open source stance, they probably aren't too keen on giving away their IP either).
He has several other utilities there, including a command line copy utility, that didn't work for me the first time I tried it, though I'm not sure I had the syntax right; that could also be either because I'm using Sun's JRE 1.3 rather than 1.4, or because I need to upgrade the firmware on the Karma. I'd like that to work in the long run, but the GUI (Swing library, looks like, and sufficiently pretty without being gaudy or irritating) isn't causing me any pain just yet.
Note that this “uses Java, not the full Windows app” thing isn't much of a limitation. I'd say I have full use of the device (less the USB 2.0 transfers, which I really don't think matters, as discussed above), and I'm about as oddball as it comes. I'm running RMMLite under Sun's JRE 1.3 for Linux (the developer recommends 1.4, but it's not required except for the very-new streaming server where he was lazy and just used 1.4's builtin regular expression stuff, but intends to replace it with more portable code later) under NetBSD's syscall-emulation of (SuSE, not Red Hat) Linux. It's horfed on me a time or two when I tried to feed the Java interface too much stuff at the same time, but that was the Java interface thread that brought things down, not the Karma or the thread interfacing with the Karma. And, actually, it's been more stable in JRE 1.3 on my NetBSD machine than it was on a Debian machine with JRE 1.4 over at a friend's house.
Various parties have suggested that, since the thing's got an Ethernet port and a hard drive, one should obviously install some other operating system on it. This would “simply be a firmware issue”, but you've got some serious reverse engineering to do here. I certainly wouldn't want to do this to my Karma: the interface that exists does a very good job at what it's supposed to do (play music for me). Note that I feel the same way about running alternate OSes on PDAs (excepting, perhaps, the case of WinCE, which I think is pretty poorly suited as a PDA OS). I wouldn't want to run something other than PalmOS on a Palm if I had one; I don't want to run something other than Newton OS on my Newton 2100.
Note: Fair warning. We're moving back into geek territory here…
The point of running some other OS has been suggest as “NAS functionality”. That's a bigger term than most people think it is, and a bigger leap from what the Karma already does than it appears, on the face of it, to be. Right now, the Karma communicates mostly with UDP packets in what I have to assume is a moderately proprietary format (I haven't tcpdump'ed them yet). To suggest that you'd install (considering space issues and so on) enough smarts to present NFS/AppleTalk/SMB shares is to suggest a major undertaking. It's a pretty big leap for something that's really an embedded device, not a full general-purpose computer. I wouldn't try (or expect to be able) to use it in place of a Slimp3 or Squeezebox; there's a significant difference in the base hardware there and what is even feasible given that hardware, never mind the design goals of the OS running on it.
Also, it's worth noting that the RJ-45 connector is in a rather heavy (relative to its physical size and the visible plastic bits) base. This isn't because there's an AC/DC convertor in there, since that's in a separate power block. There's also a pair of RCA jacks (alas, no optical outputs ;^>) on this base unit. I don't know what's making up this weight, but it could very easily be, in part, the Ethernet chipset. There is no Ethernet-only dongle to attach to the 26-pin connector (Proprietary? Looks like the connectors on the bases of cell phones…), and it's not totally clear that there could be (are four of those 26-pins devoted to pass throughs to the UTP connector? I don't know, and Rio isn't exactly publishing white papers on the topic). Rio isn't selling extra base units as a separate item yet (I expect they will; it's been much called for on the forums at Riovolution), but when they do, I expect to buy one to dismantle and see if I can turn either it or (preferably) a dongle from a PCMCIA Ethernet card into a portable Ethernet connector. 802.11b would sure be nice too. Hell, and Bluetooth so I could use a Sony-Ericsson phone as a remote.
The 26-pin connector is passing DC power (and, we presume, earth), 4 pins of UTP, 10 (?) pins of USB 2.0, and 2 pins of stereo signal (with, again, two pins of ground) through from the Karma to the base (which does also have a USB 2.0 port on the back). I only count 20 used pins there, so I've got hope that the Ethernet smarts actually are in the Karma itself, but I don't think there's any real guarantee of that.
Offloading the Ethernet chipset to the base would save on power consumption and physical space inside the Karma, so it'd be a relatively legitimate design decision. If they did that, I hope they will eventually provide an Ethernet-and-DC-power-only dongle, since everything else in the base is accessible on the unit itself as long as the base isn't in the way (the base covers the USB 2.0 port and the DC in port on the Karma itself, even if a dongle didn't, you're off-loading the Ethernet chipset because you want to save on power, you'll still need to run power to it somehow… yes, this raises the question of using the Ethernet port without plugging the thing in, but I'm so far out on a limb in this speculation that it's really just not worth going further). If they don't, but do offer extra bases, I guess I'm prepared to buy one and tear it apart to get what I want.
Incidentally, it runs some kind of Unix internally, based on the fact that files created before I set the date on the thing are dated the epoch (1970-01-01). I think it's probably NetBSD or similar, not Linux, since there's no source available, and based on the fact that they're supporting Ogg Vorbis and FLAC, I think they know enough to not violate the GPL. It'd be neat if it was NetBSD, and I could probably find out via people I know who work for Wasabi, but it's not really that big a deal. I guess it could also be Windriver/VxWorks, but I don't recall whether that has the same epoch as Unix (I thought that it didn't.)
There are certainly some limitations to this over some of the other Linux-based, Ogg-playing music devices, but, for me at least, they're acceptable trade-offs for a device that I will mostly be playing music from through headphones and speakers that it's plugged into directly. The build quality of the Karma itself makes up for the (slight, when it comes down to it) inconvenience of its not being a USB mass storage device, which is the only inconvenience I've had any twinges over.
I highly recommend it for this purpose. The only people I've seen poo-poo it seem to be doing so for political (”I don't like DRM!” “It isn't Open or Free!” “It doesn't run Linux!” “It doesn't actively and noisily support Linux[, even though it works just fine]!”) and, thus, silly reasons. I think it's the best iPod killer running. (Thought that before I bought it and I still do.)
[1] He was asking specifically about whether it was possible to use it as a streaming server, like the Slim Devices Slimp3 or Squeezebox. The answer is “sort of” (there's a Java application that can connect to the Karma across the network and then stream audio from it), but having the Karma stream audio from your computer isn't directly supported and would be substantially more difficult. And considering the Slimp3 is $110 cheaper and the Squeezebox $50 cheaper than the Karma, and they have the added bonus that you're supporting a company that actively supports the EFF (quoting from their web page: “We donate 10% of net profits to the Electronic Frontier Foundation.”), if getting music from your computer to your stereo is the end goal, the Karma's not really the best way to go.
Post a Comment