Les firmware

par | Mar 14, 2018 | Firmware

Un firmware (en Français micrologiciel, microcode, logiciel interne, logiciel embarqué ou encore microprogramme) est un programme intégré dans un circuit électronique programmable (ordinateur, photocopieur, appareil photo numérique, smartphone, machine à laver etc.) pour qu’il puisse fonctionner.

Le mot anglais firmware est issu de firm (« résistant » ou « ferme », en Français) et de software (logiciel, programme informatique).
Firm est un état intermédiaire entre soft  et hard.
Le firmware fait l’intermédiaire entre les composants électroniques et le logiciel de l’utilisateur.
Ce firmware est dans une mémoire non volatile du circuit électronique et gère le fonctionnement interne des composants, alors que le logiciel gère les commandes de l’utilisateur.

Dans le cas d’une CNC, le logiciel de contrôle utilisateur va gérer les commandes Gcode de l’utilisateur via une interface utilisateur.  Ces commandes vont être ensuite interprétés par le firmware qui va ensuite gérer des impulsions vers des moteurs PAP et les relais.

Le logiciel de modélisation (C.A.D) envoie des fichiers au format DXF pour le 2D ou STL pour le 3D vers

Le logiciel de préparation de parcours d’usinage (C.A.M) qui envoie un fichier texte avec le langage GCODE vers l’interface utilisateur

Les commandes de déplacement des axes de la CNC en gcode sont interprétés par le firmware de la carte électronique qui envoie des impulsions électriques vers les moteurs pas à pas.

Pourquoi plusieurs firmwares ?

Tout d’abord un firmware peut être mis à jour, des nouvelles versions d’un même firmware avec des fonctions supplémentaires peuvent être proposées par le constructeur d’un matériel électronique.

De la même façon qu’on peut avoir plusieurs logiciels utilisateurs concurrents assurant les mêmes fonctions,
il est possible que 2 firmwares soient disponibles pour un même matériel. Cela arrive fréquemment dans le cas de matériel Opensource.

La carte électronique de contrôle de machine CNC Smoothieboard accepte 2 firmwares différents
Smoothieware et GRBL

Le firmware smoothieware est universel et peut être utilisé pour le pilotage d’imprimantes 3D, de fraiseuses CNC, découpeuses Laser, robots …

Le firmware GRBL est dédié au pilotage des fraiseuses CNC

 I ) Mettre à jour smoothieware pour une carte smoothieboard ou compatible

A ) Présentation des parties logiciels ( software ) et matérielles ( hardware ) des cartes smoothie

On peut séparer une carte électronique smoothie ( smoothieboard et compatible ) en :

La partie logicielle ( software )

  • Firmware (micrologiciel) –> il peut être mis à jour
  • Fichier config  –> paramétrage du fonctionnement de la carte
  • Fichiers Gcode –> pour les trajectoires d’outils

    La partie matérielle ( hardware )

  • Un microcontrôleur Cortex M3 LPC1769 ou LPC1768 selon les cartes.
  • 512 Kb de mémoire flash et 64Kb  de mémoire RAM
  • Connexion USB et Ethernet selon les cartes
  • De nombreuses entrées sorties (GPIO) pour étendre les possibilités de la carte

Les fichiers « config » et « firmware.cur » ne doivent pas être effacés. Sinon la carte ne fonctionne plus.
Faites une copie de sauvegarde de ces fichiers.
Pour éviter de les effacer en les confondants avec des fichiers Gcode, il est préférable de créer un dossier pour stocker les Gcode.

Pour éditer le fichier « config » je recommande le programme Notepad ++

Remarque : le fichier config peut être nommé « config » sans extension ou « config.txt » veuillez à ce qu’il y ai qu’un seul fichier config dans la carte SD

B ) Mettre à jour le firmware d’une carte Smoothie

On met à jour un firmware parce que l’on veux profiter de nouvelles fonctionnalités. ( installation du firmware le plus récent )
En allant à cette adresse https://github.com/Smoothieware/Smoothieware/tree/edge/FirmwareBin

Quelquefois on souhaite passer du dernier firmware à une version précédente car la dernière version du logiciel de pilotage n’est pas encore compatible avec le dernier firmware.
Téléchargez le fichier zippé FIRMWARE.zip pour avoir une version compatible avec les dernières versions des principaux logiciels de pilotage, en particulier CNCjs.

