Author Options:

How do I use a S2599 USB Mouse IC? Answered

I have a small IC that I got from a old dell usb mouse. The writing on the mouse is written in 2 lines the first says: "S2599" and the second says: "A0452C". Does anyone know how to get the x & y from this and maybe use it with an arduino? Im also pretty sure that the company that made it is Agilent.


This would probably be much easier if you still had the mouse, so you could see how it was wired. Or if you'd taken notes at the time. If you're going to disassemble something that you don't fully understand, document it first...

Given how cheap mice are these days, and how many old mice are lying around, might be simpler to set that part aside and start again from scratch.

Hey, I dissemble a mouse I have and the chip is the exact same (but A0537C), so I went over internet to try find something, what I found is an SO answer which (following the circuit to compare) seems to be same the specs for that IC, check it out here: http://electronics.stackexchange.com/questions/650...

So that is a good starting point and if you don't have a circuit, mine is "Sung wei 02hb" if you can find it to help you reverse engineering.

I think your best way is to get a cheap mouse, take the circuit from it and try to read X and Y from the USB output.

(Mostly for other googlers showing up)

Looking at the insides, it probably does speak PS/2, so the other guys link or another tutorial about how to do PS/2 on AVRs would work. I'm here from trying to find the datasheet too (to perhaps make it do something interesting over USB) though no luck so far. It self-IDs as Logitech, and presents one interface with three endpoints (0x81, 0x82, 0x83). I can send a ctrl request with :

bmRequestType = 0x81,bRequest = 0x08,wValue=0,wIndex=0,data_or_wLength = 1

i.e. command 81 08 00 00 00 00 01 00, to which it responds 'B', [1] (an array containing the number 1). If I say 00 instead of 1, the usb library hangs. If I say anything other than 8 (that I've found) or talk to any other endpoint, I get an error. All three endpoints are inputs, I see nothing responding and read/writes doesn't seem to fly.

The IC itself is pretty much by it's lonesome - it's an optical mouse on a chip pretty much. No earthly idea if it's useful for anything other than what it is, but that's what I've seen so far.


7 years ago

Just getting the X and Y values right out of the chip would probably involve acting like the connected computer, rather than just connecting directly to some pins. Looks like this guy's done something like it with a PIC: http://www.fiacopetti.it/pic-ps2interf_en.htm

There's also a highly technical article on how the chip will output it's data (for a PS/2 mouse, anyway) here: http://www.computer-engineering.org/ps2mouse/

I like www.alldatasheet.com for looking up IC data sheets, but I didn't find anything meaningful based on the numbers you posted.  Of course if the numbers were taken from the mouse case, i.e. "the writing on the mouse", and not the IC itself, then that might be part of what's impeding the lookup.

Dunno. Its obsolete, and Avago don't list it - they bought out Agilent's component division.