Friday, August 22, 2008

Canon!

"Tiens, toi qui aime bien tout ce qui est embarqué, tu vas adorer ça", me dit Oli ... A priori l'appareil à l'air tout à fait normal, plus récent que le mien, mais c'est tout. "J'ai fait tourner mon algorithme de détection de fond dessus" ... Je suis paf! Du code custom sur un appareil numérique !? C'est possible ça ?

Voui, ma bonne dame. Ca s'appelle CHDK, et c'est principalement utilisé par les gens qui veulent pouvoir stocker leurs photos au format .RAW avec un appareil qui, au départ, n'est pas prévu pour ça... On peut aussi s'en servir pour jouer à sudoku, si on préfère.

I loved that era of the 8-bits where every device sold with a processor was open to homebrew development (or so it seemed). So discovering the first pocket calculator where you could run your own stuff, or the first PDA always felt awesome. But I was far from imaginating what my colleague brought me today. He's runnig his own custom code on a camera! Compared to the odds of running homebrew code on game consoles, he doesn't even have to tweak the device. A small code of your own dropped on the SD card will automatically hook into this or that behaviour of the camera's code, like what-happens-when-I-push the trigger, and voilà. Exactly the kind of things DOS games trainers did when hooking the clock interrupt to keep your lives count at their top.

Et le tout sans devoir altérer l'appareil, rien qu'avec un petit bout de code à soi sur la carte SD qui va aller détourner l'un ou l'autre comportement de l'appareil au profit des siens (le bout de code qui réagit quand on appuie sur le déclencheur, par exemple). Oui, exactement comme au bon vieux temps du MS-DOS quand le trainer de votre jeu favori s'insérait par-devant l'interruption d'horloge du PC pour pouvoir aller bidouiller la mémoire du jeu et garder votre compteur de vie à 99 en permanence quoi qu'il arrive (le jeu étant en général incapable de se rendre compte de quoi que ce soit, mais étant quand-même bien forcé de continuer à appeler ce code sans quoi l'heure du PC serait complètement fausse à la fin du jeu).

Après les consoles de jeu et les PDA, ce sont les troisième petits gadgets numériques que je pourrais bien avoir envie de bidouiller ... enfin, je dois avouer que vu leur capacités, je ne sais pas trop ce que je pourrais leur faire faire à part un "hello world". Lecteur mp3, peut-être, mais l'intérêt resterait limité vu la taille de mon powershot :P Oli, lui, il est dans le traitement d'image, donc c'est une véritable mine d'or "à gauche dans la mémoire, j'ai le capteur CCD, à droite le buffer d'affichage. C'est génial, me dit il, je fais ce que je veux".

N'empèche, je regarderai quand même en rentrant pour mon GPS ... des fois que ... Et le micro-ondes, aussi.

2 comments:

Anonymous said...

j'ai pas tout suivi, donc c'est de la programmation pour un APN c'est ca ?

PypeBros said...

oui. tout à fait.
Enfin, c'est possible avec la plupart des apn un peu récent de marque "CANON" en détournant le mécanisme prévu initialement pour les firmware update. Si on s'y prend bien, on peut même tester son projet sans toucher au firmware initial.