π
<-
Chat plein-écran
[^]

1ère détection réussie Arduino Leonardo sur TI-Nspire CX

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude critor » 21 Fév 2016, 17:52

6577Dans une actualité précédente, la gestion du protocole ASI (Asynchronous Serial Interface) rajoutée avec le dernier OS TI-Nspire CX 4.2 nous faisait supposer que le nouveau périphérique USB dont la gestion semblait être rajoutée depuis plusieurs semaines aux TI-83 Premium CE et TI-Nspire CX était une carte de développement.
Nous avons donc testé plusieurs cartes :
  • Arduino Leonardo
  • Arduino Uno
  • TI-LaunchPad Stellaris LM4F120
  • TI-LaunchPad MSP-EXP432P401R
Toutes ces cartes ont été détectées correctement par le dernier logiciel TI-Nspire 4.2 tournant sur un ordinateur ! :bj:

65826583Mais en pratique, seule la dernière a pu être détectée par une véritable calculatrice TI-Nspire CX 4.2.



Rien de vraiment surprenant à cette différence. Sur ordinateur, la détection des périphériques est déléguée au système d'exploitation qui en connaît énormément.
Sur la calculatrice, pour le système d'exploitation TI-Nspire CX 4.2 il a donc été fait le choix d'embarquer un nombre limité de ressources.

Nous découvrions alors par la suite sur une page d'un enseignant partenaire que seules les cartes de développement de la famille TI-LaunchPad MSP43x (notamment MSP430 et MSP432) étaient supportées.



Même si ces cartes sont quasiment données par le constructeur avec une entrée de gamme à moins de 10€ et aucun modèle ne dépassant les 20€, on peut trouver dommage de ne pas pouvoir utiliser sa calculatrice avec des cartes de développement concurrentes peut-être plus familières à programmer pour toi, surtout que ces cartes utilisent le même protocole... :'(

Précisons qu'un périphérique USB s'identifie auprès de son hôte en fournissant essentiellement deux informations :
  • le VID identifiant le fabricant (Vendor ID)
  • le PID identifiant le produit (Product ID)
Or, grâce à notre programme de détection , ces deux informations nous ont gentiment été fournies pour la carte MSP432 à l'écran de la calculatrice, respectivement 0x0451 et 0xBEF3.



6596Jimbauwens a donc eu l'idée de reprogrammer sa carte Arduino Leonardo pour y falsifier ces deux identifiants, faisant ainsi passer sa carte pour une TI-LaunchPad MSP432.
Et bingo la carte est alors bel et bien détectée sur le port COM1 de sa calculatrice TI-Nspire CX CAS 4.2 ! :bj:



Voilà, tu peux donc en théorie utiliser désormais n'importe quelle carte de développement avec ta TI-Nspire CX 4.2, pourvu que tu trouves la procédure de falsification des identifiants USB qui risque d'être spécifique à chaque carte.

A bientôt ! ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.4%
 
Messages: 41498
Images: 14640
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude geckow » 22 Fév 2016, 13:50

Est-ce que Jimbauwens a expliqué comment il a procédé pour changer les VID/PID de son Arduino ?
J'ai trouvé une procédure pour les puces FTDI (http://www.alauda.ro/2013/11/06/changin ... scriptors/) mais aucune pour le ATmega16U2 (pour l'Arduino Uno par ex, un peu de doc ici : https://www.arduino.cc/en/Hacking/DFUProgramming8U2) ni pour le CH340 (présent dans beaucoup de clones d'Arduino Nano/Uno/Mega : http://www.seeedstudio.com/wiki/images/ ... DS1_EN.PDF)

Edit : Quelques infos pour le ATmega16U2, la source est ici : https://github.com/arduino/Arduino/tree ... -usbserial et les VID/PID sont contenus dans "Descriptors.c", plus qu'à recompiler ! (d'autres infos ici : http://hunt.net.nz/users/darran/weblog/ ... art_1.html) Si quelqu'un a des infos pour mon clone d'Arduino Mega avec un CH340G, je suis preneur :D
Avatar de l’utilisateur
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 8.2%
 
Messages: 15
Inscription: 21 Juil 2013, 10:03
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S SI

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude jimbauwens » 22 Fév 2016, 14:57

