π
<-

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

Unread postby critor » 21 Feb 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.2%
 
Posts: 41951
Images: 15649
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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

Unread postby geckow » 22 Feb 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
User avatar
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 8.2%
 
Posts: 15
Joined: 21 Jul 2013, 10:03
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S SI

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

Unread postby jimbauwens » 22 Feb 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.
User avatar
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 30.3%
 
Posts: 54
Joined: 13 May 2011, 00:00
Location: Belgium
Gender: Male
Calculator(s):
MyCalcs profile
Class: Computer Science @ VUB University Brussels

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

Unread postby geckow » 22 Feb 2016, 15:37

Only for Leonardo and Micro right ? And changes stay on board reset ?
Last edited by geckow on 22 Feb 2016, 18:44, edited 1 time in total.
User avatar
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 8.2%
 
Posts: 15
Joined: 21 Jul 2013, 10:03
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S SI

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

Unread postby jimbauwens » 22 Feb 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.
User avatar
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 30.3%
 
Posts: 54
Joined: 13 May 2011, 00:00
Location: Belgium
Gender: Male
Calculator(s):
MyCalcs profile
Class: Computer Science @ VUB University Brussels

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

Unread postby geckow » 22 Feb 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 :(
Last edited by geckow on 22 Feb 2016, 21:34, edited 1 time in total.
User avatar
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 8.2%
 
Posts: 15
Joined: 21 Jul 2013, 10:03
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S SI

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

Unread postby jimbauwens » 22 Feb 2016, 21:01

gecko16300 wrote: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
User avatar
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 30.3%
 
Posts: 54
Joined: 13 May 2011, 00:00
Location: Belgium
Gender: Male
Calculator(s):
MyCalcs profile
Class: Computer Science @ VUB University Brussels

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

Unread postby geckow » 22 Feb 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#: )
User avatar
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 8.2%
 
Posts: 15
Joined: 21 Jul 2013, 10:03
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S SI

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

Unread postby jimbauwens » 22 Feb 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.
User avatar
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 30.3%
 
Posts: 54
Joined: 13 May 2011, 00:00
Location: Belgium
Gender: Male
Calculator(s):
MyCalcs profile
Class: Computer Science @ VUB University Brussels

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

Unread postby geckow » 23 Feb 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
User avatar
geckow
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 8.2%
 
Posts: 15
Joined: 21 Jul 2013, 10:03
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S SI

Next

Return to News TI-Nspire

Who is online

Users browsing this forum: No registered users and 16 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.
709 utilisateurs:
>668 invités
>32 membres
>9 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)