π
<-

Remplacement TI-Python par Adafruit Trinket M0 ou autre

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby zardam » 06 Apr 2019, 17:13

Hm. Donc l'application PyAdaptr est incapable en l'état de fonctionner avec un firmware qu'elle ne connaît pas, par exemple une future version officielle ?


Oui. Elle va downgrader le module je pense. Dès qu'une vérification échoue, c'est reflash actuellement. Pour les versions futures, le mécanisme sera peut être modifié...

Pour du hardware compatible, pourquoi pas un Pi zéro en OTG ?
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby Lionel Debroux » 06 Apr 2019, 17:39

Et où le numéro de version est-il stocké ? En partie dans les descripteurs USB, comme tu le mentionnais plus haut ?

Dès qu'une vérification échoue, c'est reflash actuellement.

On sait pourquoi ils ont fait ça, mais ce n'est pas gentil de la part de TI...

Pour du hardware compatible, pourquoi pas un Pi zéro en OTG ?

Ah ben oui... je n'avais pas pensé et cherché aussi haut, malgré la Symbolibre ces jours-ci, mais bien sûr. C'est beaucoup plus puissant, moins cher, et probablement aussi moins de travail, puisque le portage de giac existe déjà. Et puis cette plate-forme ne serait pas limitée à MicroPython / CircuitPython, on peut avoir un vrai Python 3 avec quantité de modules, et plein d'autres choses.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby parisse » 06 Apr 2019, 18:13

Questions:
1/ si je comprends bien, si on veut dialoguer avec l'appli TI, il faut avoir une copie de firmware de TI pour pouvoir repondre a ces requetes,
2/ est-il indispensable de dialoguer avec l'appli TI? Je veux dire peut-on developper une appli native TI83 qui peut dialoguer avec le module externe?
3/ si on part sur du materiel en module externe, est-ce qu'il y a un obstacle technique a utiliser la Numworks? Parce qu'avec Numworks, on aurait certainement beaucoup moins d'obstacles, en tout cas il n'y aurait pas une volonte en face pour empecher que ca fonctionne.
4/ quel serait le prix d'un module externe? Parce que pour avoir du CAS, 20 euros le module externe, me semble la limite superieure a ne vraiment pas depasser, parce que 80+20=100 et au-dela autant acheter une calculatrice CAS tout de suite, c'est quand meme moins fatigant, moins cher si on prend une Casio Graph 90+e ou mode exam-proof pour une Prime, une nspire CAS ou un Classpad.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby zardam » 07 Apr 2019, 03:16

Et où le numéro de version est-il stocké ? En partie dans les descripteurs USB, comme tu le mentionnais plus haut ?


En partie, disons que c'était un effet de bord. La calculatrice fait des requêtes sur des LUN inexistants. Les CircuitPython "récents" répondent quand même avec le descripteur par défaut.

Ah ben oui... je n'avais pas pensé et cherché aussi haut, malgré la Symbolibre ces jours-ci, mais bien sûr. C'est beaucoup plus puissant, moins cher, et probablement aussi moins de travail, puisque le portage de giac existe déjà. Et puis cette plate-forme ne serait pas limitée à MicroPython / CircuitPython, on peut avoir un vrai Python 3 avec quantité de modules, et plein d'autres choses.


Il y a un "mais"... J'ai l'impression que la calculatrice n'aime pas vraiment alimenter un Raspberry. Elle coupe l'alimentation au bout de quelques secondes. Elle honore peut être ce qui est dans le descripteur ? Je n'ai pas encore vérifié...

1/ si je comprends bien, si on veut dialoguer avec l'appli TI, il faut avoir une copie de firmware de TI pour pouvoir repondre a ces requetes,


Oui. De toute façon, la calculatrice est assez insistante pour le "donner" donc pas vraiment de problème de ce coté.

2/ est-il indispensable de dialoguer avec l'appli TI? Je veux dire peut-on developper une appli native TI83 qui peut dialoguer avec le module externe?


Aucune idée.

3/ si on part sur du materiel en module externe, est-ce qu'il y a un obstacle technique a utiliser la Numworks? Parce qu'avec Numworks, on aurait certainement beaucoup moins d'obstacles, en tout cas il n'y aurait pas une volonte en face pour empecher que ca fonctionne.


Effectivement aucune barrière de ce coté. Ce qui est dommage, c'est qu'ils n'ont pas implémenté l'OTG sur le port, donc il faut que l'éventuel module externe soit auto alimenté.

4/ quel serait le prix d'un module externe? Parce que pour avoir du CAS, 20 euros le module externe, me semble la limite superieure a ne vraiment pas depasser, parce que 80+20=100 et au-dela autant acheter une calculatrice CAS tout de suite, c'est quand meme moins fatigant, moins cher si on prend une Casio Graph 90+e ou mode exam-proof pour une Prime, une nspire CAS ou un Classpad.


