Page 5 sur 6

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

Message non luPosté: 08 Avr 2019, 21:21
de Lionel Debroux
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.

Tout à fait... même si, devant l'évidence de l'inutilité de l'effort, ils feraient mieux d'arrêter les frais et de tout enlever.
Là, tout ce qu'ils sont en train de produire comme résultat, c'est que le matériel + logiciel d'analyse USB à bas coût, de JTAG à bas coût (par exemple la Blue Pill que tu avais mentionnée), et les infos associées, se répandent dans la communauté d'utilisateurs... Je n'ai pas encore les connexions matérielles qui vont bien, mais j'ai accès à un PicoScope 2 channels 1 GSPS à bande passante de 100 MHz, dont le logiciel du fabricant indique une capacité d'analyse USB 1.0/1.1.

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

Message non luPosté: 08 Avr 2019, 21:58
de Noury
Lionel Debroux a écrit:Tout à fait... même si, devant l'évidence de l'inutilité de l'effort, ils feraient mieux d'arrêter les frais et de tout enlever.
Là, tout ce qu'ils sont en train de produire comme résultat, c'est que le matériel + logiciel d'analyse USB à bas coût, de JTAG à bas coût (par exemple la Blue Pill que tu avais mentionnée), et les infos associées, se répandent dans la communauté d'utilisateurs... Je n'ai pas encore les connexions matérielles qui vont bien, mais j'ai accès à un PicoScope 2 channels 1 GSPS à bande passante de 100 MHz, dont le logiciel du fabricant indique une capacité d'analyse USB 1.0/1.1.

Bien vu Lionel.
Je viens d'ailleurs de découvrir la BlackMagicProbe, signalée par zardam.
Je vais probablement en commander une.
J'ai un analyseur logique à fréquence d'échantillonnage de 200MHz qui décode parfaitement plusieurs protocoles (dont l'usb 1.1), et un bon oscillo.
Ça crée un vrai challenge, et donne envie d'aller plus loin.
S'il n'y avait rien à "cracker", il n'y aurait aucun plaisir.
En fait, la seule chose qui me manque, c'est une TI83 :p
Mais je pense qu'il y a des choses à faire sur la Nspire. D'ailleurs, je n'avait pas pensé à l'usb. Merci TI.

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

Message non luPosté: 08 Avr 2019, 22:10
de Lionel Debroux
zardam mentionnait la BluePill beaucoup moins chère, https://www.ebay.fr/itm/STM32F103C8T6-M ... 3611409033 et autres, qui fait le boulot si on la munit du firmware adéquat.

Ton analyseur logique échantillonne à 200 MSPS, mais quelle est sa bande passante ?

Le protocole USB NavNet utilisé par les Nspire est bien documenté, même si ce n'est pas parfait. libticalcs, à la base de TILP, TIEmu et TilEm en est la principale implémentation alternative, sous GPL. Le protocole des CX II, s'il est différent de celui qu'utilisent les Nspire Clickpad / Touchpad / CX / CM, pourra être documenté de la même façon, en capturant et analysant les paquets USB échangés entre les logiciels de TI et la calculatrice.

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

Message non luPosté: 08 Avr 2019, 22:27
de Noury
Lionel Debroux a écrit:Ton analyseur logique échantillonne à 200 MSPS, mais quelle est sa bande passante ?

La fréquence d'échantillonnage est de 200MHz, et la fréquence max du signal à analyser est de 50MHz. Mais là, la durée est courte.
Je n'ai jamais eu besoin de toute la puissance, sauf pour analyser des signaux UART de longue durée, et encore c'était un problème de quantité de mémoire.
J'ai le modèle Scanaquad 200, tu peux voir ses caractéristiques ici.
Je l'ai acheté il y a 2 ans et demi.
Ils ont une série plus puissante, la série SP209.
C'est une boite française basée à Limoges.
Je leur fais un peu de pub, ils le méritent.
Leur logiciel "Scanastudio" fonctionne sous Linux, Mac et Windows. Il a des nouvelles release assez régulièrement.

Concernant la BluePill, je vais regarder ça. J'avoue que là, je suis novice.

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

Message non luPosté: 08 Avr 2019, 23:12
de zardam
Effectivement, j'ai trouvé ça plutôt amusant, même si l'intérêt est peut être un peu limité.

Il y a effectivement tout un lot de matériel disponible à très bas coût, ce qui change un peu la donne par rapport a il y a quelques années.

Techniquement, la solution TI est finalement très simple. Ils auraient pu faire un truc vraiment plus costaud, mais il me semble que ça "fait le job". Il est quasiment impossible de mettre quelque chose d'utile dans l'espace de flash qui n'est pas validé par le firmware.

En tout cas il est possible d'aller plus loin. La calculatrice ne fait qu'une fois la vérification du firmware. On pourrait très bien n'en conserver qu'une fraction, et modifier le bootloader pour qu'il ne flashe pas réellement le module en cas d'échec par exemple.

Et enfin, la méthode reste valable sur cette version, donc au pire il suffit d'éviter les upgrades.

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

Message non luPosté: 09 Avr 2019, 10:22
de Noury
Lionel Debroux a écrit:zardam mentionnait la BluePill beaucoup moins chère, https://www.ebay.fr/itm/STM32F103C8T6-M ... 3611409033 et autres, qui fait le boulot si on la munit du firmware adéquat.

Excellent!
À 1,54€, ça vaut le coup!
J'ai tout préparé au niveau logiciel. Il y a eu quelques conflits avec la toolchain ARM Nspire, mais c'est réglé.
Je n'attends plus que mon "viagra".
Merci pour l'info.

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

Message non luPosté: 09 Avr 2019, 13:01
de zardam
Je vais essayer de creuser un peu l'option de n'embarquer qu'une partie restreinte du firmware original. Si on n'en conserve que 32k (récupérés sur le filesystem FAT), on peut peut être tomber sur quelque chose d'utilisable.

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

Message non luPosté: 09 Avr 2019, 15:15
de Noury
@zardam comment as-tu trouvé que TP7 et TP8 correspondaient à SWDIO et SWDCLK ?
Si c'était en tâtonnant, quelles précautions as-tu prises ?

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

Message non luPosté: 09 Avr 2019, 21:27
de zardam
De mémoire, j'ai juste suivi les pistes sur la carte.

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

Message non luPosté: 20 Avr 2019, 00:44
de zardam
J'ai un peu avancé sur l'option de ne conserver qu'une partie du firmware original, mais il y a plus simple en fait. Si la vérification échoue, la calculatrice flashe le module, mais elle ne refait pas une vérification tout de suite après ! Donc en utilisant un bootloader qui ne flashe pas réellement le module, on peut utiliser le firmware que l'on veut. C'est "presque" utilisable. Le flashage au lancement de l'application n'est pas très gênant, mais la calculatrice essaye aussi de flasher le module lors de la sortie de l'éditeur de script, et ça, c'est assez pénible...

Sinon, j'ai toujours un peu de mal à faire fonctionner vraiment correctement le firmware, peut être à cause de cette histoire de handshake, ou d'un problème de protocole USB. Avec CircuitPython 4, le shell fonctionne correctement, mais l'upload des fichiers échoue, et avec CircuitPython 3, l'upload des fichiers fonctionne, mais le shell pose des problèmes... (après quelques modifications dans la stack USB)