Remplacement TI-Python par Adafruit Trinket M0 ou autre
Posted: 27 Mar 2019, 17:28
Nous avions déjà vu que le module externe TI-Python pour ta TI-83 Premium CE utilisait un coeur Atmel ATSAMD21E18, et que son firmware (microprogramme) pouvait aussi tourner sur d'autres PyBoards, cartes de développement et appareils munis du même coeur, et même d'un coeur voisin selon les tests complémentaires de zardam !
Petite liste non exhaustive des appareils compatibles ou supposés être compatibles avec le firmware TI-Python :
Si tu trouves que le module externe TI-Python est trop cher à 13€ et quelques chez Jarrety et TSP alors que Texas Instruments avant annoncé moins de 10€ sur les salons en octobre dernier, trop encombrant et lourd avec 20g ou encore que sa disponibilité est insatisfaisante, alors peut-être préféreras-tu une de ces options.
Nous te conseillons personnellement l'Adafruit Trinket M0, parce qu'elle est disponible et parmi les moins chères avec moins de 10€ même si les frais de port éventuels pourraient brouiller cela, parce qu'elle bat des records de légèreté avec seulement 2g, et parce qu'elle est à ce jour enfantine à reprogrammer avec le firmware TI-Python comme nous allons voir plus loin.
De plus, nous avons réunis nombre d'éléments attestant que Texas Instruments n'a conçu ni le logiciel ni le matériel du module externe TI-Python et a réutilisé de l'existant parmi les produits ouverts d'Adafruit, avec très probablement comme reference design la Trinket M0 ou la Feather M0. Alors autant prendre ce que TI a utilisé.
C'est une Adafruit Trinket M0 qui sera utilisée pour les tests qui vont suivre dans cet article.
Maintenant que l'application PyAdaptr ainsi que l'OS 5.3.5 qui va avec ont été publiés, nous pouvons enfin tester ce que donne cette carte avec une vraie TI-83 Premium CE.
Petite liste non exhaustive des appareils compatibles ou supposés être compatibles avec le firmware TI-Python :
- carte CircuitPython Adafruit Trinket M0 (coeur Atmel ATSAMD21E18) - testée avec succès
- carte CircuitPython Adafruit GEMMA M0 (coeur Atmel ATSAMD21E18)
- carte de développement Arduino Zero (coeur Atmel ATSAMD21G18) - testée avec succès
- carte de développement Arduino M0 (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit Feather M0 (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit ItsyBitsy M0 (coeur Atmel ATSAMD21G18) - testée avec succès
- carte CircuitPython Adafruit Metro M0 (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit HalloWing M0 (coeur Atmel ATSAMD21G18)
- console de jeux portable Gamebuino META (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit Trinket M0 (coeur Atmel ATSAMD21E18) - testée avec succès
- carte CircuitPython Adafruit GEMMA M0 (coeur Atmel ATSAMD21E18)
- carte de développement Arduino Zero (coeur Atmel ATSAMD21G18) - testée avec succès
- carte de développement Arduino M0 (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit Feather M0 (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit ItsyBitsy M0 (coeur Atmel ATSAMD21G18) - testée avec succès
- carte CircuitPython Adafruit Metro M0 (coeur Atmel ATSAMD21G18)
- carte CircuitPython Adafruit HalloWing M0 (coeur Atmel ATSAMD21G18)
- console de jeux portable Gamebuino META (coeur Atmel ATSAMD21G18)
Si tu trouves que le module externe TI-Python est trop cher à 13€ et quelques chez Jarrety et TSP alors que Texas Instruments avant annoncé moins de 10€ sur les salons en octobre dernier, trop encombrant et lourd avec 20g ou encore que sa disponibilité est insatisfaisante, alors peut-être préféreras-tu une de ces options.
Nous te conseillons personnellement l'Adafruit Trinket M0, parce qu'elle est disponible et parmi les moins chères avec moins de 10€ même si les frais de port éventuels pourraient brouiller cela, parce qu'elle bat des records de légèreté avec seulement 2g, et parce qu'elle est à ce jour enfantine à reprogrammer avec le firmware TI-Python comme nous allons voir plus loin.
De plus, nous avons réunis nombre d'éléments attestant que Texas Instruments n'a conçu ni le logiciel ni le matériel du module externe TI-Python et a réutilisé de l'existant parmi les produits ouverts d'Adafruit, avec très probablement comme reference design la Trinket M0 ou la Feather M0. Alors autant prendre ce que TI a utilisé.
C'est une Adafruit Trinket M0 qui sera utilisée pour les tests qui vont suivre dans cet article.
Maintenant que l'application PyAdaptr ainsi que l'OS 5.3.5 qui va avec ont été publiés, nous pouvons enfin tester ce que donne cette carte avec une vraie TI-83 Premium CE.
Mais voilà, problème, la nouvelle application PyAdaptr de la TI-83 Premium CE refuse de détecter la Trinket M0 munie de son firmware d'origine.
Et pour ceux qui avaient déjà reprogrammé leur Trinket M0 avec l'ancien firmware TI-Python 3.0.0.0012, l'application PyAdaptr publiée tente systématiquement de les mettre à jour en version 3.0.0.0020 avant toute utilisation, or le processus plante et il n'y a donc plus qu'à réinitialiser la calculatrice.
Comme confirmé par un test de zardam, ce plantage de la mise à jour vient du fait que Texas Instruments s'est compilé un boot code (code de démarrage) tout spécial pour son module externe TI-Python, le UF2 Bootloader v1.0.3U SFRO, alors que notre Trinket M0 utilise le UF2 Bootloader v1.23.0 SFHR.
Or c'est visiblement le boot code qui est appelé par l'application PyAdaptr pour la mise à jour du firmware, puisque zardam arrive sans problème à faire mettre à jour puis utiliser son Arduino Zero depuis la calculatrice, après avoir remplacé son boot code par celui du TI-Python.
La reprogrammation d'un boot code est toutefois une étape dangereuse et de plus technique avec donc des manipulations qui vont différer d'un appareil à un autre, aussi il nous faudrait trouver autre chose pour toi.
Et pour ceux qui avaient déjà reprogrammé leur Trinket M0 avec l'ancien firmware TI-Python 3.0.0.0012, l'application PyAdaptr publiée tente systématiquement de les mettre à jour en version 3.0.0.0020 avant toute utilisation, or le processus plante et il n'y a donc plus qu'à réinitialiser la calculatrice.
Comme confirmé par un test de zardam, ce plantage de la mise à jour vient du fait que Texas Instruments s'est compilé un boot code (code de démarrage) tout spécial pour son module externe TI-Python, le UF2 Bootloader v1.0.3U SFRO, alors que notre Trinket M0 utilise le UF2 Bootloader v1.23.0 SFHR.
Or c'est visiblement le boot code qui est appelé par l'application PyAdaptr pour la mise à jour du firmware, puisque zardam arrive sans problème à faire mettre à jour puis utiliser son Arduino Zero depuis la calculatrice, après avoir remplacé son boot code par celui du TI-Python.
La reprogrammation d'un boot code est toutefois une étape dangereuse et de plus technique avec donc des manipulations qui vont différer d'un appareil à un autre, aussi il nous faudrait trouver autre chose pour toi.
Dans les deux cas, une solution est de préprogrammer la carte Trinket M0 avec le dernier firmware TI-Python, mais faut-il encore pouvoir le récupérer.
La solution nous vient donc aujourd'hui de Lionel Debroux qui vient de passer du temps sur un programme en Go te permettant d'extraire le firmware TI-Python 3.0.0.0020 de l'application PyAdaptr 5.3.5.0024 publiée lundi.
Concernant la Trinket M0, il te suffit d'une double pression sur le bouton reset pour la redémarrer en mode mise à jour, puis tout simplement d'y copier le fichier firmware .uf2 retourné par le programme précédent, la carte se comportant comme une simple clé USB !
Et bingo, ça marche !
La solution nous vient donc aujourd'hui de Lionel Debroux qui vient de passer du temps sur un programme en Go te permettant d'extraire le firmware TI-Python 3.0.0.0020 de l'application PyAdaptr 5.3.5.0024 publiée lundi.
Concernant la Trinket M0, il te suffit d'une double pression sur le bouton reset pour la redémarrer en mode mise à jour, puis tout simplement d'y copier le fichier firmware .uf2 retourné par le programme précédent, la carte se comportant comme une simple clé USB !
Et bingo, ça marche !
Maintenant que ça marche, parlons connectique car la Trinket M0 dispose d'un port micro-USB, et non mini-USB comme le module externe TI-Python.
Une solution comme tu viens de le voir est d'utiliser le câble de connexion de ton smartphone à l'ordinateur muni au bout d'un adaptateur au choix :
Une solution comme tu viens de le voir est d'utiliser le câble de connexion de ton smartphone à l'ordinateur muni au bout d'un adaptateur au choix :
- USB A ↔ mini-OTG - testé avec succès
- USB A ↔ mini-A
Un ennui est que cela te donne de la connectique encombrante et lourde, qui risque donc de se débrancher assez facilement en cours d'utilisation.
Une meilleure solution est alors d'opter pour un câble unique à se commander, au choix :
Voilà enfin de quoi coder en Python sur notre TI-83 Premium CE en toute légèreté !
- USB micro-B ↔ mini-OTG
- USB micro-A ↔ mini-OTG
Attention aux pièges, car certains câbles pourtant censés respecter ces spécifications comme celui de Lindy ne fonctionnent pas !
Un câble qui marche à coup sûr vu que nous l'avons acheté et testé, est celui de StarTech.
Un câble qui marche à coup sûr vu que nous l'avons acheté et testé, est celui de StarTech.
Voilà enfin de quoi coder en Python sur notre TI-83 Premium CE en toute légèreté !
Une fois la TI-83 Premium CE mise en mode examen, la Trinket M0 faisant maintenant tourner le firmware TI-Python 3.0.0.0020 présente bien elle aussi la diode clignotante nécessaire pour son autorisation en 2020.
Pour le BAC 2020 l'on pourra par exemple scotcher la carte à la TI-83 Premium CE afin que ce signal lumineux soit bien présent sur la tranche supérieure comme exigé par la réglementation, en prenant bien soin de ne pas masquer la diode examen de la calculatrice.
Pour le BAC 2020 l'on pourra par exemple scotcher la carte à la TI-83 Premium CE afin que ce signal lumineux soit bien présent sur la tranche supérieure comme exigé par la réglementation, en prenant bien soin de ne pas masquer la diode examen de la calculatrice.
Téléchargements :
- application PyAdaptr 5.3.5.0024 (inclut le firmware TI-Python 3.0.0.0020)
- programme Go d'extraction du firmware
- OS 5.3.5 pour TI-83 Premium CE