Reverse engineering fingerprint reader

Bonsoir,

J'ai récemment démonté un ordinateur portable contenant un module de fingerprint, je me suis donc dis que je pourrais le réutiliser avec une arduino ou mon pc.

Le modèle exact est COMPAQ 6710B FINGERPRINT READER, pleins d'images sont disponibles sur google. Avant cela, je n'ai jamais essayer de faire du reverse engineering donc je vais surement poser des question plutôt bêtes

Alors, pour commencer, j'ai 4 fils : - Un noir et un rouge -> alimentation 5V - Un marron-gris et un orange -> données

J'ai branché le noir sur le ground, le rouge sur le 5V (arduino UNO), le marron sur tx et le orange sur rx ! Sur ce, j'utilise realterm en branchant l'arduino en USB pour voir ce que a sort (l'arduino a un code vide) mais je ne connais pas la vitesse de transmission donc j'essai plusieurs vitesses en 115200 bauds, j'obtiens que des 0 (j'affiche en uint8), avec 57600 bauds, j'obtiens pleins de chiffres qui changent en permanence (en lisant par hex, il y a pleins de 0) et plus je descend plus les chiffres se stabilisent. Si je suis en 9600 bauds et que le capteur est immobile face contre table, il n'y a quasiment que des 0xDF (223) mais dès que je passe mon doigt, tout s'agite et beaucoup de 0xCF apparaissent.

Donc mes questions sont comment puis-je savoir à quelle vitesse communique le module et où es-ce que je peux trouver de la documentation ou des sources d'un logiciel gérant ce module ?

J'aimerais vraiment arriver à le faire marcher, idéalement avec une carte arduino (ou bien au pire, une ATMega là uniquement pour ça) :)

Vincent

Edit : Merci linux et la communauté, pour un code source, FPrint devrait m'aider ! (c'est du c, lien du projet : http://www.freedesktop.org/wiki/Software/fprint/)

Bonjour,

C'est de l'usb pas du série :roll_eyes: http://www.xiirus.net/articles/article-authentec-aes1610-fingerprint-reader-software-for-windows-7-pid37.aspx

Ha d'accord, donc pour le connecter à un ordinateur j'imagine que ça rend les choses beaucoup plus simples mais du coup je peux le faire marcher avec une arduino ou il me faut par exemple une Raspberry avec un port usb pour l'utiliser ?

Accroché au fil, il y a écrit SPS, wikipedia propose plusieurs choses mais le plus logique me parais "Software Product Specifications" existe-t-il un site pour obtenir des informations sur la communication via ce chiffre ? (son mon fingerprint, il y a SPS : 950795)

Merci pour cette réponse et encore désolé de mes questions surement un peu betes :~

Bon, je pense que ce que j'ai fais était complètement con :cold_sweat:

j'ai 4 fils donc si c'est bien de l'usb : - Vcc +5V - GND - Data + - Data -

4 couleurs, dans l'ordre, noir/marron/rouge/orange, j'ai récupéré un cable usb où j'ai dénudé les 4 fils.

Le fil noir est connecté à un gros morceau de cuivre sur le PCB donc j'imagine que c'est de ground (et la couleur correspond) ensuite les deux fils sont entortillés (deux fils ensembles -> data - et data + ?) et enfin, il y a le fil orange, qui lui est droit (+5V ?).

J'imagine qu'en reliant le fil rouge à 5V, je faisais des choses un peu bizarres en envoyant que des 255 (si rouge = data+) ou bien des 0 (si rouge = data-) mais donc ce que je me demande, c'est pourquoi j'avais des nombres qui changeaient quand je passais mon doigts.

Je vais faire quelques tests, si les fils data+ et data- sont bien en 5V, je ne risque pas de casser quelque chose et dans le cas contraire, c'est déjà fait !

Je post ça comme un suivi de mes essai, si jamais vous avez des conseils ou si je dis des choses fausses, merci de me le dire !

News : Ca avance, j'ai fais une connexion "barbare" avec mon cable usb, marron vers D+ et rouge vers D-, windows a installé un driver et reconnait le périphérique ! Je ne peux pas encore tester, si je lâche les fils, ma connexion avec les fils de cuivre font des court circuit ^^ Sachant qu'on trouve cette pièce à moins de 10€ sur internet, c'est assez intéressant ! Merci encore skywodd pour m'avoir mis sur la voie :)

News 2 : Une fois les cables un peu isolés, j'ai pu le faire marcher en installant un driver. J'ai ensuite utilisé USBlyzer pour voir comment se faisait la communication voilà ce que ça donne :

Etant donné que le péripherique envoie des données de 2k et que la mémoire de ma carte est de 32k en flash, ça risque d’être compliqué pour traiter les données..