Mise à jour du firmware de votre Scalar

image_pdfimage_print

Avant propos

Cette page est dédié à la procédure de mise à jour du firmware de votre imprimante 3D Scalar.

Cet article détaille les étapes pour les imprimantes 3D Scalar mais l’idée de base est applicable pour n’importe quelle imprimante 3D à base d’arduino Mega 2560.
Soyez cependant conscient que la philosophie peut être légèrement différente pour imprimante Delta, et il se peut qu’une guide plus adapté soit disponible sur internet pour ce type de machines.

Prérequis

Vous devez notez certaines valeur de configuration de votre imprimante avant de procéder afin de les restaurer par la suite.

Allumez votre machine et allez dans le menu « Controler/Control » => « Mouvement/Motion »

  • Notez la valeur « Z offset » (la première de la liste)
  • Notez la valeur « E pas/mm / E step/mm » (la dernière de la liste)

Logiciels

Vous aurez besoin de télécharger et d’installer les quelques outils suivants :

Télécharger le firmware

Après l’installation des outils décrits plus haut, vous aurez besoin de télécharger une copie du firmware marlin.

Version 1.1.0-RC8

Version 1.1.0-RC8 (Changelog) , dispo pour les Scalars depuis le 25/01/2017

Scalar S

Scalar M

Scalar L

Scalar XL

Scalar XL Premium

Tête E3D V6 avec PT100 +Afficheur tactile TFT28

Il vous faudra connecter le PT100 sur le port aux2 de la ramps au lieu de l’AUX1 utilisé par l’afficheur tactile.

Version 1.1.0-RC6

Version 1.1.0-RC6 (Changelog), dispo pour les Scalars depuis septembre 2016

Scalar S

Scalar M

Scalar L

Scalar XL

Scalar XL Premium

Marlin site officiel

Mise à jour du firmware

Une fois téléchargée vous aurez à dézipper le contenu dans l’endroit de votre choix sur votre disque dur. (A mémoriser)

Lancez le logiciel Arduino (précédemment installé)

Après quelques secondes l’écran principal devrait se lancer avec un Sketch vierge (un sketch est un projet)

Chargez le firmware

Afin de charger le firmware allez dans le menu « File>Open… »

Dans le dossier ou se trouve le firmware que vous venez de dézipper, Ouvrez le dossier « Marlin », vous devriez trouver une arborescence similaire à celle-ci.

Depuis l’IDE Arduino, vous devez ouvrir le fichier « Marlin.ino »  qui est le fichier projet du firmware marlin.

Une fois ouvert, l’IDE Arduino devrait ressembler à ça :

Agrandissez la fenêtre d’Arduino IDE afin de mieux pouvoir naviguer dans le code.

Pour agrandir la fenêtre de l’IDE, une petite icône d’agrandissement se trouve en haut à droite de la fenêtre de l’application.

Configurez l’IDE Arduino pour programmer des microcontrôleurs Arduino mega 2560

Sélectionnez la bonne plateforme de programmation.
Dans la barre de menu, allez dans « Tools>Board » et sélectionnez « Arduino/Genuino mega or Mega 2560 »

Sélectionnez ensuite le « Processor » qui corresponde à celui de votre imprimante 3D « Atmega2560(Mega 2560) » pour les Scalars.

Maintenant, connectez votre PC au port USB de votre imprimante 3D. Attendez quelques instants et vérifiez que la carte arduino 2560 de votre imprimante est bien reconnue et apparaît dans la liste des ports COM.

Sélectionnez le bon.

Ici mon imprimante est reconnue comme étant branchée sur le COM9, mais dans votre cas il se peut que ce soit un autre port, cela n’a aucune importance.

Vous êtes maintenant prêt à envoyer cette mise à jour sur votre imprimante 3D, passez directement à l’étape du « téléversement » en cliquant ici.
Les étapes ci-dessous concernent des modifications avancées du firmware.


Configurez l’IDE pour afficher les numéros de ligne

Afin de rendre plus facile la suite du guide et vous permettre de trouver plus facilement les bonnes lignes dans le firmware, nous allons vous guider pour afficher les numéros de lignes dans le logiciel Arduino.