Procédure :
1 – Vous devez avoir un fichier firmware.bin  ( l’extension .bin est importante )
2 – Copiez ce fichier à la racine de la carte SD de la carte Smoothie
3 – Déconnectez la carte et coupez son alimentation
4 – Reconnectez vous, vous verrez que le « firmware.bin » s’est transformé en « firmware.cur »
5 – la carte est maintenant flashé avec un firmware différent.

Attention !!
Certaine fonctionnalité d’un nouveau firmware ne correspondent plus avec celles indiqués dans un ancien fichier config.
Il est préférable de mettre à jour la version du firmware avec le fichier config qui lui correspond.

 

II ) Les limites du firmware universel dans le cas de pilotage de machine avec du Gcode

Le G-code qui au départ a été conçu dans les années 1950 pour le pilotage des machines outils d’usinage ( enlèvement de matière ), est maintenant victime de sont succès, il gère maintenant toutes sorte de machines dont les imprimantes 3D.

Concernant les imprimantes 3D, la communauté Reprap qui est à l’origine de la démocratisation de ce type de machine a  ignoré le G-Code déjà existant et a attribué certains codes G des machines outils d’usinage pour des actions différentes avec des imprimantes 3D.

Par exemple :

G-Code Pour une imprimante 3D Pour une fraiseuse
G28 Aller jusqu’au fin de course et s’arrêter Aller à une origine machine enregistrée en coordonnée absolue.
G10 Rétracte le filament selon un paramètre du fichier de configuration. Ajuste, modifie ou fixe la valeur d’outil ou l’origine d’un système de coordonnée selon le paramètre suivant.

Le G-Code faisant référence pour l’impression 3D est celui de la communauté Reprap : http://reprap.org/wiki/G-code/fr
Le G-code faisant référence pour les CNC non industrielles est celui de la communauté LinuxCNC : http://linuxcnc.org/docs/html/gcode/gcode_fr.html
Les G-code faisant référence pour les CNC (tours et fraiseuses) industrielles sont les Gcode Fanuc, Num et Siemens
http://www.cnc-book.com/7077-les-langages-cn.html

Les conséquences :
Bien que les auteurs du firmware smoothieware aient essayé de concilier  l’interprétation Gcode pour fraiseuse CNC et imprimante 3D avec quelques astuces. Il y a quelques rares situations ou un Gcode de fraisage ne soient pas correctement interprétés par le firmware universel smoothieware

En savoir plus avec un exemple

Content goes here

Et bon nombre de logiciels de pilotage de CNC on un bouton de homing qui envoi une commande G53 au lieu de G28.

Pour ces raisons si vous choisissez d’utiliser le firmware smoothieware dans le cas du fraisage 3D je recommande de le faire fonctionner en mode GRBL  Le firmware interprète toutes les commandes Gcode de la même façon que le ferai le firmware spécialisé CNC fraisage GRBL

C’est juste une ligne à ajouter dans le fichier config http://smoothieware.org/grbl-mode

Si vous avez une machine CNC universelle  ( machine légère pour hobbyistes permettant de faire des petits travaux en fraisage, impression 3D et gravure Laser )
On peut parfaitement imaginer un bouton qui réécrive à la volée le fichier config du firmware selon l’utilisation grbl-mode true ou grbl-mode false

 

 

 

Le firmware GRBL à été créer par le Norvégien, Simen Svale Skogsrud  http://bengler.no/simen  , en 2009 il le publie en Opensource.  http://bengler.no/grbl
Depuis la communauté autour de GRBL est importante et la dernière version est la 1.1  https://github.com/gnea/grbl/wiki

GRBL est écrit en C, son code à été optimisé au départ pour les microcontrôleurs Arduino.
Il est capable de maintenir jusqu’à 30kHz d’impulsions de contrôle stable avec des microcontrôleur AVR 328p présents dans les cartes arduino Uno  Duemilanove  Nano  Micro etc.
Compte tenu de la faible mémoire et puissance de ces microcontrôleurs 2Kb, les faire interpréter du gcode à été est un vrai tour de force.

Liens :    Configuration de GRBL   Gcode et commandes GRBL  sur le site  http://www.cnc-amateurs.fr

 

 

 

0 commentaires