Tout a débuté par l'acquisition des logs de plusieurs scans réalisés sous windows XP avec l'excellent SniffUSB, basé sur le non moins excellent usbsnoop de Benoît Papillaut. Ensuite la lecture des sources du driver mustek_usb2 pour SANE m'a fourni beaucoup d'indices. L'analyse de ces logs et les indices récoltés m'ont permis de comprendre un petit peu ce qui se passait entre l'ordinateur et le scanner au moment d'un scan. J'ai ainsi pu développer assez rapidement un pilote non fonctionnel qui permettait à SANE de reconnaître le scanner et de l'initialiser. A ce stade, j'étais en mesure de faire s'allumer et s'éteindre la lampe du scanner, clignoter la led, récupérer les évènements provoqués par l'appui sur les boutons de la façade du scanner., mais toute acquisition restait impossible, trop de choses restant parfaitement incomprises (notamment comment fonctionne un scanner). Les données à analyser représentaitent une masse d'octets obscurs, et je n'avais pas la moindre conception de ce que pouvait être une table GAMMA ou une table de déplacement du moteur. Quant à ce que pouvait être le GAIN et l'OFFSET, c'était encore plus abscon. J'ai donc mis ce projet de côté pendant quelques temps. Et puis... Et puis un jour, je suis tombé sur ce site. Tout d'un coup, je n'étais plus seul au monde avec mon scanner, cela m'a redonné un peu de courage. Et je me suis replongé dans mon code source, dans l'analyse des fichiers de logs, dans l'étude de ce qu'est le GAMMA, le GAIN, l'OFFSET, etc. J'ai fini par poser quelques questions sur la liste de développement de SANE. Je comprends mieux maintenant le travail qui reste à accomplir, Mais en faisant les choses petit à petit, en comprenant de mieux en mieux la procédure à suivre pour obtenir une numérisation, je ne désespère pas d'obtenir un jour un pilote, même basique, pour ce scanner. Bon, il me reste encore à implémenter le calcul pour le gain et l'offset, comprendre comment les tables de déplacement du moteur sont calculées, apprendre à calculer une table gamma, c'est à dire, deviner ce qui se passe dans l'ordinateur avant d'envoyer les paramètres au scanner. Mais pour cela, je n'ai pas de fichiers de logs, il faut donc y aller à tâtons. Pour le reste, j'ai identifié la quasi totalité des commandes passées par le pilote windows au scanner, ainsi que leur ordre d'exécution et leur utilité.