Remplacement TI-Python par Adafruit Trinket M0 ou autre
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
J'ai un peu joué avec les descripteurs USB remontés par CircuitPython, et les premiers octets du nom du périphérique MSC semblent influencer les 4 derniers digits du numéro de version affiché par la calculatrice, mais pour l'instant, je n'arrive pas à faire que la calculatrice ne mette pas à jour le module. C'est peut être un mécanisme de "protection"...
-
zardamPremium
Niveau 9: IC (Compteur Infatigable)- Posts: 233
- Images: 13
- Joined: 11 Oct 2017, 23:39
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Merci pour ta découverte, c'est très intéressant.
Sinon, on a une question pour toi par ici :
viewtopic.php?t=22242&p=241078#p241078
Sinon, on a une question pour toi par ici :
viewtopic.php?t=22242&p=241078#p241078
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41984
- Images: 15890
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
J'ai un peu continué mes investigations, et je suis à peu près certain que TI à implémenté une authentification "non triviale" du firmware du module. À suivre...
-
zardamPremium
Niveau 9: IC (Compteur Infatigable)- Posts: 233
- Images: 13
- Joined: 11 Oct 2017, 23:39
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
J'ai perdu une bonne partie de ma nuit, mais j'ai fini par comprendre le mécanisme d'authentification du module
Je vais essayer de préparer un truc sympa si j'ai un peu de temps ce weekend (et bien sûr avec les détails du comment )
Je vais essayer de préparer un truc sympa si j'ai un peu de temps ce weekend (et bien sûr avec les détails du comment )
-
zardamPremium
Niveau 9: IC (Compteur Infatigable)- Posts: 233
- Images: 13
- Joined: 11 Oct 2017, 23:39
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Excellent! Voila qui ouvre peut-etre la possibilite de transformer le poisson d'avril du portage de giac sur ti83 en realite.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3663
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Très bonne nouvelle, en effet
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Merci @zardam.
Par simple curiosité, la validation se ferait comment actuellement ?
Par simple curiosité, la validation se ferait comment actuellement ?
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41984
- Images: 15890
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Ce matin, j'ai cherché des boards avec 256+ KB de RAM et 2+ MB de Flash, pour un éventuel portage de giac + giacpy + micropython. Beaucoup de références n'ont pas de telles caractéristiques pourtant pas fantastiques...
Parmi les matériels sympa, il y a:
* le MAX32620 (256 KB RAM, 2 MB Flash) et sa board MAX32620FTHR, https://www.maximintegrated.com/en/prod ... 0FTHR.html / https://os.mbed.com/platforms/MAX32620FTHR/ , qui, contrairement à beaucoup de boards, n'a pas de chip BLE / WiFi;
* le MAX32630 (512 KB RAM, 2 MB Flash) et sa board MAX32630FTHR, http://www.maximintegrated.com/max32630fthr / https://os.mbed.com/platforms/MAX32630FTHR/ , mais là, il y a un chip BT;
* l'Adafruit Feather HUZZAH32 à base d'ESP32, https://www.adafruit.com/product/3405 , 520 KB SRAM + 4 MB Flash (et dual core, mais ça...), donc théoriquement de quoi faire un portage raisonnablement complet de giac, si le code Xtensa est aussi compact que le code ARM ou SH-4. En revanche, WiFi, comme standard sur ESP8266 et ESP32;
* la moins chère et la plus puissante, la WEMOS D32 Pro à base d'ESP32, https://wiki.wemos.cc/products:d32:d32_pro , 4 MB RAM persistante + 4 MB Flash... mais donc WiFi, elle aussi.
* les PyBoards D "récentes", comme celle à base de STM32F767, https://store.micropython.org/product/PYBD-SF6-W4F2 , 512 KB RAM et 2 MB Flash interne + 2 MB Flash externe XIP + 2 MB Flash externe stockage utilisateur. Bien entendu, le portage de MicroPython est "parfait", puisque ce sont les boards de référence (dont l'achat doit aider à financer le développement de MicroPython ?). En revanche, il y a BT + WiFi, et le prix est plus du double de celui des autres boards, qu'on trouve vers 20€
Le pinout des deux boards Maxim est le même que celui des Adafruit Feather, et les deux permettent d'ajouter des chips de Flash QSPI jusqu'à 16 MB, avec XIP bien entendu, ça se vérifie facilement dans les datasheets. On pourrait donc monter les mêmes chips que pour les machines NumWorks, peut-être avec un boîtier différent.
En revanche, gros défaut des deux boards Maxim: je ne vois pas de portage de MicroPython / CircuitPython... c'est évidemment faisable, d'autant que "même pinout que les Feather" implique "même sous-ensemble commun de périphériques" (en revanche, pas nécessairement "mêmes contrôleurs" et encore moins "mêmes MMIOs"), mais c'est du boulot supplémentaire.
Pourquoi pas les Adafruit Feather M4 Express, ItsyBitsy M4 Express ou Metro M4, au fait ? Parce qu'elles n'ont que 192 KB de RAM, mais surtout, que leurs 2 MB de Flash externe QSPI complétant les 512 KB internes sont utilisés par CircuitPython comme stockage de données plutôt qu'en mode XIP pour le code, et qu'il n'y a pas d'autre port QSPI accessible.
Il y a aussi les Teensy 3.6, dont Adafruit fait partie des revendeurs... mais j'ai du mal à trouver des infos claires sur la disponibilité et l'accessibilité d'un bus QSPI. La datasheet de 2200+ pages, c'est bien, mais ce n'est pas ce que je considère comme clair.
Parmi les matériels sympa, il y a:
* le MAX32620 (256 KB RAM, 2 MB Flash) et sa board MAX32620FTHR, https://www.maximintegrated.com/en/prod ... 0FTHR.html / https://os.mbed.com/platforms/MAX32620FTHR/ , qui, contrairement à beaucoup de boards, n'a pas de chip BLE / WiFi;
* le MAX32630 (512 KB RAM, 2 MB Flash) et sa board MAX32630FTHR, http://www.maximintegrated.com/max32630fthr / https://os.mbed.com/platforms/MAX32630FTHR/ , mais là, il y a un chip BT;
* l'Adafruit Feather HUZZAH32 à base d'ESP32, https://www.adafruit.com/product/3405 , 520 KB SRAM + 4 MB Flash (et dual core, mais ça...), donc théoriquement de quoi faire un portage raisonnablement complet de giac, si le code Xtensa est aussi compact que le code ARM ou SH-4. En revanche, WiFi, comme standard sur ESP8266 et ESP32;
* la moins chère et la plus puissante, la WEMOS D32 Pro à base d'ESP32, https://wiki.wemos.cc/products:d32:d32_pro , 4 MB RAM persistante + 4 MB Flash... mais donc WiFi, elle aussi.
* les PyBoards D "récentes", comme celle à base de STM32F767, https://store.micropython.org/product/PYBD-SF6-W4F2 , 512 KB RAM et 2 MB Flash interne + 2 MB Flash externe XIP + 2 MB Flash externe stockage utilisateur. Bien entendu, le portage de MicroPython est "parfait", puisque ce sont les boards de référence (dont l'achat doit aider à financer le développement de MicroPython ?). En revanche, il y a BT + WiFi, et le prix est plus du double de celui des autres boards, qu'on trouve vers 20€
Le pinout des deux boards Maxim est le même que celui des Adafruit Feather, et les deux permettent d'ajouter des chips de Flash QSPI jusqu'à 16 MB, avec XIP bien entendu, ça se vérifie facilement dans les datasheets. On pourrait donc monter les mêmes chips que pour les machines NumWorks, peut-être avec un boîtier différent.
En revanche, gros défaut des deux boards Maxim: je ne vois pas de portage de MicroPython / CircuitPython... c'est évidemment faisable, d'autant que "même pinout que les Feather" implique "même sous-ensemble commun de périphériques" (en revanche, pas nécessairement "mêmes contrôleurs" et encore moins "mêmes MMIOs"), mais c'est du boulot supplémentaire.
Pourquoi pas les Adafruit Feather M4 Express, ItsyBitsy M4 Express ou Metro M4, au fait ? Parce qu'elles n'ont que 192 KB de RAM, mais surtout, que leurs 2 MB de Flash externe QSPI complétant les 512 KB internes sont utilisés par CircuitPython comme stockage de données plutôt qu'en mode XIP pour le code, et qu'il n'y a pas d'autre port QSPI accessible.
Il y a aussi les Teensy 3.6, dont Adafruit fait partie des revendeurs... mais j'ai du mal à trouver des infos claires sur la disponibilité et l'accessibilité d'un bus QSPI. La datasheet de 2200+ pages, c'est bien, mais ce n'est pas ce que je considère comme clair.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Par simple curiosité, la validation se ferait comment actuellement
Rien de très compliqué en fait. La calculatrice vérifie principalement 96 octets aléatoirement du firmware, et le numéro de version.
Il y a certainement autre chose, mais qui ne pose pas de problème avec un CircuitPython de base (mais qui coince encore avec une implémentation ad-hoc)
-
zardamPremium
Niveau 9: IC (Compteur Infatigable)- Posts: 233
- Images: 13
- Joined: 11 Oct 2017, 23:39
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Remplacement TI-Python par Adafruit Trinket M0 ou autre
Merci.
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 ?
J'ignore quelle commande l'application utilise pour récupérer des octets firmware, mais il faudrait donc un firmware qui lui renvoie toujours ce qu'elle veut. Firmware qui devra possiblement être redécliné pour chaque future version de l'application.
Et bref, si la version est bonne mais que les 96 octets ne lui plaisent pas, la calculatrice fait quoi ? Abandon ? Reflash ?
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 ?
J'ignore quelle commande l'application utilise pour récupérer des octets firmware, mais il faudrait donc un firmware qui lui renvoie toujours ce qu'elle veut. Firmware qui devra possiblement être redécliné pour chaque future version de l'application.
Et bref, si la version est bonne mais que les 96 octets ne lui plaisent pas, la calculatrice fait quoi ? Abandon ? Reflash ?
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41984
- Images: 15890
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
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 12 guests