Le coeur du Matrix Ctrlr est une carte de type Arduino sur laquelle s'exécute un logiciel (ou firmware) qui permet de gérer toute la logique de la machine.
Ce logiciel est open source, c'est à dire libre d'accès et de modifications sans payer de licence commerciale. Il est disponible sur le site d'Alpes Machines mais également sur Github.
voir le lien: https://www.alpesmachines.net/index.php/matrix_ctrlr/building/update-firmware
La procédure de mise à jour est décrite sur le site depuis un MAC mais pas pour PC (l'outil Xloader est obsolète).
Il convient d'être attentif sur cette procédure de mise à jour du firmware, sous peine d'écraser le bootloader de l'Arduino (le bootloader c'est le logiciel dans l'arduino qui permet d'y téléverser le firmware). Votre serviteur ayant pu en faire la regretable expérience - n'utilisez PAS https://github.com/twinearthsoftware/ArduinoSketchUploader par exemple).
Voici une une procédure détaillée "à partir de zéro" pour ceux qui ne sont pas familier avec les Arduinos. On supposera tout de même que l'utilisateur est familier avec l'utilisation de Windows. C'est un peu technique, mais cela vous garantit une mise à jour du firmware avec les outils Arduino à jour qui sont fait pour.
A l'issue de ce tuto vous serez un maître Jedi du téléversement de firmware sur Arduino ;)
Les cartes Arduino
Les cartes Arduino sont de différents modèles (voir arduino.cc). L'entreprise Arduino fabrique les modèles originaux. Comme les Arduinos sont open-hardware (c'est à dire les schéma sont mis à disposition gratuitement sans licences commerciales), il existe de nombreux clones. Ces clones sont la plupart du temps nettement mois chers, avec quelquefois certaines limitations, notamment sur les drivers permettant leur connexion à un PC ou un MAC).
L'Arduino fourni avec le Matrix Ctrlr est un clone d'Arduino Mega 2560 R3. Le fabricant est GreenTech.
https://www.geeetech.com/wiki/index.php/Iduino_MEGA_R3
Faire reconnaitre l'Arduino par son PC
Cette opération n'est nécessaire que la première fois.
Un Arduino se branche sur un PC via son port USB. Dans la plupart des cas, l'Arduino est reconnu comme un port série (ou port "COM") et il apparait dans le gestionnaire de périphérique de Windows.
Si ce n'est pas le cas, L'Arduino n'est pas reconnu (cela a été mon cas sur Windows 8.1) Il apparait alors en haut du gestionnaire de périphérique avec un point d'exclamation jaune à côté.
Pour récupérer les drivers, le plus simple est d'installer l'environnement de dévelopement (IDE) Arduino qui contient la plupart des drivers.
voir sur cette page https://www.arduino.cc/en/main/software.
Une fois l'IDE installé, sélectionner dans le gestionnaire de périphérique l'icône de l'Arduino non reconnu, et faire une installation manuelle du driver en choissisant comme répertoire le répertoire "drivers" de l'IDE Arduino (bouton droit, "rechercher un pilote", puis "rechercher un pilot sur l'ordinateur").
Votre Arduino est normalement reconnu après cette procédure.
Mettre à jour le firmware
Vous avez deux options:
- compiler vous même le code source (voir le lien sur le site d'Alpes Machines) avec l'IDE en exécutable (un fichier .ino.hex) , puis le téléverser avec l'IDE. Pour compiler le code il faut avoir installé dans son IDE les librairies utilisées à jour ce qui n'est pas forcément trivial, la liste et les versions n'étant pas détaillées (j'ai laissé tombé au bout de 20 minutes).
- téléverser directement l'exécutable fournit sur le site d'Alpes Machine (il se trouve également dans Github).
On détaille ici la deuxième option.
Il n'y a pas directement une fonction dans l'IDE permettant de téléverser un fichier .ino.hex sur un Arduino. Par contre, à chaque fois que vous compilez et exécutez un sketch (un code source) c'est ce que fait l'IDE en ligne de commande. L'astuce est de récupérer une ligne de commande et d'y remplacer le chemin du fichier .ino.hex à téléverser.
Récupérer la ligne de commande :
Lancez l'IDE Arduino. Assurez-vous dans le menu "Tools" de bien sélectionner le port COM correspondant à votre Arduino, et de sélectionner le modèle d'Arduino correspondant.
Chargez ensuite le sketch "Blink" depuis les exemples (Fichier/Exemples/01.Basics Blink). Ce sketch est un exemple qui fait clignoter une led de l'Arduino. On va téléverser ce sketch dans l'Arduino pour récupérer la ligne de commande qu'on réutilisera ensuite pour téléverser la mise à jour du Matrix-Ctrlr (vous suivez ?) ;)
Allez dans les les préférences de l'IDE et activez les traces.
Puis Televerser "Blink" dans l'arduino (Icone "=>") dans le menu.
Vous allez voir plein de messages dans la partie basse de l'IDE qui se termine normalement en rouge par
...
avrdude: verifying ...
avrdude: 1460 bytes of flash verified
avrdude done. Thank you.
...
(les nombres peuvent changer). Si vous avez laissé l'Arduino branché sur le Matrix Ctrlr, tout l'affichage se fige (forcément, on vient d'écraser le logiciel par notre exemple). Pas de panique, c'est normal.
Remonter dans la trace de l'IDE jusqu'a trouver la dernière ligne blanche. Vous devrier avoir quelquechose du style:
...
global variables use 9 bytes (0%) of dynamic memory, leaving 8183 bytes for local variables. Maximum is 8192 bytes.
D:\appz\arduino-1.8.9\hardware\tools\avr/bin/avrdude -CD:\appz\arduino-1.8.9\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cwiring -PCOM4 -b115200 -D -Uflash:w:C:\Users\linux\AppData\Local\Temp\arduino_build_186497/Blink.ino.hex:i
...
Cette ligne de commande est celle qui téléverse le fichier exécutable du sktech "Blink" (Blink.ino.Hex) dans l'arduino.
Il suffit alors d'ouvrir une ligne de commande, d'y recopier cette ligne de commande en changeant le chemin du fichier Blink.ino.hex par celui du firmware du Matrix Ctrlr. Prenez bien le fichier qui se termine par "ino.with_bootloader.mega.hex", sinon vous ne pourrez plus faire de mise à jour depuis l'IDE.
Changez uniquement le chemin du fichier .hex, ne modifiez rien d'autre.
ex:
D:\appz\arduino-1.8.9\hardware\tools\avr/bin/avrdude -CD:\appz\arduino-1.8.9\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cwiring -PCOM4 -b115200 -D -Uflash:w:D:\incoming\téléchargement\Matrix_Ctrlr_firmware\Matrix_Ctrlr_v1.07a\Matrix_Ctrlr_v1.07a.ino.with_bootloader.mega.hex:i
Validez ensuite, vous devriez voir une trace similaire à cette précédemment et votre Matrix-Cltr qui revient à la vie avec le nouveau firmware.
Example pendant le téléversement:
...qui se termine par:
....
Reading | ################################################## | 100% 12.27s
avrdude: verifying ...
avrdude: 261406 bytes of flash verified
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (E:FF, H:D8, L:FF)
avrdude done. Thank you.
Cette procédure peut être reprise pour n'importe quel type d'Arduino et de firmware.