You can just change the VID and PID in the boards.txt configuration file (in the Arduino folder) for devices that have a direct USB connection (no intermediate USB chip). Don't forget to add the VID and PID to the board identifier VID/PID list, otherwise the Arduino IDE will possibly not detect your device anymore.
Avatar de l’utilisateur
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 30.3%
 
Messages: 54
Inscription: 13 Mai 2011, 00:00
Localisation: Belgium
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Computer Science @ VUB University Brussels

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude geckow » 22 Fév 2016, 15:37

Only for Leonardo and Micro right ? And changes stay on board reset ?
Dernière édition par geckow le 22 Fév 2016, 18:44, édité 1 fois.
Avatar de l’utilisateur
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 8.2%
 
Messages: 15
Inscription: 21 Juil 2013, 10:03
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S SI

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude jimbauwens » 22 Fév 2016, 15:53

It is possible to change the PID/VID of an Arduino UNO, but it is not as easy as on those two boards. And yes, changes stay on board reset.
Avatar de l’utilisateur
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 30.3%
 
Messages: 54
Inscription: 13 Mai 2011, 00:00
Localisation: Belgium
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Computer Science @ VUB University Brussels

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude geckow » 22 Fév 2016, 18:44

Il n'y aurait pas moyen de créer un programme avec ndless afin de patcher au démarrage le driver chargé pour remplacer les VID/PID des MSP432 par d'autres qu'on lui donne ?

Effectivement, avec une autre carte (testé avec un Arduino Uno et un Mega) on obtient un "Impossible de communiquer avec le périphérique connecté au port 1 de la station" et ASIConnectListener ne trouve rien :(
Dernière édition par geckow le 22 Fév 2016, 21:34, édité 1 fois.
Avatar de l’utilisateur
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 8.2%
 
Messages: 15
Inscription: 21 Juil 2013, 10:03
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S SI

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude jimbauwens » 22 Fév 2016, 21:01

gecko16300 a écrit:Il n'y aurait pas moyen de créer un programme avec ndless afin de patcher au démarrage le driver chargé pour remplacer les VID/PID des MSP432 par d'autres qu'on lui donne ?

That should be possible.


I uploaded an example application here to probe an USB sensor: archives_voir.php?id=440541
Avatar de l’utilisateur
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 30.3%
 
Messages: 54
Inscription: 13 Mai 2011, 00:00
Localisation: Belgium
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Computer Science @ VUB University Brussels

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude geckow » 22 Fév 2016, 21:33

Wow... It opens great opportunities ! We could make really cheap sensors for our calculator !
Do you know a way to dump the ram or to edit it (like an hex editor) ?

In fact it just reads the serial output from the Leonardo (which is sent as response to getValue()) ? Data rate must be 115200 bauds or we can set it in the lua program ?

(Sorry for my English :#roll#: )
Avatar de l’utilisateur
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 8.2%
 
Messages: 15
Inscription: 21 Juil 2013, 10:03
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S SI

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude jimbauwens » 22 Fév 2016, 23:17

You could use firebird-emu to search the RAM for the VID/PIDs and then use some simple C code to change the value.

You can configure the baud rate (the manual mentions 9600 and 115200).

The TI-Nspire requests the current temperature by sending 'T' to the Leonardo (port:write) and waits for an answer. The Leonardo will query the sensor and reply with 'Txx.xx;' where xx.xx is the current temperature in celsius. If the Leonardo doesn't understand the TI-Nspire (bad command, etc) it will respond with 'E;'. The Lua code just ignores this for now.
Avatar de l’utilisateur
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 30.3%
 
Messages: 54
Inscription: 13 Mai 2011, 00:00
Localisation: Belgium
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Computer Science @ VUB University Brussels

Re: 1ère détection réussie Arduino Leonardo sur TI-Nspire CX

Message non lude geckow » 23 Fév 2016, 18:40

Well thanks, I tried, but I can't manage to do it... Is there an integrated RAM editor in firebird-emu ?
If I try with a RAM hex editor (HxD), I can't find interesting 0451 or BEF3 strings... Image
Avatar de l’utilisateur
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 8.2%
 
Messages: 15
Inscription: 21 Juil 2013, 10:03
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S SI

Suivante

Retourner vers News TI-Nspire

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 158 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1524 utilisateurs:
>1490 invités
>29 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)