Go Down

Topic: [APL] Voir au travers d'une souris (Read 30307 times) previous topic - next topic


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.


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 :)

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 ;)

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...


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)



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 ^^



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:



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... :/
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



@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!!!



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 ^^.

Code: [Select]
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(val&63, DEC); // Cleans the value, so that you don't have the Start_of_Frame & Valid_data bits
 Serial.println ();
 EcritureRegistre (0x40, 0x00);

I added some datasheets to the zip archive.


Thanks ^^

PS : Thanks again ^^


Martijn, Benoit, do you think it's possible to unsolder the sensor from it's PCB ? My PCB is the same as the one in the pictures above, and I wonder what I have to keep beside the sensor. Certainly the Xtal but what else? I'd like to use it on some kind of "robot"...

Go Up