[APL] Voir au travers d'une souris

cool, J'ai suivi la classe de Massimo à mediamatic à Amsterdam.

It's working!

Will post pictures later.

Pictures of my optical mouse:

I posted a tutorial in English to interface optical mouse sensors to the Arduino.
I also made a simple Arduino library for it, supporting several popular sensors.

You can find it here:

http://www.martijnthe.nl/optimouse/arduino-optical-mouse.html

Thanks Benoît for the idea!

Super intéressant ce post :smiley:

J'aurais bien aimé faire de même avec une de mes souris optique , seulement je ne trouve pas d'information sur les datasheets du composant optique :-/
Dessus il est inscrit S2083 A0723C, même si je remplace les zéros par des O je ne trouve rien.
C'est du microsoft, ce qui expliquerait peut être le pourquoi :wink: .

Sinon le capteur optique ressemble très fortement a celui de mthe (afin c'est principalement du au fait qu'il est 8 broches). Puis-je éventuellement effectuer les même branchements sans risques?

This Chinese guy/girl is also mentioning the S2083 in an Microsoft mouse:
http://tech.sina.com.cn/c/2003-08-21/22199.html

Unfortunately, I can't read Chinese...
However, the circuit and the IC look very much like the Avago/Agilient ADNS-2610.
I suspect the IC is actually from that same company. Try Googling on "ADNS 2083"... However, I couldn't find a datasheet on the 2083.