Tout dépend du matériel... mais c'est certainement possible de rester sur ce budget, en tout cas pour du "fait maison". Par exemple https://www.mouser.fr/ProductDetail/Esp ... 7oZg%3D%3D avec du WiFi (désactivable), mais pour le prix il y a 4Mo de Flash et 8Mo de RAM.

Sur ce, je vais un peu dormir. Une petite photo pour patienter (ce n'est plus le 1er avril ;) )

11056
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby parisse » 07 Apr 2019, 07:40

zardam wrote:
1/ si je comprends bien, si on veut dialoguer avec l'appli TI, il faut avoir une copie de firmware de TI pour pouvoir repondre a ces requetes,


Oui. De toute façon, la calculatrice est assez insistante pour le "donner" donc pas vraiment de problème de ce coté.

Pas de probleme pour l'obtenir, mais il faut le stocker meme si on ne s'en sert pas, donc utiliser de la place potentiellement pour rien, ce qui implique 4M de flash minimum. Ce qui n'est pas vraiment une limitation d'apres votre exemple, mais elimine certains materiels cites par Lionel.
Sauf a developper une autre appli native sur la 83, ce qui serait quand meme mieux pour faire du calcul formel, les menus Python n'etant pas vraiment adaptes. Ce qui implique de connaitre et pouvoir prendre le controle du port de communication cote 83.

Sur ce, je vais un peu dormir. Une petite photo pour patienter (ce n'est plus le 1er avril ;) )

11056

Tres convaincant, encore bravo!
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.1%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby Lionel Debroux » 07 Apr 2019, 08:21

J'ai l'impression que la calculatrice n'aime pas vraiment alimenter un Raspberry. Elle coupe l'alimentation au bout de quelques secondes. Elle honore peut être ce qui est dans le descripteur ? Je n'ai pas encore vérifié...

C'est fort possible. Les TI-Z80, TI-68k et probablement TI-eZ80 (pour les Nspire, je ne sais plus) ne tolèrent pas qu'on tire plus de quelques dizaines de mA, peut-être 100 mA sur les TI-eZ80, sur leur port USB.

2/ est-il indispensable de dialoguer avec l'appli TI? Je veux dire peut-on developper une appli native TI83 qui peut dialoguer avec le module externe?

Aucune idée.

Pour les TI-eZ80, la réponse est probablement oui, et la réalisation deviendra plus facile dans un futur plus ou moins proche.
La bonne compréhension de la communication USB sur les TI-eZ80 est limitée à un nombre restreint de personnes, mais elle est suffisante depuis un moment pour développer notamment un dumper de Flash qui parle un protocole "arbitraire", en l'occurrence celui de libticalcs ( https://github.com/debrouxl/tilibs/tree ... 834pce_usb ). De plus, des frameworks pour faciliter la communication sur le port USB sont en développement.
La communication avec des descripteurs et protocoles arbitraires sur les ports USB des 89T et de la famille 84+ est également bien comprise: dumpers libticalcs, Usb8x / Msd8x, Linky, etc. La 84+CSE, en particulier, dispose d'un écran couleur 320x240, même si son processeur trop faible ne peut pas le remplir rapidement, et pourrait être une cible de premier choix pour un TI-Python Adapter, ou clone amélioré. L'écran 160x100 de la 89T est moins pratique pour servir de terminal, mais c'est faisable; et puis grâce à son CAS, la 89T dispose d'un moteur de pretty-printing, qui prend bien sûr son propre format en entrée.

Pas de probleme pour l'obtenir, mais il faut le stocker meme si on ne s'en sert pas, donc utiliser de la place potentiellement pour rien, ce qui implique 4M de flash minimum. Ce qui n'est pas vraiment une limitation d'apres votre exemple, mais elimine certains materiels cites par Lionel.

Hélas, oui, il semble qu'il faille stocker au moins une version du firmware officiel embarqué dans la FlashApp, pour pouvoir répondre correctement à la calculatrice.
Si on veut aller plus loin, un module externe qui dispose de "beaucoup" de Flash et de la capacité OTG (ça n'est pas le cas de tous) pourrait se présenter d'abord comme un host USB, et implémenter le sous-ensemble du protocole DUSB (CARS) nécessaire à l'obtention de la FlashApp PyAdaptr (probablement Ready, Dirlist, Recv var, pourquoi pas Get Infos; libticables et libticalcs fournissent le code nécessaire, même s'il faudrait l'adapter pour de l'embarqué non Glib / Linux), avant de se déconnecter et reconnecter en tant que device USB TI-Python Adapter, capable néanmoins de recracher le firmware tel que PyAdaptr l'attend (ce qui peut être fait seulement si le VID:PID du host est celui des 83PCE, par exemple). La commutation host / device pourrait être déclenchée par l'utilisateur en appuyant sur un bouton. C'est faisable, mais c'est du boulot dont on se passerait bien...

4 MB de Flash et 8 MB de RAM, c'est bien, mais on aurait besoin de davantage de Flash que de RAM, s'il faut stocker plusieurs versions du firmware TI-Python Adapter pour répondre à la FlashApp. Par exemple, la WEMOS D32 Pro 2.0 que je n'ai pas postée plus haut, https://wiki.wemos.cc/products:d32:d32_pro -> https://www.aliexpress.com/store/produc ... 16057.html , 8 MB RAM et 16 MB Flash, permet de stocker à la fois un build assez complet de giac, et plusieurs versions du firmware TI-Python Adapter.

D'ailleurs... comme je doute que TI s'amuse à enlever cette protection à l'avenir, même si on la documente et qu'on fournit des équipements qui l'émulent, mon firmware tiers pour le TI-Python Adapter est définitivement éliminé. Il a des capacités utiles en milieu scolaire que n'a pas le firmware officiel, mais tant pis. Déjà que j'ai du mal à le faire rentrer dans les 184 KB de Flash fournis, alors faire rentrer un deuxième firmware presque aussi gros...
Je peux arrêter de le développer, même si c'est encore trop tôt pour l'annoncer largement - attendons au moins que tous les détails de la protection de TI soient publics :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby critor » 07 Apr 2019, 10:00

Il ne faut pas abandonner le firmware amélioré Lionel, puisque le TI-Python est le matériel qui sera le plus fréquent chez les utilisateurs français.

Des solutions existent comme :
  • développer un remplacement à l'appli PyAdaptr
  • patcher l'appli PyAdaptr - ça ne marchera pas en mode examen, mais on s'en moque pour déjà au moins 2019
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41987
Images: 15892
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby critor » 07 Apr 2019, 10:13

Autre piste également, mettre la calculatrice dans un état où elle va toujours vérifier les mêmes octets, ce qui serait donc minimal à stocker.
Peut-être avec un programme qui manipulerait la graine aléatoire avant le lancement de l'appli.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41987
Images: 15892
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby critor » 07 Apr 2019, 10:25

zardam wrote:Une petite photo pour patienter (ce n'est plus le 1er avril ;) )

11056

Tiens donc, tu as donc quand même réussi à contourner les diverses vérifications ? ;)
Bravo ! :bj:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41987
Images: 15892
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre

Unread postby zardam » 08 Apr 2019, 21:07

critor wrote:Autre piste également, mettre la calculatrice dans un état où elle va toujours vérifier les mêmes octets, ce qui serait donc minimal à stocker.


En tout cas j'ai essayé juste après un Reset plusieurs fois, et la requête n'est pas la même.

critor wrote:patcher l'appli PyAdaptr - ça ne marchera pas en mode examen, mais on s'en moque pour déjà au moins 2019


Effectivement, peut être juste quelques octets à patcher pour éviter la vérification.

Lionel Debroux wrote:D'ailleurs... comme je doute que TI s'amuse à enlever cette protection à l'avenir


Le plus gros problème, c'est qu'ils peuvent aussi la changer à tout moment.

Sinon pour les détails "techniques", le plus gros est ici : https://github.com/zardam/tinyusb/commi ... 0d852fbe41

Il y a un petit "truc" en plus, c'est le mode de calcul de l'adresse : 256*1024 + p_cbw->command[5] + (p_cbw->command[2] << 8) + (p_cbw->command[3] << 14) + 0x2000 Le 256*1024 est juste là car j'ai mis le firmware TI à cet offset dans la flash. Au début je comptais utiliser la première partie comme "disque USB", mais la calculatrice doit vérifier le taille car ça finissait en reflash. Le reste n'est que cosmétique : https://github.com/zardam/circuitpython ... 306b88d1ae (activation de la flash & VID/PID USB)

Pour le mode Raspberry (USB to UART en fait) c'est ici : https://github.com/zardam/circuitpython ... 566e1583a9 Attention, c'est complètement "à l'arrache" (un mix de fonctions du backend Python et de coper/coller...)

Sinon j'ai commencé une implémentation du USB to UART avec la lib tinyUSB directement, flashée dans les 64 Ko de flash réservés au FS FAT (et avec le bootloader adapté). Ça ne fonctionne pas pour le moment, il y a certainement une vérification qui ne passe pas... En tout cas, cette lib semble bien faite, et l'exemple fourni est une très bonne base pour faire ça.
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

PreviousNext

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
773 utilisateurs:
>747 invités
>19 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)