Update -- In April 2008, I was graciously sent the source of some Linux drivers (8 KB) for the eMarker. I also found out my theory of operation is slightly wrong (although I wasn't far off!). Rather than storing the time, the eMarker stores the number of seconds since it's data was last retrieved while in the cradle. Counting seconds is easier than managing a date and time, and EST/DST changes can be handled on the host side.
Sometime around late April 2001, I got interested in designing some USB devices using the Cypress EZ-USB processors. One of the things that made me curious was how Linux handles multiple devices with the same vendor/device code on a USB chain, so I needed two, preferably cheap, USB devices. I was poking around in Best Buy when I stumbled across the Sony eMarkers. Since they met the cheap criteria, and would be devices that supported both reading and writing, I decided to buy a pair.
What are the eMarkers? They're a small keychain fob with a pushbutton, and a LCD with 10 "dots" on it. When you hear a song you want to know more about on the radio, you press the button. This lights one of the LCD dots, indicating one of the 10 possible markers has been used. When you get home, you insert the eMarker into the cradle, and it will tell you what songs were playing at that time on up to three radio stations you have selected as "favorites" (personally, in Atlanta, our radio stations are so bad I have no "favorites")
How well does it work? Don't know, don't care. I have a pretty good idea how they work, however, and that's what this page is supposed to be about. Basically, when the eMarker is inserted into the cradle for the first time, the internal clock gets set. This clock (and the rest of the device) is powered by a 3V lithium coin cell. When the button on the front of the unit is pressed, the current date and time are written into one of the 10 slots in the 1024 bit (256 x 8) serial EEPROM. When you get home and read the date/time stamps from the eMarker, the software simply looks in a database of the radio stations you listed as favorites, and retrieves the entry that matches that time stamp. Of course, being Sony, a music giant, they now know your listening habits, if you use this device often. And by going to the site, they can entice you to buy the CD, go to the web page of the radio station, etc, etc, etc.
I haven't really thought much about what one of these devices could be hacked to *do*, except for a 10 entry event recorder. But I would like to determine the protocol that it uses, and know more about the parts that are used. Below are some digital pictures of the units (click on them for the full resolution versions). The two large parts are Mitsubishi parts, and appear to be a matched chipset pair. The photographs indicate the markings on the chips. I had no success finding a description for the part, although I can be pretty sure that one is a LCD controller, and the other the USB micro. There is also a SGS Thompson 8 pin part that is some kind of USB to TTL transceiver, which I could also not find a part number for. The 93C46 EEPROM is a common part, and was no trouble.
As I find out more information, I will publish it. If you learn something about the eMarkers, I would be interested in hearing about it. I can be contacted at firstname.lastname@example.org.
I would like to sniff the protocol, which would be easy to do under Linux, if there were any drivers for the eMarker. I did find a USB sniffer for Win98, but I have no Win98 machines (only Linux, NT4, and Win2K). If you run across a low-cost or free sniffer package for Win2K, I'd like to know about it.