This is what I would do:

  1. Compare the circuit in your mouse with the example circuit in the datasheet of the ADNS-2610 (You can download it here: http://www.avagotech.com/products/optical_navigation_sensors/led-based_sensors/adns-2610/ )
  2. Probably, you'll then be able to figure out which pin is what.
  3. Then I would measure the voltage over the GND and the Vdd of the S2083 when the mouse is plugged in, just to be sure it's the same as the Arduino (5V).
  4. I'd be pretty confident by now that you can follow the tutorial I wrote without breaking the chip. I suspect the communication is pretty much the same as the other ICs (ADNS-2610, ADNS-2051 and PAN-3101). Probably it's a little bit different in functionality, but I would suggest just trying the different classes in the library and see what works and what not.

It would be nice to know what works for you, so I can add that information to the library.

Bonne chance! Et excusez-moi for my lacking French.

Thanks mthe.

I will try during the weekend and I will keep you about test.

I apologize for my English. :stuck_out_tongue:

N'étant pas très à l'aise en électronique je préfère mettre de coté le S2083 de peur de faire une bêtise. :-/

Sinon, j'ai récupéré une autre souris optique avec comme capteur le ADNS-2030 , par contre la tension est de 3.3V re :-/ (normal souris sans fil) , bon la prochaine sera la bonne lol .

hmm.. je ne suis pas sûr que je comprends que tu as écrit (like I said, my French is limited...)

It looks like the ADNS-2030 is the low power version of ADNS-2051. It uses the same commands/addresses.
However, it's maximum supply voltage is 3.6V... So you'll probably break it if you try to connect it to your Arduino (because it's powered with 5V).

If you post a detailed scan or picture of the S2083 circuit (both top and bottom sides), I can have look at it for you, peut-être, je peux éloigner un peut de l'incertitude... (forgive if if I'm talking nonsense... I'm trying ;))

Yes you understand about the ADNS-2030.

I post pictures of the s2083 circuit tomorrow.
Thanks

Voici les photos du s2083:

Dis moi si tu veux plus de détails.

This is what I make of it:


So I compared it to the example circuit in the datasheet of the ADNS-2610 (You can download it here: http://www.avagotech.com/products/optical_navigation_sensors/led-based_sensors/a dns-2610/ )
And it's very much alike. I can't be 100% sure if it's right, but I'm pretty sure :slight_smile:

As I suggested before, I would measure the voltage over the GND (pin 6) and the Vdd (pin 7) of the S2083 when the mouse is plugged in. You can do this with any simple household voltage meter (multi meter).
It should measure around 5V between these two pins (6 & 7) when the mouse is connected to your computer.

Then I'd just follow my tutorial from Step 4 (http://www.martijnthe.nl/optimouse/arduino-optical-mouse.html ).
Probably you can skip cutting the connection to the mouse controller (Step 3).

I would try the ADNS-2610 driver in the library on my site. (see instructions in the examples in the library)

If you have more questions, you know where to pose them :wink:

Bonne chance

merci mthe,

je fais le test dès que possible et je te tiens au courant.

Je viens de faire le test.
j'ai utilisé le code de Benoît ROUSSEAU , mais pour l'image j'ai une suite de 0 et pour les coordonnées j'ai rien, si le if avant l'affichage j'ai quelque chose du genre 255-255-255-255, 0-255-255-255...

J'ai rebranché la souris sur le PC elle marche très bien.
C'est du a quoi? SDIO et SCLK ne sont peu être pas placés en 3 et 4...

bonjour,
j'ai une souris qui comporte un capteur PAN3501
d'après le site du constructeur (et ma souris) c'est un interface USB.

est-ce possible de faire communiquer de l'USB sur les entrées de l'arduino ?
je voudrais détecter les déplacements d'une plaque de plexiglass avec 2 capteur de ce type (= laser IR, excellent même sur les marières transparentes)

merci

About the S2083 chip, I found the datasheet on avagotech website. It's a SDNS2083.

I'll give it a try soon, but if anyone makes some progress with this chip, it will be reaaaal good stuff ^^

Hi,

I made this "turntable" with a the PAN3101 (similar to the ADNS-20xx) and Arduino: http://pleereef.nl/videos/PleeStation-Scratch.m4v

Here's the driver library for the chips:
http://www.martijnthe.nl/optimouse/arduino-optical-mouse.html

Best,
M

Hi mthe

I just tested it and it seems to work. For the ADNS-2083, I changed the registers as follow
#define Delta_Y 0x42
#define Delta_X 0x43
But I didn't find an equivalent in the datasheet for the Motion Status Register. There's a Status register at 0x41, but it's not quite the
same as for the ADNS-2051 so I'm not sure it works with your library... :confused:
Anyway, I can retrieve dX and dY, the most important ^^
Thanks to you and to Benoit

You can download the modified files for the 2083 here > http://play-collective.net/blog/wp-content/uploads/2008/06/optimouse.rar

Cheers

@Glopp76 : the problem is that the data stored on the chips are not stored on the same registers. you have to change a few things. If you want to use Martijn library, you can use the files I modified, I changed the registers. You have also to edit the code in your sketch in order to use ADNS2083 instead of ADNS2051. That's all. If you want to use Benoit's sketch, then you have to modify a lot of things as a lot of values are not stored with the same scheme.

Hi melka,

Perhaps the chip is similar to the ADNS-2610.
That one doesn't have a status register like the 2051.
It has some other functions though, check out the datasheet of the ADNS-2610.

Can I append your adjustments to the library?

PS: great motion graphics work!!!

Martijn

Hi martijn
I looked quickly on the 2610 datasheet and it seems that they share the same kind of memory usage with the 2083. The registers adresses are different though.
You can definitely add my little modifications to the lib, yeah ^^
I tried to add a pixelData method returning an 18x18 array but I'm bad with C. I can return something but it's definitely not an array. Would you help me? I have a sketch working for reading the pixeldata register, I just don't understand how I can turn this into a library ^^.

void EnvoiImage()
{
  byte val;
  EcritureRegistre (0x40, 0x01);
  EcritureRegistre (0x48, 0x00);
  for (int i=0; i<325; i++)
  {
    val = LectureRegistre(0x48);
    if (i!=0) {                            // First read will return 0, we don't want it
      Serial.print(i);
      Serial.print("\t");
      Serial.print(val&63, DEC); // Cleans the value, so that you don't have the Start_of_Frame & Valid_data bits
      Serial.println();
    }
  } 
  Serial.println ();
  EcritureRegistre (0x40, 0x00);
}

I added some datasheets to the zip archive.

http://melka.one.free.fr/temp/OptiMouse.rar

Thanks ^^

PS : Thanks again ^^