Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Modélisme/CNC/Interpréteurs/Grbl

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

Introduction

Grbl est un interpréteur de GCode pour Arduino.

Diriger une CNC depuis un PC est un casse-tête, car il faut garantir que les commandes soient en temps réel, raison pour laquelle LinuxCNC ne fonctionne que sur très peu de machines, sans aucune optimisation de préférence. Par contre, un Arduino, qui n'est pas multi-tâches, sait faire cela très bien. Grbl est un interpréteur de GCode qui va envoyer les commandes aux contrôleurs de moteurs. C'est simple, ça fonctionne à merveille, et surtout ça ne requiert aucune machine particulière, si ce n'est un simple laptop d'entrée de gamme, ou mieux ... et un Arduino bien évidemment.

Grbl est limité à 3 axes en 8-bit. TinyG, un concurrent, propose des contrôleurs jusqu'à 6 axes, et du 32-bit (G2).

Versions

  • 1.1
    • realtime override
    • jog mode
    • laser mode
  • 0.9
    • accélération des moteurs
    • G38.2: Probing
    • G43.1, G49: Dynamic Tool Length Offsets
    • 115'200 bds par défaut (9'600 dans la version 0.8)

Pinout

v0.8 / v0.9 v0.9 (avec option PWM activée à la compilation)
Pin Fonction
D0 RX
D1 TX
D2 X step
D3 Y step
D4 Z step
D5 X dir
D6 Y dir
D7 Z dir
D8 Stepper enable
D9 X limit
D10 Y limit
D11 Z limit
D12 Spindle enable
D13 Spindle dir
A0 RESET
A1 HOLD
A2 CYCLE RESTART
A3 Coolant enable
A4
A5 probe (v0.9 seulement)
Pin Fonction
D0 RX
D1 TX
D2 X step
D3 Y step
D4 Z step
D5 X dir
D6 Y dir
D7 Z dir
D8 Stepper enable
D9 X limit
D10 Y limit
D11 Spindle PWM
D12 Z limit
D13 Spindle dir
A0 RESET
A1 HOLD
A2 CYCLE RESTART
A3 Coolant enable
A4
A5 probe

Paramètres

v0.8 v0.9
Param Description Valeur par défaut
$0 x, step/mm 250.000
$1 y, step/mm 250.000
$2 z, step/mm 250.000
$3 step pulse, usec 10
$4 default feed, mm/min 250.000
$5 default seek, mm/min 500.000
$6 step port invert mask, int:11000000 192
$7 step idle delay, msec 25
$8 acceleration, mm/sec^2 10.000
$9 junction deviation, mm 0.050
$10 arc, mm/segment 0.100
$11 n-arc correction, int 25
$12 n-decimals, int 3
$13 report inches, bool 0
$14 auto start, bool 1
$15 invert step enable, bool 0
$16 hard limits, bool 0
$17 homing cycle, bool 0
$18 homing dir invert mask, int:00000000 0
$19 homing feed, mm/min 25.000
$20 homing seek, mm/min 250.000
$21 homing debounce, msec 100
$22 homing pull-off, mm 1.000
Param Description Valeur par défaut
$0 step pulse, usec 10
$1 step idle delay, msec 25
$2 step port invert 0 (mask:00000000) -----ZYX [1]
$3 dir port invert 6 (mask:00000110) -----ZYX [2]
$4 step enable invert, bool 0
$5 limit pins invert, bool 0
$6 probe pin invert, bool 0
$10 status report 3 (mask:00000011) [3]
$11 junction deviation, mm 0.020
$12 arc tolerance, mm 0.002
$13 report inches, bool 0
$14 auto start, bool 1
$20 soft limits, bool 0
$21 hard limits, bool 0
$22 homing cycle, bool 0
$23 homing dir invert 0 (mask:00000000) -----ZYX [4]
$24 homing feed, mm/min 25.000
$25 homing seek, mm/min 500.000
$26 homing debounce, msec 250
$27 homing pull-off, mm 1.000
$100 x, step/mm 250.000
$101 y, step/mm 250.000
$102 z, step/mm 250.000
$110 x max rate, mm/min 500.000
$111 y max rate, mm/min 500.000
$112 z max rate, mm/min 500.000
$120 x accel, mm/sec^2 10.000
$121 y accel, mm/sec^2 10.000
$122 z accel, mm/sec^2 10.000
$130 x max travel, mm 200.000
$131 y max travel, mm 200.000
$132 z max travel, mm 200.000

Installation

Télécharger le firmware depuis https://github.com/grbl/grbl (binaires précompilés disponibles en bas de la page)

Flasher le firmware (Duemilanove)

avrdude -pm328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:grbl_v0_9j_atmega328p_16mhz_115200.hex

ou sur un Arduino UNO

avrdude -pm328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:grbl_v0_9j_atmega328p_16mhz_115200.hex

Ouvrir la console et taper la commande « G1 X1 ». Le moteur X se met et marche comme prévu.

Compilation manuelle

Télécharger les sources avec git

git clone https://github.com/simen/grbl.git grbl

Compiler (par défaut: pour un Atmel 328p !)

make clean && make

Recettes

GUIs

Références