GRBL, STM32

  • Auteur de la discussion petitours
  • Date de début
P

petitours

Apprenti
Bonjour

J'attends les pièces pour faire une CNC Workbee et je m’intéresse à la partie électronique que je pensais faire avec GRBL depuis le début.
J'ai découvert qu'il existerait une version de GRBL pour des STM32, bien plus puissant que les arduino uno (et surtout je bosse sur des STM32 donc je préfère à du arduino).
J'ai effectivement trouvé de tels hardware mais je n'arrive pas à trouver les sources du projet. Sauriez vous m'indiquer sur quel site de référence je dois me baser pour faire joujou avec GRBL et avec GRBL ST32 en particulier ?

Merci par avance
 
P

petitours

Apprenti
aie aie aie donc ca confirme qu'il n'y a pas de projet suivi sur STM32, c'est la jungle des forks

zut, Arduino reprend de l’intérêt :roll:

Merci
 
T

toff

Compagnon
Hello,

C'est un des projets que j'ai sous le coude.
La version de MakerFr est basée sur un blue pill pour faire tourner GRBL et un gars du Forum de MakerFr à fait la partie contrôleur sur un ESP dédié, la solution est intéressante.
Une autre variante est celle proposée par buildlog. Celle ci utilise un cœur de l'ESP pour GRBL et l'autre pour le contrôleur.
Il décline sa solution sur pas mal de petit projet sympa.

Pour ma part je voulais juste faire une petite carte avec un connecteur subD25 pour venir sur ma breakboard.
 
E

ewidance

Ouvrier
J'ai testé de façon assez approfondie GRBL sur Stm32 sur 2 forks. J'ai mis cela sur une laser (mais c'est pareil...) en COreXY (mais GRBL gère mieux le cartésien) : https://www.civade.com/post/2019/09/24/Découpe-laser-3W,-avec-GRBL-sur-STM32-et-cinématique-CoreXY . Tu peux aussi regarder un portage de GRBL sur ESP32, c'est une pure tuerie... et avec l'interface web intégrée et la gestion de carte SD, tu uploade ton Gcode ar l'interface web et tu le lances directement à partir de la carte SD.. Magique :).. J'ai aussi fait un article sur le sujet : https://www.civade.com/post/2019/09...our-piloter-des-machines-à-commande-numérique . Ca devrait te faire réfléchir sur le choix de la STM32 !
 
P

petitours

Apprenti
Merci

Je m'intéressais aux STM32 parce que je l'es utilise dans mon boulot, j'ai fouiné un peu et j'ai trouvé des projets intéressants mais je ne suis du coup pas certain de passer le pas, vu que GRBL sur Arduino a l'air largement suffisant pour de la CNC.

Mais ca m'a donné une autre raison de m'intéresser aux ESP32 que je veux regarder depuis longtemps ! Après la CNCje veux faire du pick and place pour électronique et là un coreXY très léger avec un ESP32 pour aller à fond la caisse serait très intéressant.
A moins que pour aller à fond la caisse je parte là dessus https://odriverobotics.com/
un autre projet open source captivant
 
E

ewidance

Ouvrier
En fait, la question est moins "d'aller à fond la caisse", que de pas passer 3 plombes lorsque tu déplaces ta machine d'un bout à un autre tout en gardant une certaine précision. Le principal inconvénient de GRBL/arduino est son incapacité de faire des fréquences de pulses > 25Khz.

J'ai motorisé pas mal de machines et vu les dimentions de la tienne, c'est rédhibitoire... Il faut oublier GRBL sur arduino...

