Page 1 of 4

TI-Python amélioré complexes+cmath utilisable avec TI-83PCE

Unread postPosted: 28 Apr 2019, 10:07
by critor
11223L'implémentation Python du module externe TI-Python pour ta TI-83 Premium CE est plus riche que la concurrence en terme de nombre de modules : :bj:
  • builtins
  • array
  • collections
  • gc
  • math
  • random
  • sys
  • time

Toutefois, si on s'en tient au contexte scolaire des programmes, elle est très modeste. On peut lui reprocher :
  • l'absence de gestion des nombres complexes contrairement à toute la concurrence (Terminales S/STI2D/STL)
  • l'absence du module de fonctions complexes cmath qui va avec (Terminales S/STI2D/STL)
  • l'absence du module turtle (Maths Seconde rentrée 2019)
  • l'absence d'un module graphique (Physique-Chimie Seconde rentrée 2019)

Lionel Debroux s'était donné la peine de développer un firmware corrigeant les deux premiers points. :D
Nous avions même vu qu'il était possible de l'installer sur le module externe TI-Python, et très facilement. :bj:
1122211220Mais voilà, en pratique il n'était pas possible d'utiliser ce TI-Python au firmware amélioré avec la TI-83 Premium CE.

Nos tests réalisées au journées de l'Orme 2019 le confirment. L'une des calculatrices du stand de Texas Instruments disposait d'une application PyAdaptr en version 5.3.5.0010, et elle reprogrammait systématiquement tout module externe TI-Python lui étant connecté avec l'ancienne version firmware 3.0.0.0015.

L'application PyAdaptr vérifie le firmware de tout module externe TI-Python lui étant connecté, le compare avec celui qu'elle intègre et, si la moindre différence est détectée, reprogramme le module externe TI-Python. :(

11219Mais voilà. Puisque apparemment il n'est pas possible d'échapper à la reprogrammation du module externe TI-Python par l'application PyAdaptr, zardam vient de sortir un firmware TI-Python tout spécial. Ce dernier reprogramme le boot du module externe TI-Python, de sorte à ce qu'il n'obéisse pas aux requêtes de reprogrammation. :D

Tu peux donc enfin profiter du firmware amélioré de Lionel Debroux sur ton module externe TI-Python, soit de la gestion des nombres complexes, du module cmath qui va avec, et de bien d'autres choses encore ! :bj:

En réalité, le patch boot de zardam n'ignore bien évidemment pas toute mise à jour, sinon il bloquerait définitivement le module externe TI-Python. Il accepte les mises à jour utilisant l'entête UF2_MAGIC_START0=0x0A324755, ce qui permet :
  • d'ignorer le firmware de l'application PyAdaptr
  • d'accepter les firmwares fournis par zardam et Lionel Debroux

Dans cette configuration, l'application PyAdaptr affichera un module externe TI-Python muni d'une version 0.0.0.5940.
11222Attention, dans cette configuration tout lancement de l'application PyAdaptr déclenchera alors une (fausse) mise à jour du module externe TI-Python si connecté, ou à défaut le fera au premier appel à la console Python. Dans les deux cas cela prend environ 15 secondes.

De plus, même si tu ne quittes pas l'application PyAdaptr et ne débranches pas ton module, ce dernier est quand régulièrement revérifié. Avec l'actuelle application PyAdaptr 5.3.5.0024, c'est notamment le cas lorsque tu refermes l'éditeur de script, que ce soit avec le menu Exec ou Script. Ne t'inquiète pas, cela ne rétrogradera pas davantage ton module externe TI-Python, mais ça implique donc 15 secondes supplémentaires à patienter, à chaque fois. :mj:

Nous n'avons pas trouvé cela bien gênant en regard des formidables améliorations apportées, mais la chose pourrait être différente en situation d'examen.

Aucune crainte à avoir si jamais tu regrettais cette modification, tu restes libre puisqu'un autre firmware te permettra de remettre le boot du module externe TI-Python dans l'état normal d'origine où il accepte à nouveau toute mise à jour. :)

Pour installer donc un firmware sur ton module externe TI-Python, il te suffit tout simplement :
  • de le connecter à ton ordinateur
  • d'enfoncer 2 fois de suite son bouton reset au dos
  • de copier et coller le nouveau fichier firmware .uf2 vers le nouveau lecteur TIBOOTPY qui apparaît alors
Toutefois, le firmware TI-Python amélioré de Lionel Debroux apporte encore quelques légers inconvénients :
  • en apparence le module externe TI-Python ne donnera aucun signe de vie, sa diode D1 restant éteinte
  • cette même diode D1 ne clignotera pas en mode examen - aucune importance pour la session d'examens 2019, mais c'est un problème majeur pour la session d'examen 2020 - espérons que ce sera corrigé d'ici-là


Les firmwares de reprogrammation du boot disponibles ci-dessous sont donc compatibles :
  • avec le module externe TI-Python
  • avec la pyboard Adafruit Trinket M0 à accompagner du câble StarTech - testés avec succès :)
    avec la pyboard Adafruit Trinket M0 à accompagner du câble StarTech - testés avec succès :)
  • probablement avec d'autres pyboards similaires (munies d'un cœur Atmel ATSAMD21E18 ou ATSAMD21G18) mais non testées à la différence
