jeudi 10 octobre 2013

Réglage du firmware, partie 2 : Arduino

Configurer Arduino :


Après avoir téléchargé et installé Arduino à partir de RepRapWold, vérifiez que vous avez la carte Minitronics sélectionnée dans Outil / Type de carte / Minitronics. 



Connectez la carte Minitronics à un port USB de votre ordinateur.

Avertissement ! 
Ne jamais brancher ou débrancher les moteurs lorsque la carte est sous tension ! 


Ensuite, sélectionnez le port com. En général, COM3 ou supérieur (COM1 et COM2 sont généralement réservés aux ports série matériels). Si vous hésitez, déconnectez la carte Minitronics et rouvrez le menu, l'entrée qui disparaît doit être celle de la carte. une fois le port défini, rebranchez la carte et sélectionnez le port (dans mon cas COM4).



Charger Marlin :


Maintenant (si ce n'est pas déjà fait), allez sur la page GitHub de Marlin et téléchargez le firmware en utilisant le bouton "Download Zip", décompressez le sur votre disque-dur.




A partir d'Arduino : faites Fichier / Ouvrir


Ouvrez le dossier "Marlin" pour obtenir cette fenêtre. Ensuite, cliquez sur le "Marlin" désigné par la flèche rouge :


Notes :
A la première ouverture, le raccourci a cet aspect :



Ensuite, il aura cet aspect :


Vous avez désormais le firmware Marlin sous les yeux. Il apparaît sous la forme de plusieurs onglets de fichier texte.



Pour pouvoir accéder à tous les onglets, vous devez utiliser la petite flèche en haut à droite :



Ainsi vous avez accès à tous les onglets, c'est assez impressionnant ; mais rassurez-vous, nous n'aurons à travailler que sur quelques onglets.


Pour pouvoir s'y retrouver dans le code, je vais utiliser les numéros de lignes. En bas de la fenêtre d'Arduino, vous trouverez affiché le numéro de ligne que vous avez sélectionné (ligne 12 dans cet exemple). Cela vous aidera à retrouver le code dont il est question. Mais attention, il est possible que suivant l’évolution de Marlin les numéros ne correspondent plus exactement.   





Notions de base :


Il y a deux sortes de texte dans le code. En premier, le "code" lui même qui doit obéir à une syntaxe très rigoureuse. La moindre faute empêchera Arduino de compiler le code (c'est pour cela qu'il y a une étape "Vérifier" à effectuer avant de téléverser le firmware dans la carte). Et il existe aussi une autre sorte de texte que l'on nomme "commentaire", il permet d'avoir des informations supplémentaires sur le code. les lignes qui sont commentées ne sont pas prises en compte par la machine. Cela permet aussi de mettre à l'écart des morceaux de code qui sont inutilisés. C'est très pratique car des options peuvent être activées et désactivées très facilement. Pour mettre un texte en commentaire, il suffit de taper au début de la ligne une double barre comme ceci : // . Pour réactiver un morceau de code, il suffit de supprimer la double barre. Le texte commenté prendra une teinte grise et le code décommenté sera en noir.     

Pour illustrer mes propos, nous allons vérifier la vitesse de transmission :

A la ligne 19, nous avons un commentaire qui explique que ce qui suit défini la vitesse de communication avec l'imprimante. Les lignes 20 et 21 sont deux options possibles, la double barre fonctionne comme un interrupteur. 
19   / / This determines the communication speed of the printer
20   # Define BAUDRATE 250000
21   / / # Define BAUDRATE 115200

Nous allons conserver la valeur de 250000 qui fonctionne avec la Minitronics.
Désormais, nous avons les connaissances de base pour démarrer notre configuration.



Configuration.h : 


Comme nous allons modifier le firmware, nous allons commencer par renommer notre version de Marlin.
Ouvrez l'onglet Comfiguration.h et à la ligne 12 remplacer "(none, default comfig)" par votre nom.  

8    // User-specified version info of this build to display in [Pronterface, etc] terminal window during
9    // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
10   // build by the user have been successfully uploaded into firmware.

11   #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
12   #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.

Par exemple :
8    // User-specified version info of this build to display in [Pronterface, etc] terminal window during
9    // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
10   // build by the user have been successfully uploaded into firmware.

11   #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
12   #define STRING_CONFIG_H_AUTHOR "(Les inventions de Nicolas)" // Who made the changes.

 

Cela est utile pour pouvoir vérifier la version du firmware qui est installée sur votre machine.



Choisir la carte Minitronics dans Configuration.h :


Il nous faut maintenant dire au programme quelle carte utiliser.
En commentaire, on trouve la liste des cartes supportées par cette version de Marlin.
Et à la ligne 58, vous pouvez voir la ligne de code qui définit la carte
50   // 701= Megatronics v2.0
51   // 702= Minitronics v1.0
52   // 90 = Alpha OMCA board
53   // 91 = Final OMCA board
54   // 301 = Rambo
55   // 21 = Elefu Ra Board (v3)

56
57   #ifndef MOTHERBOARD
58   #define MOTHERBOARD 7
59   #endif

 Vous devez y inscrire le numéro correspondant à la carte Minitronics, soit le numéro 702.

50   // 701= Megatronics v2.0
51   // 702= Minitronics v1.0
52   // 90 = Alpha OMCA board
53   // 91 = Final OMCA board
54   // 301 = Rambo
55   // 21 = Elefu Ra Board (v3)

56
57   #ifndef MOTHERBOARD
58   #define MOTHERBOARD 702
59   #endif

Avant d'enregistrer, nous allons vérifier le code pour savoir si nous n'avons pas fait de bêtises. Pour cela, appuyez sur le premier bouton rond en haut à gauche d'Arduino.




Arduino va vérifier ou "compiler" le code, en fait il le transforme en "langage machine" qui serait incompréhensible pour un humain (normal). Si tout se passe bien, il affichera la taille binaire du croquis, sinon, il y aura un message d'erreur.
Enregistrez votre travail sous un autre nom (par exemple : Malin_les_inventions_de_nicolas) pour conserver une version non modifiée (au cas où vous ne vous y retrouviez pas dans vos modifications).

Dans le prochain billet, nous définirons le type de l'imprimante, les butées et nous téléverserons le croquis pour les premiers tests.