Avec les contrôleurs moteur pas à pas modernes (ex : DRV8825) on peut aller jusqu'au 32e de pas, voir plus avec d'autres contrôleurs. C'est bien pour la précision, mais il faut générer plus de pas pour le même trajet. Or à vitesse max de 25Khz, on arrive vite aux limites de vitesse et l'augmentation de la précision diminuera la vitesse max (puisque l'on sera bloqué par ces 25Khz...). Pour combiner les 2, il faut un contrôleur capable d'aller à plus de 25Khz. C'est intérêt de GRBL en 32 bits que ce soit en STM32 ou en ESP32 ou même en LPC 1769. La carte SKR1.3 à 20 balles (et même 15 sur Express), avec Marlin 2 est aussi une alternative intéressante. 32 bits, marlin, 5 axes, fins de couses, support d'un afficheur et du fonctionnement autonome sur carte SD, de l'accélération du 2e ordre,... J'ai pas essayé avec une CNC, mais j'ai été conquis sur imprimante 3D: https://www.civade.com/post/2019/07...e-d-Ultimaker-1-avec-Marlin-2-SKR-1.3-TMC2130 . Le support Gcode de Marlin devrait être plus que suffisant pour faire des fichiers avec Cambam par exemple.
 
P

petitours

Apprenti
Je n'avais pas pensé à la vitesse de déplacement "à vide", c'est effectivement un truc qui doit pouvoir être vite gonflant.

J'ai des nema23 donc plutot des TB6600 comme driver mais le soucis des niemes de pas reste entier.
 
P

petitours

Apprenti
bon ça y est j'ai acheté un ESP32, ce joujou va beaucoup me plaire je crois:7dance:
 
P

petitours

Apprenti
avec Marlin 2 est aussi une alternative intéressante. 32 bits, marlin, 5 axes, fins de couses, support d'un afficheur et du fonctionnement autonome sur carte SD, de l'accélération du 2e ordre,... J'ai pas essayé avec une CNC, mais j'ai été conquis sur imprimante 3D:

J'ai un copain qui vient de me vendre malin avec insistance, mais il fait que de l'impression 3D aujourd'hui et marlin est fait pour...
Je n'ai pas regardé ce que sait faire GRBL encore mais après 12ans dans l'industrie de l'usinage (il y a 10ans) j'ai souvenir d'un paquet de Gcode très spécifiques à l'usinage, dont une imprimante 3D n'a que faire.

GRBL (et son portage sur ESP32) n'est il pas à privilégier pour ces Gcode spécifiques à l'usinage ?
 
A

AndersFaust

Ouvrier
Je lis ce topic depuis quelques temps, et perso je suis plutôt sur une combi STM32 + LinuxCNC en ethernet, un peu comme les cartes MESA mais pour 1/10ème du prix ....

Quelqu'un a dev un HAL pour les STM32 pour connecter à linuxcnc, et en termes de fréquence de step on est loin des 25khz :)

 
E

ewidance

Ouvrier
Ce serait plutot le contraire; Il n'y a pas de code spécifiques dans GRBL qui n'implémente que le basique.

Marlin repose sur GRBL auquel a été ajouté l'accélération du 2nd ordre, et pas mal de commandes Gcode pour commander des entrées sorties annexes(extrudeur,servos,bed,etc..). Le Gcode de base est standard et le même que pour GRBL. Voici d'ailleurs la liste des codes supportés : https://marlinfw.org/docs/gcode/M003.html . Par contre, par rapport a un interpréteur Gcode industriel, on ne trouvera pas les macros pour faire par exemple des cycles de perçage. Mais c'est pas très dérangeant à moins de vouloir sa prog à la main. Il est aujourd'hui plus cartésien de passer par un module de CAM couplé à la CAO, ou un module dédié CAM comme CAMBAM, et dans ce cas les cycles de perçage sont produits sans macro par le générateur de Gcode.

Donc marlin (et surtout la version 2 sur ARM) est pas déconnante du tout....
 
E

ewidance

Ouvrier
@AndersFaust : intéresant comme piste. J'avais creusé cela il y a quelque temps et j'en étais arrivé à la conclusion que le découpage interne de lnux CNC empeche d'envoyer des commandes de haut niveau comme le fait mach3. C'estd'ailleurs pourcela que les solutions autres que les ports // ou MESA ne se bousculent pas (et c'est un doux pléonasme..). Par contre sur Mach3 c'est possible, et d'ailleurs il y a un jouli projet sur Github qui repose sur un STM32F407 avec une chiée d'entrées sorties et le driver pour le planner... Chercher MACH3 et parcourir les 4 pages de projets :)..
 
V

vres

Compagnon
Faut pas rêver ce n'est pas le processeur qui fait la performance d'une CN. La plupart des cartes Mach3 sont sur des STM32, j'ai hacker une bitsensor et une NVUM, j'ai abandonner car les E/S et la connectique ne me convenait pas . Dans les années 90 ont faisait déjà des pilotages qui n'avait rien a envier à GRBL mêmes en 32bits. La première carte que j'ai développé en 1998 utilisait un DSP TMS320C31, c'était un 32bits 80Mhz avec FPU. Je l'ai seulement abandonné il y a 4 ans pour une carte STM32F4. elle a beaucoup plus de possibilités mais en performances pures c'est exactement la même chose. Les accélérations et les vitesses sont toujours celles qui sont paramétrées.

Pour la fréquence des Step 25kHz c'est un peu juste mais avec 40kHz on exploite plus que correctement un moteur Pas à Pas. C'est 1500 tr/min au 1/8 de pas. 1/8 de pas a 40kHz ou 1/16 de pas à 80kHz c'es rigoureusement la même performance et ce n'est même pas certain que l'on gagne en précision à cause de l'hystérésis.
 
Dernière édition:
A

AndersFaust

Ouvrier
Faut pas rêver ce n'est pas le processeur qui fait la performance d'une CN. La plupart des cartes Mach3 sont sur des STM32, j'ai hacker une bittender et une NVUM, j'ai abandonner car les E/S et la connectique ne me convenait pas . Dans les années 90 ont faisait déjà des pilotages qui n'avait rien a envier à GRBL mêmes en 32bits. La première carte que j'ai développé en 1998 utilisait un DSP TMS320C31, c'était un 32bits 80Mhz avec FPU. Je l'ai seulement abandonné il y a 4 ans pour une carte STM32F4. elle a beaucoup plus de possibilités mais en performances pures c'est exactement la même chose. Les accélérations et les vitesses sont toujours celles qui sont paramétrées.

On est d'accord qu'un STM32 cadencé à 180Mhz est largement suffisant pour une carte 6 axes temp réel sans aucun soucis, faut pas déconner non plus :)
 
V

vres

Compagnon
Tout dépend ce que tu lui demande, si tu lui demande de faire un lissage de courbe avec un algorithme sur une suite de segments ça va être difficile aussi.
 
Haut