Page 1 of 13

Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium CE

Unread postPosted: 26 May 2019, 21:35
by critor
10901
Le module externe TI-Python permet à ta TI-83 Premium CE d'exécuter des scripts Python.

Nous avions déjà vu que le module externe TI-Python pour ta TI-83 Premium CE :
  • était bien modeste en capacités, et utilisait en conséquence une implémentation Python assez légère, CircuitPython d'Adafruit
  • qu'il était possible de recompiler une version un peu plus étoffée de CircuitPython, notamment avec la gestion des nombres complexes et le module cmath associé, mais que c'est difficile à maintenir ou faire évoluer tellement on se retrouve à la limite des capacités matérielles
  • que l'utilisation de tels firmwares non officiels n'était pas sans inconvénients, puisque l'application PyAdaptr côté calculatrice vérifie le firmware du module externe, et le remplace si il ne lui plaît pas

10213Ce week-end, nouveau triple exploit de zardam le magicien.

Il a eu l'idée de rajouter dans son module externe TI-Python une pyboard ESP8266, carte de développement Python qui d'origine fait tourner une implémentation MicroPython beaucoup plus complète. Le TI-Python quant à lui est reprogrammé avec un firmware le faisant se comporter comme un pont série, relayant alors différents messages UART entre la TI-83 Premium CE et la carte ESP8266. :bj:
Techniquement, ce sont les points de tests TP5 et TP6 au dos de la carte du TI-Python qui sont mis à contribution en tant respectivement que RX (réception) et TX (émission).

Plus précisément, le firmware officiel du TI-Python n'est ici pas remplacé. Le firmware alternatif est en fait programmé et amorcé dans la zone de stockage de données qui est de toutes façons inutile dans cette configuration, puisque c'est la carte ESP8266 qui fait tout le travail. Donc quand l'application PyAdaptr de la TI-83 Premium CE tente de vérifier le firmware dans la mémoire Flash du TI-Python elle le trouve et n'y voit que du feu, ne comprenant pas que ce firmware qui reste bel et bien présent en mémoire aux mêmes adresses n'est pas celui qui est amorcé. :P

Mais ce n'est pas tout. Suivant le chemin des cartes de développement, de plus en plus de Pyboards disposent d'une antenne sans-fil exploitable en WiFi et/ou Bluetooth, et c'est le cas de l'ESP8266. Comme démontré dans la vidéo qui suit, depuis un ordinateur tu peux donc te connecter en WiFi sur l'ESP8266, et ainsi par extension envoyer des données sans fil sur ta TI-83 Premium CE, même en mode examen : :o

Source : https://zardam.github.io/post/ti83-python-2/ via viewtopic.php?f=10&t=22632&p=242477#p242477
Code source : https://github.com/zardam/tipythonserial

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 28 May 2019, 17:40
by edgar13

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 28 May 2019, 18:30
by edgar13
Je me demande quelle est la distance maximale PC-Module? :#roll#:

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 28 May 2019, 18:31
by critor
Tu nous diras. ;)

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 28 May 2019, 18:34
by Lionel Debroux
L'USB est limité aux environs de 5m, j'avais vu que c'était une histoire de timings.

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 08 Jun 2019, 11:34
by wawachief
Je viens de tester et ça marche bien. C'est assez impressionnant, voire même effrayant, de voir la TI83 connectée au wifi. Cela laisse à penser que l'adaptateur TI Python doit être interdit au bac !
Image

J'ai utilisé un wemos d1 mini. Il faut raboter l'intérieur du cache transparent pour que ça rentre.

Bravo à Zardam pour cet exploit !

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 08 Jun 2019, 11:38
by critor
Merci.

On peut avoir quelques photos ciblant le montage ?
Si bien sûr ce n'est pas trop fragile.

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 08 Jun 2019, 11:49
by critor
Personnellement, je doute que grand monde le fasse. Il faut reprogrammer le boot si j'ai bien compris, à partir d'une documentation qui à ce jour n'est selon moi pas exhaustive pour le non spécialiste (mais tu nous diras), ce qui met le TI-Python dans un état où il n'est plus fonctionnel seul, et ne peut plus être restauré facilement à son état d'origine. En gros, si tu rates la manip, il est presque bon pour la poubelle.

