La eZ430-Chronos (dont il existe plusieurs sous-modèles, en l'occurrence il s'agit de celle qui communique à 433MHz) est une montre fabriquée par Texas Instruments, probablement pour servir de vitrine à une de leurs puces (le CC430, un microcontrôleur intégré avec un contrôleur radio).
Ce qui la rend intéressante pour les geeks, c'est que cette montre est programmable, au sens où elle est fournie avec une interface JTAG facilement accessible et un petit dongle USB permettant très facilement d'en réécrire le firmware, ainsi que les sources du firmware de démonstration ; comme on a aussi accès aux spécifications détaillées du microcontrôleur utilisé, et à des instructions assez précises qui incluent notamment le diagramme complet de la montre, on peut dire qu'il s'agit d'un matériel très ouvert.
En outre, la montre contient des accéléromètres, un capteur de temérature et de pression atmosphérique / altimètre, et, comme je l'ai déjà dit, un émetteur/récepteur radio à 433MHz (il y a aussi des modèles à d'autres fréquences ; le 433MHz n'a pas forcément la meilleure portée, mais il est utilisable dans le monde entier), et le kit vendu par TI contient un contrôleur USB (lui-même très ouvert) permettant de communiquer avec la montre. On peut donc imaginer toutes sortes d'applications amusantes, et comme le tout ne coûte que USD 58 (livraison comprise), je me suis dit que ce serait bête de ne pas en acheter une pour voir.
Je l'ai reçue tout récemment et je suis trop occupé en ce moment
pour avoir le temps de jouer beaucoup avec pour l'instant. J'ai juste
eu l'occasion de vérifier que j'arrivais bien à compiler un nouveau
firmware
(un OpenChronos, que
j'ai compilé avec
un mspgcc
version 20120406) et à l'installer sur la montre, et que je pouvais
communiquer avec elle pour écrire l'heure dessus depuis l'ordinateur.
(Par contre, l'altimètre a cessé de fonctionner, et je n'ai pas eu le
temps de chercher à comprendre la raison.) Je ne peux donc pas dire
grand-chose pour l'instant à part que c'est potentiellement
intéressant.
Il faut remarquer, cependant, que l'écran LCD est un peu limité (essentiellement 4+5 blocs standard de 7 traits arrangés en chiffre 8, plus encore deux traits formant un chiffre 1, plus quelques icônes fixes : c'est à peu près impossible d'afficher des lettres, par exemple). Et que le firmware doit tenir dans 32ko, ce qui n'est pas énorme surtout si on garde la possibilité de communiquer par radio.
En tout cas, c'est amusant de regarder à quoi peuvent ressembler les sources d'une montre. C'est assez pédestre, en fait ; par exemple :
void clock_tick(void) { // Use sTime.drawFlag to minimize display updates // sTime.drawFlag = 1: second // sTime.drawFlag = 2: minute, second // sTime.drawFlag = 3: hour, minute sTime.drawFlag = 1; // Increase global system time sTime.system_time++; // Add 1 second sTime.second++; // Add 1 minute if (sTime.second == 60) { sTime.second = 0; sTime.minute++; sTime.drawFlag++; // Add 1 hour if (sTime.minute == 60) { sTime.minute = 0; sTime.hour++; sTime.drawFlag++; // Add 1 day if (sTime.hour == 24) { sTime.hour = 0; add_day(); } } } }
Il y a peut-être moyen de tirer de ce truc un projet intéressant à proposer à nos étudiants à Télécom MachinBiduleTech, même si je ne sais pas si je me sens vraiment le courage d'encadrer ça.