Pré requis:
- Installer et lancer Visual Studio Code ( https://code.visualstudio.com/ )
- Faire SHIFT+ CTRL + X pour accéder (ou menu View / Extensions) pour accéder au menu d'installation / gestion des extensions
- Rechercher Platformio IDE, et l'installer
- Installer un client GIT (exemple de client graphique pour Windows : https://tortoisegit.org/ ou de client en ligne de commande: https://git-scm.com/download/win )
Récupération de GRBL:
- Le dépôt git de GRBL a déménagé. Il est désormais sur https://github.com/gnea/grbl
- Lancer un explorateur de fichiers et coller "%UserProfile%\Documents\PlatformIO\Projects" dans l'URL. C'est l'adresse ou Plaformio range par défaut ses projets
- Faire bouton de droite dans ce répertoire et sélectionner "Git Clone" en indiquant l'adresse https://github.com/gnea/grbl.git ou cloner le projet en ligne de commande.
- Au bout de quelques secondes les sources sont rapatriées et sont rangées dans "%UserProfile%\Documents\PlatformIO\Projects\grbl"
Explication sur la structure de GRBL:
Grbl n'est pas un projet Arduino à proprement parler. Il a été conçu pour être compilé avec "make". Toutefois il a été modifié pour être intégré en tant que bibliothèque Arduino. C'est ce qui donne au projet Git cette organisation si particulière. En voici une explication ( en partant de "%UserProfile%\Documents\PlatformIO\Projects\grbl" comme racine) :
- \build : Répertoire dans lequel sera compilé le programme si fabriqué avec la commande "make"
- \doc : Répertoire contenant quelques documentations au format Markdown
- \grbl : Les sources de GRBL à proprement parler
- \grbl\examples : Fichier d'exemples permettant d'utiliser \grbl en librairie arduino, et notamment \grbl\examples\grblUpload
- \Makefile : fichier permettant de compiler GRBL à l'aide de la commande "make"
Pour compiler le projet GRBL dans l'environnement Platformio, nous aurons donc besoin de :
- \grbl\examples\grblUpload\grblUpload.ino
- \grbl en tant que bibliothèque
Création du projet sur Platformio
- Nous allons partir d'un projet neuf et y coller les éléments dont nous allons avoir besoin . Pour ce faire, aller dans l'onglet platformio et faire "New Project"
- Renseigner la fenêtre comme suit, en prenant soin de ne pas cocher la case "use libraries installed by arduino IDE":
- Le projet Platformio sera créé dans le répertoire %UserProfile%\Documents\PlatformIO\Projects\grbl-arduino
- Supprimer "main.cpp" de %UserProfile%\Documents\PlatformIO\Projects\grbl-arduino\src
- Copier le fichier %UserProfile%\Documents\PlatformIO\Projects\grbl\examples\grblUpload\grblUpload.ino dans %UserProfile%\Documents\PlatformIO\Projects\grbl-arduino\src
- Copier le répertoire %UserProfile%\Documents\PlatformIO\Projects\grbl dans %UserProfile%\Documents\PlatformIO\Projects\grbl-arduino\libs
- A l'issue, le projet se présente comme suit :
- Lancer la compilation en cliquant sur l'icone "Platformio" (1) et en sélectionnant "build" (2):
- Au 1er lancement, Platformio doit télécharger quelques dépendances sur internet (le compilateur notamment). Cela peut prendre un peu de temps, mais ne sera plus nécessaire ensuite.
- A l'issue de la compilation, la fenêtre de status (en bas à gauche) doit indiquer un succès, par la présence du fichier tant convoité 'firmware.elf' qui est le résultat de la compilation:
Pour programmer l'Arduino Uno, il suffit de la raccorder et de cliquer sur "Upload", qui recompilera et téléversera GRBL sur la carte. Le port série sera déterminé automatiquement.
... Checking size .pio\build\uno\firmware.elf Memory Usage -> http://bit.ly/pio-memory-usage DATA: [======== ] 79.7% (used 1633 bytes from 2048 bytes) PROGRAM: [========= ] 92.8% (used 29930 bytes from 32256 bytes) Configuring upload protocol... AVAILABLE: arduino CURRENT: upload_protocol = arduino Looking for upload port... Auto-detected: COM17 Uploading .pio\build\uno\firmware.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: reading input file ".pio\build\uno\firmware.hex" avrdude: writing flash (29930 bytes): Writing | ################################################## | 100% 5.47s avrdude: 29930 bytes of flash written avrdude: verifying flash memory against .pio\build\uno\firmware.hex: avrdude: load data flash data from input file .pio\build\uno\firmware.hex: avrdude: input file .pio\build\uno\firmware.hex contains 29930 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 4.24s avrdude: verifying ... avrdude: 29930 bytes of flash verified avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. [SUCCESS] Took 16.19 seconds
Pour ouvrir une console série, il va d'abord falloir programmer sa vitesse en ajoutant la ligne suivante au fichier "platformio.ini" dans la racine du projet :
monitor_speed = 115200
Il suffit ensuite de cliquer sur l'icone ressemblant à une prise électrique tout en bas de la fenêtre pour ouvrir le terminal série.
--- Available ports: --- 1: COM1 'Port de communication (COM1)' --- 2: COM4 'Silicon Labs CP210x USB to UART Bridge (COM4)' --- 3: COM17 'Arduino Uno (COM17)' --- Enter port index or full name: 3 --- Miniterm on COM17 115200,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Grbl 1.1h ['$' for help] ok
Conclusion
Vous voila opérationnels sur platformio avec GRL. Vous pouvez ensuite modifier tous les réglages dans "default.h" et config.h" directement depuis l'environnement graphique de développement et reprogrammer la carte facilement...