Bref, c'est très technique, possiblement que les rares candidats qui en seraient capables seront ceux qui en auront le moins besoin.

Egalement, il ne sera pas très malin d'utiliser le Wifi du centre d'examen... ni un smartphone qu'il va falloir laisser allumé alors que l'on te demande de l'éteindre, et même si on en apporte deux pour en éteindre un devant le surveillant tout en laissant l'autre allumé quelque part, ça risque quand même d'attirer l'attention (écran, sonnerie, vibreur, alertes SMS/courriel/batterie...). En prime, l'autonomie du smartphone chute nettement lorsque utilisé en tant que relais 3G/4G <-> WiFi.

L'idéal pour le fraudeur, c'est un appareil dédié qui fait le relais 3G/4G <-> WiFi, comme déjà utilisable avec les calculatrices Android de Lexibook :


Pas d'écran, pas de sonnerie, pas de vibreur, pas d'alertes, ne ressemble pas au smartphone interdit, consommation batterie optimisée pour le mode relais 3G/4G <-> WiFi. Juste à le dissimuler pas trop loin de sa salle/place. Dans un rayon de 10 mètres je dirais. Peut-être davantage selon le modèle ou avec les murs en papier de certains centres.

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 09 Jun 2019, 08:20
by wawachief
Voici des images du montage :

Image Image

Image Image

Le plus délicat est de charcuter le capot transparent pour enlever la structure interne. Il tient encore très bien sans vis grâce aux pitons sur le côté.

La carte ESP8266 est une Wemos D1 mini. Elle est un peu grosse. Si j'avais à le refaire je tenterai un module ESP01 ou ESP12 plus compacts, mais il faut une alimentation en 3,3V donc ajouter un régulateur de tension. Je ne sais pas si le 3,3V de la carte TI a assez de pèche pour l'ESP.

Avant de commencer le montage, il faut installer et configurer micropython sur l'ESP. La procédure est décrite ici
https://lecluseo.scenari-community.org/CircuitPython/co/AA_install.html
- Installation de MicroPython : J'ai utilisé la derière version : 1.11
- Configuration du réseau Wifi : notez bien l'adresse IP que vous récupèrerez
- WebREPL pour accéder à distance à micropython par le wifi

Une fois micropython fonctionnel sur l'ESP, vous pouvez attaquer les connexions, cela a été très bien expliqué sur les différents posts, je récapitule:
TP11 -> G
TP1 -> 5V
TP6 -> RX
TP5 -> TX
J'ai soudé un condensateur électrolytique de 100uF entre 5V et G (attention au sens)

Concernant le côté logiciel, cela a été parfaitement conçu et documenté par Zardam. J'ai récupéré le contenu par git, lancé le script build et ai obtenu en qqes instants les deux binaires au format uf2. Il faut dire que ma machine (sous linux) possèdait déjà tous les outils de compilations nécessaires car j'avais déjà compilé circuitpython dessus. L'installation des outils pour compiler circuitpython est décrite ici : https://learn.adafruit.com/building-circuitpython/linux

Une fois le boitier branché à la TI, pyAdaptr fera une mise a jour mais qui ne sert a rien puis on accèdera à Python. Il faut bien comprendre que le python auquel on a accès alors n'est pas circuitpython de la carte TI mais le micropython de la carte Wemos. Les modules, la mémoire disponible sont donc ceux de la wemos, ce qui permet entre autre d'utiliser les modules network et urequest pour les accès internet.

Dernière chose : Cette bidouille n'est à réaliser que pour une utilisation chez soi, afin de réaliser des projets sympas autour de l'innternet des objets (récupérer la météo sur sa calculatrice par exemple). Il est hors de question de l'utiliser au bac car il n'y a ici aucune ambiguité : c'est illégal et sera considéré comme une fraude !

Re: Rajoute MicroPython + WiFi sur TI-Python pour 83 Premium

Unread postPosted: 09 Jun 2019, 08:39
by critor
Merci pour toutes tes précisions détaillées. :)