Another update for mx610hack

If you don't care about Logitech MX610 mouse support, you can safely stop reading now...

I released an update to the mx610hack code about two months ago, but forgot to blog about it. I did announce it on the lomoco-dev mailing list, but there doesn't appear to be an archive. So you get it again.

I've figured out the IM led now. As before, you send 6 bytes to report ID 0x10
(16), followed by the "confirm" message.

The magic values are:
unsigned char confirm[6] = { 0x01, 0x80, 0x52, 0x00, 0x00, 0x00 };
unsigned char email_off[6] = { 0x01, 0x80, 0x52, 0x06, 0x00, 0x00 };
unsigned char email_on[6] = { 0x01, 0x80, 0x52, 0x05, 0x00, 0x00 };
unsigned char email_pulse[6] = { 0x01, 0x80, 0x52, 0x04, 0x00, 0x00 };
unsigned char email_flash[6] = { 0x01, 0x80, 0x52, 0x03, 0x00, 0x00 };
unsigned char email_instanton[6] = { 0x01, 0x80, 0x52, 0x02, 0x00, 0x00 };
unsigned char email_instantoff[6] = { 0x01, 0x80, 0x52, 0x01, 0x00, 0x00 };

unsigned char im_off[6] = { 0x01, 0x80, 0x52, 0x00, 0x06, 0x00 };
unsigned char im_on[6] = { 0x01, 0x80, 0x52, 0x00, 0x05, 0x00 };
unsigned char im_pulse[6] = { 0x01, 0x80, 0x52, 0x00, 0x04, 0x00 };
unsigned char im_flash[6] = { 0x01, 0x80, 0x52, 0x00, 0x03, 0x00 };
unsigned char im_instantoff[6] = { 0x01, 0x80, 0x52, 0x00, 0x01, 0x00 };
unsigned char im_instanton[6] = { 0x01, 0x80, 0x52, 0x00, 0x02, 0x00 };

The normal on/off commands (0x05/0x06) give you a slow (ramp-like intensity
change) transition. The 0x02/0x01 values give you step response.

There is a new version (0.3) of mx610hack available:


These commands combine. Example:

unsigned char email_pulse_im_flash[6] = { 0x01, 0x80, 0x52, 0x04, 0x03, 0x00 };

By cyp at Wed, 05/24/2006 - 05:43

sorry for this blog entry, but i found no other way to ask you some question. I have search via google for some development infos about this mouse MX610 and found only this site here.

Where you get this information?
I want to build a program for WindowsXP and searching for more information than in your source code, for example detection of a mouseclick, for this mouse.

I hope you can give me some little hints.

best regards

By lastwebpage at Sun, 06/11/2006 - 01:09

I'm trying to develop a kernel module to catch all buttons modifying lmctl_usb by David Oliveira (
All the non standard buttons are reported as keys
I'd also like to bind leds control to 2 /proc file.
But it's my first module so it can take a long time...

By casell at Thu, 06/15/2006 - 08:50

Link appears to be dead. Can someone host the file again?


By clevindn1 at Sun, 07/30/2006 - 20:07

Great work! I'd love to be able to get those lightsies working. Is there anywhere where we can download your mx610hack? seems to be unavailable. If you're looking for hosting, I can put the file online on my own server if you'd like.

By sybren at Mon, 07/31/2006 - 16:55

A quick rewrite in Python. Severe ugliness due to ioctl structs.

And how to hook it up to gaim messages and evolution emails:

By bugmenot at Mon, 08/06/2007 - 18:48