Sur le moment, lorsque j'ai vu passer le produit sur Aliexpress, ça ne m'a pas interpellé plus que ça, mais après quelques jours de réflexion, j'ai craqué, et je me suis commandé une T-Watch 2020 de chez Lilygo, pour 28€ frais de port inclus.
Mais pourquoi j'ai acheté ça ?
Je ne suis pas spécialement fan des montres connectées, et je n'ai jamais ressenti le besoin d'en posséder une. J'ai une superbe montre entièrement mécanique, cadeau de ma femme, et qui me convient très bien (la mécanique est partiellement apparente, j'adore). Aux antipodes donc de ces « gadgets » électroniques.
Cette T-Watch, elle est probablement bien moins jolie et performante que les smart watchs du commerce vendues par des grandes marques, mais elle a un avantage de taille : elle est ouverte et programmable.
Ouverte dans le sens où l'on a le détail de tous les composants qui la constituent, la façon dont ils sont connectés, les données constructeurs de ces composants (datasheet), tout est documenté.
Programmable, car le cœur de cette montre est un microcontrôleur ESP32 de chez Espressif, facilement programmable avec l'environnement Arduino ou PlatformIO.
On est ici complètement dans la mouvance open hardware et logiciel libre, et ça j'adore. Donc même si je n'avais pas besoin de cette montre, c'est juste pour le plaisir de comprendre comment les choses fonctionnent, et de la programmer pour en faire ce que je veux.
Premières impressions
Deux semaines pour la livraison, et c'est enfin arrivé.
Premières impressions : la finition de la montre est plutôt pas mal. Elle est légère (58.5 g indiqué sur le site) et l'écran est de bonne dimension (1.54 pources de diagonale, soit environ 4 cm). Le boîtier de la montre est un peu épais (1.3 cm) et le bracelet en plastique ne me paraît pas folichon, mais ce n'est pas ça l'important du tout. Une trappe sous le bouton poussoir permet de découvrir une prise micro-usb, qui servira à recharcher la batterie au lithium (en 5V), et à programmer la montre. Au passage, on peut également la reprogrammer à distance par OTA (Over-the-air), c'est-à-dire en passant par le réseau wifi sur lequel elle est connectée, sans être obligé de la relier par le câble USB. Très intéressant !
La montre est livrée avec un firmware très minimaliste : affichage de l'heure et de la date sur l'écran principal, avec niveau de batterie et compteur de pas. Je n'ai pas trouvé comment modifier l'heure et la date. Le niveau de batterie fluctue beaucoup, et le compteur de pas de fonctionne pas. Pas très encourageant tout ça, mais après tout, le jeu consiste à comprendre pourquoi, et corriger si possible.
L'écran est tactile, et permet de scroller vers d'autres écrans. L'animation n'est pas très fluide, mais ça change d'écran, c'est le principal. Deux autres écrans sur lesquels il y a écrit uniquement « note » et « app », sans aucune interaction possible. Je suppose que ce sera pour accueillir de futures petites applications. Enfin un écran de configuration du wifi (fonctionnel), du contraste et de la luminosité de l'écran (fonctionnel aussi), du bluetooth (sauf qu'il ne se passe rien lorsqu'on clique sur l'icône), et du podomètre (sauf que ça ne compte pas les pas quand on l'active). Bref, c'est du brut de décoffrage, mais encore une fois, si j'avais voulu un produit fini, j'aurais acheté une montre intelligente classique.
Une carte présente dans la boîte indique le site web de Lilygo, ce qui permet d'accéder rapidement à la page de présentation du produit.
On y apprend que la montre est programmable entre autres en utilisant l'IDE Arduino, en scratch, en micropython. Mais c'est génial ça ! Je suis curieux de ce qu'on va pouvoir faire sur cette montre avec micropython. Évidemment on doit pouvoir programmer ça aussi en utilisant l'environnement ESP-IDF d'Espressif.
Qu'est-ce qu'il y a dans la bête ?
Un autocollant à l'intérieur de la boîte donne plusieurs informations très intéressantes (on retrouve une image très similaire sur le site de Lilygo) sur les différents périphériques attachés au microcontrôleur ESP32, ainsi que les brochages utilisés :
on aurait donc :
- un écran LCD TFT (Thin-Film-Transistor) ST7789V de 1.54 pouces, qui semble communiquer avec l'ESP32 en SPI. L'écran fait 240×240 pixels,
- un accéléromètre 3 axes BMA423 fabriqué par Bosch, connecté en I2C. Avec ça, on doit pouvoir en faire un podomètre, du suivi d'activité, ou encore de la reconnaissance de gestes,
- un décodeur audio MAX98357A pour l'audio (fabriqué par maxim integrated), utilisant le protocole I2S (Integrated Interchip Sound). Je ne connais pas ce standard, mais d'après Wikipedia, c'est un bus série pour connecter des matériels audio numériques. Il faudra que je gratte de ce côté...
- un petit moteur pour les vibrations, relié à la broche GPIO4. Pas plus d'infos pour l'instant, mais je suppose qu'il suffit de mettre la broche à 3.3V pour que le moteur tourne et que la montre vibre. Il faudra tester ça,
- une horlore RTC (Real Time Clock) PCF8563 fabriquée par NXP Semiconductors, utilisant le bus I2C. L'autocollant nous indique seulement la broche d'interruption, il faudra trouver le reste des informations,
- un écran tactile FT6336 de chez FocalTech. Il s'agit d'un écran capacitif qui semble disposer de son propre microcontrôleur. Là encore, on utilise le bus I2C,
- un émetteur infrarouge, connecté à la broche IO13. Là, je n'ai pas trouvé d'informations supplémentaires pour l'instant, mais ça doit bien exister quelque part :-)
- une unité de gestion de l'alimentation (PMU : Power Management Unit) AXP202 de chez X-Powers. Ce microcontrôleur va gérer l'alimentation par la batterie au lithium. Il est relié à l'ESP32 par le bus I2C. Il sera intéressant de voir quelles informations on peut récupérer, ou quelles commandes on peut lui envoyer.
Les datasheets de tous ces composants sont toutes disponibles dans le dépôt github de Lilygo.
En conclusion
très heureux de cet achat. Il y a du pain sur la planche, mais il va y avoir des choses vraiment sympa à faire. J'ai repéré des projets de firmware pour la T-watch. L'objectif n'est pas juste de charger le firmware dans la montre et de l'utiliser tel quel, mais plutôt de regarder comment ils ont fait, puis de l'adapter à mes besoins spécifiques (qui ne sont pas encore connus :-). Le fait qu'on puisse la programmer en micropython me titille tout particulièrement, je suis impatient de voir ce qu'on va pouvoir faire avec.
Dans tous les cas, beaucoup de fun en perspective !