Pré requis:

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":

platformio-arduino-grbl1.png, nov. 2019

  • 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 :

platformio-arduino-grbl2.png, nov. 2019

  • Lancer la compilation en cliquant sur l'icone "Platformio" (1) et en sélectionnant "build" (2):

platformio-arduino-grbl3.png, nov. 2019

  • 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:

platformio-arduino-grbl4.png, nov. 2019

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. platformio-arduino-grbl5.png, nov. 2019


--- 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...