Allez dans la barre de menu File>preferences

Cochez la case « Display Line numbers » puis cliquez sur « ok »

Maintenant le numéro des lignes devrait être visible à gauche dans l’éditeur.

Attention : Les numéros de lignes peuvent changer légèrement en fonction de la version du firmware. Les exemples présentés ci-dessous ont été fait avec la version 1.0.0 du firmware.

Creusez à l’intérieur des mystères du firmware!

En haut de l’interface verte de l’IDE, vous devriez trouver des onglet qui s’appellent « Marlin », « Conditionals.h », « Configuration.h » etc…

Sélectionnez celui qui s’appelle  « Configuration.h »

Maintenant dans l’éditeur de texte vous allez voir apparaitre plein de text .

Le fichier contient principalement tous les paramètres de configuration pour votre imprimante.

Les lignes colorés sont actives alors que les lignes grisées sont inactive et correspondent à des commentaires.

Quelques mots concernant les commentaires

Les commentaires sont les lignes grisés qui commencent généralement par des « //« .

Un commentaire peut aussi être rajouté en fin de ligne. Dans ce cas le début de la ligne sera colorisé et la fin débutant par « // » correspondant au commentaire sera grisé.

Les commentaires sont utiles et permettent de donner plein d’informations complémentaires permettant d’éclaircir le rôle de chaque paramètres.

Un mot à propos des paramètres

Les paramètres commencent souvent par un mot clé « #define« .
Une fois dé commenté le paramètre suivant le mot clé « #define » devient actif.

Commençons la configuration

Customizer le message de bienvenu

Au tout début du fichier « configuration.h » vous verrez le paramètre CUSTOM_MACHINE_NAME suivit par du texte entre quotes  »

Ici vous pouvez customiser votre propre message et êtes souvent limité à 13 caractères si vous utilisez la langue française ou anglaise au niveau de l’interface du LCD (la longueur peut varier en fonction des langues.)

Configuration du Thermistor

Afin que le firmware sache quel thermistor nous avons utilisé, nous devons sélectionner le bon thermistor parmi les tables disponible. Nous devons le faire à la fois pour la tête chauffante et pour le lit chauffant.

Ces tables se configurent près des lignes 146

Dans cet exemple vous voyez que nous utilisons la table 5 pour la tête chauffante .

Les 4 premiers paramètres correspondent à aux têtes chauffantes

le dernier correspond au lit chauffant seulement.

Pour les scalar XL , selon si vous utilisez une tête chauffante  AllInOne ou une E3DV6 vous allez devoir changer la table utilisée pour le thermistor au niveau du paramètre TEMP_SENSOR_0.

choisissez « 5 » pour une E3D V6 ouAluHotEnd

choisissez « 13 » pour une Allinone

A propos du lit chauffant, pour les Scalar XL et Scalar M nous utilisons des thermistor 100K NTC beta 3950 1% thermistors , il faut donc utiliser la table « 11 »

Configuration du PID pour la tête chauffante

Le PID, aussi connus sous le nom de  « proportionnel, intégrateur, dérivateur ou proportionnel, intégral, dérivée » ,et est un mode the régulation utilisé pour piloter les éléments chauffants.

Si vous désirez plus d’information sur la régulation PID, vous pouvez vous référer à la page wikipedia:

https://en.wikipedia.org/wiki/PID_controller

Proche de la ligne 194, vous pouvez activer/désactiver la fonctionnalité du PID.