A moins d'avoir acheté ta pyboard exprès pour l'utiliser avec ta calculatrice TI-83 Premium CE, nous te déconseillons de lui appliquer cette modification. :#non#:

Car cela va te la bloquer dans une sitution où elle n'acceptera que les firmwares spécialement conçus pour cibler l'utilisation avec une calculatrice TI-83 Premium CE, tu ne pourras pas lui installer d'autres firmwares jusqu'à annulation de la modification.

Téléchargements :

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 28 Apr 2019, 10:44
by Lionel Debroux
Merci pour cette news :)

L'allumage de la LED en continu en mode standard, et de manière clignotante en mode examen, reste à faire. Pour ça, il faut faire un peu de RE sur le protocole USB et/ou le firmware, parce qu'il y a forcément un moment où la calculatrice dit au module que le mode examen est actif.

Message to TI: instead of spending time and money trying to prevent, or at least impede, the usage of third-party firmware on TI-Python Adapters, which represents yet another useless, counter-productive annoyance for users, you should work on multiple pieces of useful functionality still missing from official TI-Python Adapter firmware - the functionality which caused me to work on this project. You'd better give up and remove this ridiculous "protection" - all the more one of its immediate consequences was already USB reverse-engineering hardware + software equipment becoming more widespread in the community, easing future efforts to reverse-engineer your "protection", should you misguidedly and even foolishly try to improve it.

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 16:54
by critor
Classement des pythonettes par nombre de modules :
  1. firmware tiers sur module externe TI-Python pour TI-83 Premium CE avec 12 modules
  2. module externe TI-Python pour TI-83 Premium CE avec 8 modules
  3. NumWorks + application CasioPython sur Casio 35+E/USB / 75/85/95 + application MicroPython sur TI-Nspire avec 7 modules
  4. Casio Graph 90+E avec 3 modules
Bravo Lionel ! :)

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 16:56
by critor
Classement des pythonettes par richesse des modules :
  1. firmware tiers sur module externe TI-Python pour TI-83 Premium CE avec 354 éléments
  2. application MicroPython sur TI-Nspire avec 307 éléments
  3. NumWorks avec 295 éléments
  4. application CasioPython sur Casio 35+E/USB / 75/85/95 avec 288 éléments
  5. module externe TI-Python pour TI-83 Premium CE avec 258 éléments
  6. Casio Graph 90+E avec 208 éléments
Bravo Lionel ! :D

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 16:59
by critor
Classement des pythonettes par mémoire de travail :
  1. application MicroPython sur TI-Nspire avec 2,046 Mo
  2. Casio Graph 90+E avec 1,027 Mo
  3. application CasioPython sur Casio Graph 35+E / 35+USB SH4 / 75/95 SH4 avec 255,07 Ko
  4. application CasioPython sur Casio Graph 35+USB/75/85/95 SH3 avec 28,625 Ko
  5. firmware tiers sur module externe TI-Python pour TI-83 Premium CE avec 19,842 Ko
  6. module externe TI-Python pour TI-83 Premium CE avec 17,192 Ko
  7. calculatrice NumWorks avec 13,658 Ko
  8. logiciel web NumWorks avec 5,946 Ko
Bravo Lionel, tu arrives à améliorer malgré la limitation très basse du matériel ! :bj:

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 17:01
by critor
Classement des pythonettes par performances en calcul entier :
  1. application MicroPython sur TI-Nspire en 1,41s
  2. application MicroPython sur TI-Nspire CM / CX CR3- en 1,56s
  3. application MicroPython sur TI-Nspire CX CR4+ en 2,40s
  4. NumWorks en 3,74s
  5. Casio Graph 90+E en 4,75s
  6. HP Prime G2 en 8,81s
  7. application CasioPython sur Casio Graph 35+E/75+E / 35+USB/75/95 SH4 en 9,56s
  8. application CasioPython sur Casio Graph 35+USB/75/85/95 SH3 en 12,99s
  9. HP Prime G1 en 20,73s
  10. module externe TI-Python pour TI-83 Premium CE en 23,20s
  11. firmware tiers sur module externe TI-Python pour TI-83 Premium CE en 33,48s
  12. application KhiCAS sur Casio Graph 90+E en 60,71s
La par contre, le firmware "amélioré" pour le TI-Python est décevant... :#roll#:

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 17:08
by critor
Trouvé un petit bug.

Dans la console, on peut saisir rapidement les noms de variables et fonctions définies via la touche
var
:
Image

Dans le cas de fonctions, avec le firmware officiel le curseur revient automatiquement dans les parenthèses :
Image

Ce n'est pas le cas avec le firmware tiers, il faut donc revenir manuellement en arrière pour poursuivre la saisie des paramètres :
Image

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 17:19
by Adriweb
C'est... fort surprenant.
L'application fait donc un appel spécial a quelque chose côté firmware a ce moment là ?

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 17:32
by Lionel Debroux
Ouais, TI a certainement fait des choses supplémentaires pour déclencher un tel comportement, et donc, plus qu'un bug, ça serait une missing feature.

Quant à la performance, c'est curieux...

Re: TI-Python amélioré complexes+cmath utilisable avec TI-83

Unread postPosted: 01 May 2019, 17:40
by critor
Peut-être TI envoie simplement un caractère spécial, qui n'avait aucune raison d'être géré sur la Trinket.