Si vous désactivez ce paramètre vous utiliserez par défaut le mode de régulation « bang-bang  »  (voir l’article sur wikipedia: https://en.wikipedia.org/wiki/Bang%E2%80%93bang_control)

L’utilisation du mode de régulation PID est beaucoup plus fine en terme de stabilité cependant seulement certains éléments chauffant sont compatible avec ce mode de régulation comme les têtes chauffantes et le lit chauffant 220V piloté par relais statique.

Évitez d’utiliser le mode PID pour des lits chauffant standard 12V 200W reliés directement aux alimentation à découpage.Dans certains cas les alimentation peuvent se mettre en sécurité et couper l’alimentation.

Le mode PID est super si vous voulez une régulation de température fiable et régulière.

Si vous avez juste besoin d’une régulation plus simple dans ce cas le mode BANGBAND est adéquate et vous pouvez commenter le paramètre  « #define PIDTEMP » .

Mode spécial pour le mode PID

Dans le cas ou la régulation PID est activée, lorsque la température est basse, le mode de régulation BANGBANG est utilisé.

Dès que la température atteint la température de consigne (cela peut être configuré aussi dans les settings) le mode PID s’active alors.

Cela veut dire qu’une tête chauffante chauffe rapidement au début, puis met plus de temps à atteindre sa température de consigne.

Paramètre Bang Max

Ce paramètre est situé vers la ligne 195.

cartouches chauffantes 40W:

SI vous utilisez une tête chauffante qui possède une cartouche chauffante de 40 watts, vous pouvez baisser légèrement le paramètre BANG_MAX .

Voici un exemple pour une tête AllInOne

Configuration des constantes PID

Près de la ligne 210 vous trouverez un section ou il est possible de définir les constantes PID.

Dans cet exemple, vous pouvez voir plusieurs valeurs commentés et seulement un jeu de paramètre dé commenté.

Vérifiez quelle tête chauffante vous utilisez et décommettez les 3 lignes correspondantes .

Pour les têtes E3D, comme elles utilisent des cartouches de 20W, vous devrez augmenter BANG_MAX à 255.

Pour les têtes AllInOne , vous devrez diminuer la valeur à 250 afin d’éviter trop d’overshots.

Configurer le PID pour le lit chauffant

Près de la ligne 268 vous devriez trouver les paramètres qui active/utilisent la fonction PID pour le lit chauffant.

Notez qu’en fonction du type de lit chauffant que vous avez et de la manière dont vous le l’alimentez/pilotez le mode BANGBANG peut être le plus adapté . En effet si le lit chauffant (souvent 12V ) sont reliés directement à l’alimentation, l’utilisation du mode PID peut mettre votre alimentation en sécurité voir l’endommager.

Cependant si vous utilisez un lit chauffant alimenté en 220V et piloté par un SSR (solid state relay), vous allez pouvoir considérer l’utilisation du mode PID.

PID pour lit chauffant Scalar XL 700W/220V

Afin d’activer le PID pour le lit chauffant, dé commentez simplement la ligne 268 : #define PIDTEMBED

Ensuite sélectionnez quel type de lit chauffant vous avez , dans notre cas nous utilisons un lit chauffant en silicone de 700W 220V monté sur une plaque d’aluminium de 435x320mm de 3mm d’épaisseur.

Si vous ne savez pas si ces paramètres sont bon pour vous, choisissez simplement celui qui se rapproche le plus de ce que vous avez. vous aurez alors à effectuer la calibration du PID et à trouver vos propre constantes. La procédure est disponible ici: : http://reprap.org/wiki/PID_Tuning

Sécurité d’Extrusion

près de la ligne 307, juste sous le paramètre PIDTEMPBED , vous devriez trouver les paramètres en relation avec cette fonctionnalité.

Le paramètre #define PREVENT_DANGEROUS_EXTRUDE permettra seulement l’extrusion si la tête chauffante à atteint une température suffisante dans la valeur est définie par le paramètre EXTRUDE_MINTEMP à la ligne 311.

SI la température de votre tête chauffante est en dessous de ce seuil, l’extrudeur ne bougera pas.

Le paramètre #define PREVENT_LENGHTY_EXTRUDE évitera à l’extrudeur de pousser plus qu’une certaines longueur de filament par commande Gcode  (souvent plus de 200mm).

Protections thermiques

Un système permet de protéger votre machine d’un emballement thermique pendant toutes la durée de l’impression.

Si le firmware détecte une baisse anormale de la température pendant une période de temps trop élevée un message d’erreur apparaitra sur l’écran LCD (THERMAL RUNAWAY), L’impression s’arrêtera et les éléments chauffant aussi.

Cette protection est disponible pour les têtes chauffante et aussi pour les lits chauffants de manière indépendante.

Auto bed leveling (niveau automatique du lit)

Près de la ligne 476 vous trouvez une section dédié au Auto bed leveling (ABL).

Cette section est responsable de la mise en œuvre de la commande gcode G29 .

Sur les imprimante 3D scalar,cette partie peut aussi être responsable du comportement de la sonde à induction.

Vers la ligne 476 vous pouvez activer/dé activer cette fonctionnalité.

La ligne 477 #define Z_PROBE_REPEATABILITY_TEST est utilisée afin de dédoubler chaque mesure en utilisant une vitesse plus basse lors de la 2nd mesure afin d’augmenter la précision de la mesure.

Le bloque près de la ligne 498 sont les coordonnés de chaque point que la sonde va tester lorsque le mode  Grid est utilisé.

Juste en dessous vers la ligne 525, vous trouverez les offsets utilisé par le firmware afin de déterminer la position relative entre la sonde et la buse de la tête chauffante.

Vous trouverez aussi quelques paramètres que vous pouvez ajuster afin de rendre plus rapide la phase de prise de mesure pendant la mise à niveau du plateau.

Note: Si vous diminuez trop les valeurs fournies, vous risquez d’avoir un comportement dangereux pour votre plateau chauffant.

Configurez les pas (Steps/mm) pour chaque axe

En fonction si vous utilisez des courroies, des tiges filetées, trapézoïdales etc… vous allez devoir ajuster les valeurs de steps/mm afin d’assurer que la machine se déplace de la bonne distance.

Le paramétrer DEFAULT_AXIS_STEPS_PER_UNIT gère cette partie pour tous les axes (X, Y, Z, Extruder)

Vous pouvez utiliser le calculateur Prusa pour vous aider à trouver les bonnes valeurs pour votre mécanique:

http://prusaprinters.org/calculator/

Tous les paramètres en relation avec les ACCELERATION dépendent vraiment de la capacité de votre mécanique à se déplacer rapidement, et à accélérer/décélérer rapidement.

Activer le support de l’EEPROM et les profils de préchauffe

à la ligne 649 #define EEPROM_SETTINGS est utilisé pour activer la gestion de l’EEPROM.

l’EEPROM est une mémoire interne au contrôleur arduino. C’est une mémoire non volatile utilisée pour conserver les paramètres ajustable en mémoire pour une utilisation ultérieure.

La plupart des paramètres accessible via le LCD sont stockés dans l’EEPROM de l’arduino.

Les bloques près de la ligne 659 sont les profiles de préchauffe pour le PLA et l’ABS. Ici vous pouvez configurer les vôtres.

Configurer le détecteur de fumée MQ2

Cette section est dédiée au détecteur de fumée MQ2qui se trouve à la fin du fichier  configuration.h .

La ligne 863 #define MQ2_GAZ_DETECTOR, si laissé commenté, désactivera le module de détection de fumée. Si vous le dé commentez, cela activera le système de détection de fumée.

Quand activée, les paramètres suivant deviennent actifs .

La ligne 869 #define MQ2_PIN est pour les utilisateurs avancé si vous désirez utiliser des pins particulières de l’arduino .

Par défaut nous utilisons la pin pin 57 (A3/D57 de AUX1 sur la Ramps 1.4) parce qu’elle est capable d’être configurée à la fois en mode analogique et aussi en mode numérique. VOus pouvez utiliser une pin différente mais faites attention qu’elle soit compatible avec le mode de fonctionnement de la sonde.

La ligne 872 MQ2_ALARM_TRIGGER_KEVEL_PPM est utilisée lorsque vous désirez utiliser la sortie ANALOGIQUE du capteur de fumée.

Pour activer le mode ANALOGIQUE, vous devez dé commenter la ligne 870 : USE_ANALOG_MODE

Dans ce mode , la sortie analogique du capteur fournie une tension variable en fonction du niveau de détection.

En mode  ANALOGIQUE, le potentiomètre bleu n’est pas utilisable, donc afin d’ajuster la sensibilité du capteur, le firmware utilise une table qui convertie la tension de sortie du capteur en PPM. Lorsque la limite définie par le paramètre est atteint l’alarme se déclenche.

Si vous désirez plus d’informations sur quelle valeur utiliser pour votre capteur MQ2 spécifique (chaque capteur est différent), activez le paramètre  « MQ2_VERBOSE »  à la ligne 867, connectez votre imprimante à un logiciel de pilotage qui vous permet de voir la sortie console (comme Répetier host) .Une fois connecté, tout un tas d’information devraient s’afficher sur la sortie console.

Afin d’éviter de fausses alarmes, le firmware peut prendre plusieurs mesures afin d’éviter une fausse détection.

Le Paramètre MQ2_CONFIRM_COUNT est utilisé à cette fin. vous pouvez augmenter ou diminuer cette valeur comme vous le voulez. Cependant augmenter trop cette valeur décalera d’autant le moment ou le signal d’alarme se déclenchera.

Sélectionnez les types d’alarmes 

Quelques alarmes différentes sont disponibles.

  1. Une erreur est loggé sur la sortie console, donc vous devriez pouvoir le récupérer par l’intermédiaire d’un programme adapté
  2. Un message d’erreur est affiché sur l’afficheur LCD  (Vérifiez que vous avez un afficheur LCD avant d’activer cette option
  3. Le buzzer du LCD peut sonner
  4. L’afficheur LCD peut clignoter

chacun de ces types d’alarme sauf le premier peut être activer/désactiver et combiner les uns aux autres.

Téléverser votre firmware vers votre Arduino

Avant de téléverser votre firmware dans l’arduino il est intéressant de vérifier que ce dernier compile sans erreur de syntaxe, c’est à dire qu’il va vérifier que le firmware est fonctionnel avant de l’envoyer sur la machine.

En haut à gauche de l’interface IDE, vous trouverez un bouton avec une icône en forme de « V » dessus.

Appuyez dessus pour que la compilation commence. En bas de l’interface IDE, une barre de progression apparaitra sur la droite et un message explicite sur la gauche

Une fois finie un nouveau message devrait apparaitre en bas à gauche de l’IDE

Téléverser le firmware vers l’Arduino

Si tout se passe correctement vous pouvez maintenant téléverser le firmware vers votre Arduino, sinon regardez si l’erreur affichée se trouve dans la FAQ, si ce n’est pas le cas

Vous devez appuyez sur le bouton avec une flèche qui part vers la droite. le bouton se situe juste à côté du bouton précédent qui nous a permis de vérifier l’intégrité du firmware.

L’IDE va alors recompiler une nouvelle fois le firmware puis juste après le téléverser/transférer vers l’imprimante.

Notez que la barre de progression peut sembler bloquée ou ne pas bouger. Dans ce cas vérifiez qu’une petite LED clignote sur votre carte Ramps, c’est un indicateur qui vous dit que le téléversement est en cours.

Une fois finie, un message apparait alors sur l’interface Arduino IDE et la LED clignotante s’arrête alors.

A la fin votre arduino va redémarrer et votre nouvelle version du firmware sera disponible.

Débranchez le cable USB de l’imprimante.

Finalisation – Etape obligatoire

Si vous aviez déjà l’EEPROM d’activé (c’est le cas pour les imprimante 3D Scalar) tous les settings stocké dedans resteront actifs

Vous devez appliquer les nouveaux paramètres  (Depuis le LCD  « Controler > Restaurer defaut » « Control > restore Failsafe« ) dans les cas suivants

  • Si vous avez mis à jour le firmware
  • Si vous avez changé les constantes du PID
  • Si vous avez modifier les valeurs pour les steps/mm
  • Si vous avez activé/désactivé l’utilisation du PID
  • Plus généralement, si vous avez changé un ou plusieurs paramètres accessible via l’afficheur LCD.

Avant de recharger les paramètres du firmware, pensez à noter les valeiurs du « ZOffset » et E pas/mm car ils vont être écrasés lors de la restauration.

Une fois la restauration effectué, pensez à sauvegarder via « Controler > Sauver config« 
Puis allez dans le menu « Controler/Control » => « Mouvement/Motion » pour mettre les valeurs notées juste avant la manipulation de mise à jour du firmware

  • Changez la valeur « Z offset » avec celle notée par vos soins (la première de la liste)
  • Changez la valeur « E pas/mm / E step/mm » vec celle notée par vos soins (la dernière de la liste)

Sauvegardez de nouveau via « Controler > Sauver config »