Ne brancher la partie 12/24V que si vous avez vu 

la section Alimentation et Élément de chauffe 

de la page Montage.

Débrancher Systématiquement la prise du réseau électrique 220v lors de toute maintenance!

    Nous allons configurer une cartésienne comme la Prusa I3, Itopie, IBreizh, sous Smoothieware en éditant le fichier config  tout en suivant leur Wiki. Un simple logiciel comme Notepad++ pour Windows ou Sublime Text 2 pour MacOS vous suffira à l’éditer.

   Comme toutes les imprimantes sont différentes. L’étape de calibration va permettre de configurer la carte afin qu’elle déplace les moteurs sur la distance demandée, de contrôler le maintien et les mises en température de la ou des hotends et du heatbed. Également de savoir où se trouve les endstops par rapport à l’origine de la machine, comment réagissent-ils, le sens des moteurs de leurs axes respectifs…

     Télécharger également le logiciel Pronterface, il vous servira pour toute la calibration qui va suivre. C’est un logiciel Open Source facile d’utilisation, avec un terminal pour envoyer des commandes Gcode, il fait son job… Et vous raccordez votre PC/Mac/Linux en USB (oublier l’écran LCD pour le moment, même définitivement :/ opter pour un Raspberry Pi tournant avec Octopi  ). Vous pourrez par la suite utiliser des logiciels comme Cura ou Repetier-Host.

     Cette page est orientée Smoothieware, mais vous pouvez la parcourir, elle vous donnera l’ordre à suivre pour configurer par exemple Marlin avec l’Arduino IDE, faites un tour ensuite sur  SolidUtopia

    Nous allons édité le fichier config à mesure, pour qu’il soit pris en compte il suffit de l’ouvrir, le modifier, sauvegarder  le fermer puis de débrancher et rebrancher L’USB (et l’alimentation en  12/24V si elle est branchée dans le cours de la calibration).

       Si vous commencez la calibration de 0 vérifier et supprimer le fichier nommé config-override qui peut se trouvé dans la racine de la carte SD.

        Prenez bien en compte qu’un M500 dans le terminal créé se fichier, il est “prioritaire” par rapport au fichier config (ne le modifier pas) En ça présence le faites de modifier des valeurs comme les pas par millimètre des moteurs dans le config de base n’aura aucun effet sur ceci.  Voila pourquoi le P.I.D est à réaliser en dernier et qu’il faut suivre ce tuto dans l’ordre. Attention aux # qui servent à commenter les lignes.

J’indiquerais “éditer  sauvegarder débrancher rebrancher ” quand le moment est venu de le faire. (Ouvrer et éditer seulement lorsque c’est mentionné,  noter les modifications sur un papier ou copier-coller à mesure les contenus des fichiers).

     Vous voilà donc avec une imprimante montée (sauf la hotend qui est câblée mais pas montée sur l’extruder), câblée mais pas mis sous rislang ni sous gaines (les fils sont laissés lâches), ce serait vraiment dommage d’avoir passer 2 heures et se rendre compte qu’un câble est manquant ou défectueux  -___– # .

Baud Rate et Sonde de T°

 

        Commençons par renseigner la vitesse de communication entre le pc et la Smoothie, la ligne du Baud rate se trouve tout en bas :


uart0.baud_rate             115200          # Baud rate for the default hardware ( UART ) serial port

        Ensuite renseigner le nom de la sonde de la hotend et celle du heatbed si vous en avez un :
La hotend :

Faites un tour sur le site de smoothieboard, recherchez ce tableau, vous pouvez dans le pire des cas entrer une à une ces valeurs et tester la compatibilité:


temperature_control.hotend.thermistor EPCOS100K #
Le Heat Bed :
temperature_control.bed.thermistor Honeywell100K


        Une fois trouvé, brancher la carte en usb seulement, ouvrer le fichier config qui se trouve en racine de la SD, modifier ces lignes puis débrancher et rebrancher votre carte.
Démarrer dans la foulée Pronterface pour vérifier :


1° Que le pc communique bien et donc que “printer is now online”  en cliquant sur connect  après avoir renseigné le bon baud rate.

2° Que les valeurs données par les sondes correspondent bien à la T° de la pièce. En bas à gauche de l’écran sont indiquées les températures relevées.

        Si vous ne parvenez pas à vous connecter à la carte c’est que le baud-rate n’est pas bien renseigné sur le fichier config ou sur Pronterface, que le Port de Pronterface n’est pas bon, que le câble USB est trop long ou défectueux.  Et si vous avez réussi à vous connecter mais que Pronterface  indique  300° ou toute autre valeur incohérente par rapport à celle de la pièce, c’est que les noms des sondes ne sont pas bien renseignés, que les fils se touchent ou sont coupés). 

Si tout est OK  on peut continuer,

Configuration des endstops


     A l’allumage, l’imprimante pense que ses axes sont à 0, mais, ils ne sont généralement pas sur leur origine (au contact du endstop). Et si une commande Gcode avec une valeur supérieure à la course restant à faire dans un sens ou dans un autre est ordonné, elle enverrait le chariot de son axe buter à son extrémité et finirait l’intégralité de sa course dans un beau bordel …


     Vous pourriez faire sans, mais c’est vraiment un plus pour chaque début d’impression, il automatise le travail, et je rappelle que sur n’importe quelle machine, positionner les endstops à l’origine 0 du trancheur/slicer est vraiment un + ( il se trouve à gauche vers vous sur le plateau  quand l’imprimante est face à  vous ).

        Il y a 2 ou 3 pins sur un endstops mécaniqu, obligatoirement un COM, et un NC (Normalement Fermer ) et/ou un NO (Normalement Ouvert) . Le firmware est paramétrable si l’endstop est NC ou NO.


Si le endstop a 2 fils, ils sont à brancher sur le – (Ground) et le S ( Signal ) et surtout pas sur le 5V.
       Si le endstop n’est pas un simple mécanique attention au câblage du 5V au risque de flinguer la sortie ou la smoothieboard. Voir la section Endstop dans le menu Montage
       

     Sur le terminal de Pronterface, après avoir déplacé tous les axes hors du déclenchement de leur endstop, nous allons retourner le statut de ceux-ci pour vérifier qu’ils sont bien à 0 (0 ouvert, 1 actionné), en envoyant la commande Gcode M119. Pronterface nous renvoie leur statut dans la colonne de droite au dessus du terminal.


X min: 0 Y min: 0 Z min: 1



l’axe Z ici est inversé.



il suffit de rajouter un ! pour inverser la logique donc pour l’exemple le Z

et laisser/rajouter le ^ pour le pull up 


ligne pour le X :

alpha_min_endstop                  1.24^                        #

ligne pour le Y :

beta_min_endstop                  1.26^                          #

ligne pour le Z :

gamma_min_endstop              1.28^!                       #



éditer sauvegarder débrancher rebrancher


      On vérifie une dernière  fois qu’il fonctionne bien, mais cette fois ci en appuyant avec le doigt un par un sur chaque endstop et en contrôlant via le terminal avec la commande Gcode M119.


     Si un ou des endstops sont toujours ouvert(s) ou fermé(s), c’est qu’il(s) est (sont) mal câblé(s) ou que un des fils est coupé.
     S’ils sont toujours en 1 c’est que des fils se touchent, revérifier votre câblage et réessayer .

Déclarer où se trouve les endstops par rapport aux 0 de leur axe (l’origine de votre Imprimante),

Le X :
alpha_homing_direction           home_to_min     #

Le Y :
beta_homing_direction            home_to_min   #

Le Z :
gamma_homing_direction        home_to_min     #

éditer sauvegarder débrancher rebrancher

Moteur pas à pas

Indiquons au firmware l’intensité des moteurs, reportez vous aux spécificités de ceux-ci,
petit rappel  sous Smoothieware les moteurs sont nommés :

Alpha pour X,
Beta pour Y,
Gamma pour Z
Delta pour l’extrudeur .

Par exemple si le moteur du X à un ampérage de 1.70A, renseigner la ligne  :
alpha_current        1.7                   # X stepper motor current
Le Y :
beta_current          1.5                   # Y stepper motor current
Le Z :
gamma_current      1.5                 # Z stepper motor current
L’extrudeur :
delta_current           1.5               # First extruder stepper motor current

Pas/mm


        
Indiquons le nombre de pas que le moteur va exécuter pour que son axe se déplace de tant de mm.
         Un moteur pas à pas de 1.8° doit faire 200 pas ( 360°/1.8° = 200) pour effectuer une révolution, un moteur 0.9° doit, lui, faire 400 pas ( 360°/0.9° = 400), rien de magique, à chaque commande de déplacement la machine envoie l’axe au point demandé si on lui demande 100mm il l’envoie à 100mm et le firmware sait après l’envoi de la commande que son axe est à 100mm. A nous de lui dire combien de pas doit faire le moteur pour faire 1mm, smoothieware calculera de lui même le nombre de pas multiplié par le micropas (1/32 pour cette carte la V1.1 ).


le calcul est simple :


steps/mm = (nombre de pas du moteur par révolution * nombre de micro pas du driver) / (pas de la courroie * nombre de dents de la poulie)


Pour l’exemple nous avons un moteur 1.8°  ( 200pas/révolution ) monté sur une poulie de 20 dents avec une courroie d’un pas de 2mm avec une  Smoothieboard v1.1.
(200 pas * 32 micro-pas) / ( courroie 2mm * poulie 20 dents)  =  160  pas/mm
(                 6400                      ) / (                  40                    )   = 160  pas/mm
 

Vous pouvez vous aider de la calculatrice de Josef Prusa

Par exemple si le moteur du X à 160 pas/mm , renseigner la ligne  :
alpha_steps_per_mm                           160              # Steps per mm for alpha ( X ) stepper

Renseigner les lignes respectivement pour Bêta ( Y ) et Gamma ( Z ) de la même façon :

Le Y :
beta_steps_per_mm                                80               # Steps per mm for beta ( Y ) stepper

le Z :
gamma_steps_per_mm                           1600             # Steps per mm for gamma ( Z ) stepper

Pour l’Extrudeur :

En direct Drive (sans démultiplication):

steps/mm = (nombre de pas du moteur par révolution * nombre de micro pas du driver) / (diamètre de la  poulie * π )

(200 pas moteur * 32 micro-pas) / ( 14 * 3.14159) = 145.5132 pas/mm

Pour un Geared :

steps/mm = (nombre de pas du moteur par révolution * nombre de micro pas du driver)*(Nombre de dents grande roue/ Nombre de dents petite roue)  / (diametre du boulons  * π )

(200 pas moteur * 32 micro-pas) *( 48/16  )/ ( 8 * 3.14159) = 764.0270pas/mm

Par exemple si le moteur du E à 764.0270 pas/mm, renseigner la ligne :

extruder.hotend.steps_per_mm                       764.0270


éditer sauvegarder débrancher rebrancher

Contrôle sens moteur

        Vérifier que les moteurs tournent dans le bon sens. Déplacer les axes à mi-parcours, démarrer Pronterface et connectez vous à l’imprimante, brancher/allumer l’alimentation 12V/24V de la carte. Chose à savoir l’imprimante pensera toujours que c’est la tête qui se déplace dans les 3 axes. 


Nous allons les déplacer de 50mm vers la droite avec la commande Gcode G1 :
G1 X50

G1 : Déplacement Linéaire
X :   Axe ciblé X Y Z E
50 : distance ciblée en millimètre

     Logiquement le chariot X s’est déplacé comme prévu vers la droite, si ce n’est pas le cas ajouter un ! à la ligne indiquant la direction pour le X :



alpha_dir_pin                                0.5!

Le chariot Y doit  s’être déplacé comme prévu vers vous pour une itopie ou une ibreiz ou Prusa I3 (ou le chariot X est venu vers vous, pour une I3, itopie, Ibreizh), si ce n’est pas le cas ajouter un ! à la ligne indiquant la direction pour le Y

beta_dir_pin                                 0.11

le Z
Le chariot X doit s’être déplacé à l’opposé de son origine comme pour une itopie ou une ibreiz ou Prusa I3 (ou le
bed est descendu, tout dépend la configuration de l’imprimante), si ce n’est pas le cas ajouter
un ! à la ligne indiquant la direction pour le Z:

gamma_dir_pin                                0.20

Comme indiqué dans la partie montage l’extruder n’est pas monté sur le X carriage.

Passer un filament  et faites le dépasser de la sortie où normalement la hotend est raccordée

Dans le terminal Pronterface :
G1 E50

Le filament est entrainé et ressort par le coté sortie vers la hotend, sinon ajouter également un ! à la ligne :

extruder.hotend.dir_pin                                     0.22

éditer sauvegarder débrancher rebrancher

Contrôle Pas/mm

    Vérifier que les 4 axes se déplacent comme calculé un peu plus haut, on sort le pied à coulisse un crayon ( pour le filament ) et notre bonne règle de 3.
    On commence par l’extrudeur là où il y a plus de chance d’erreur :
    Vous engagez un bon morceau de filament et marquez au crayon d’un trait au plus près de sa sortie,

       L’extrudeur ne possédant pas de endstops pour le mettre à son origine, utilisé la commande suivante pour le remettre à 0 :

G92 E0

     pui demander au moteur de sortir 100mm de filament via Pronterface avec la commande :


     G1 E100


     On sort le pied à coulisse, on mesure la distance entre ce trait et la sortie de l’extruder on se retrouve donc avec 3 valeurs :

      — Mesure demandée : ici 100mm
      — Filament mesuré qui est sorti : vous venez de le mesurer au pied à coulisse
      — Pas par mm indiqué dans le firmware : on regarde ce qu’on avait déclaré un peu plus haut

        La formule de 3 :


Nouveau pas par mm = (mesure demandée / filament mesurer qui est sorti ) * pas par mm indiqué dans le firmware


    On inscrit dans le config la valeur calculée à la ligne :


  
extruder.hotend.steps_per_mm          140           # Steps per mm for extruder stepper


éditer sauvegarder débrancher rebrancher


On recommence pour être sûr, avec un G1 E100 après avoir remit l’extrudeur à 0. 

Pour les axes X Y Z on commence par faire un homing (G28) d’un axe pour qu’il se place à son 0.

Exemple l’axe X :


G28 X


G28 : Déplacement vers l’ origine
X : Axe cibler


On prend un repère, on lui demande de se déplacer de 100mm
G1 X100



Mesurer au pied à coulisse,  faites  comme pour l’extruder avec la règle de 3.


Idem pour l’axe Y


G1 Y100


Idem pour l’axe Z


G1 Z100


éditer sauvegarder débrancher rebrancher



Recommencez la procédure au pied à coulisse pour être sûr que les pas/mm inscrit dans le firmware sont ok


éditer sauvegarder débrancher rebrancher  si vous avez à modifier le firmware.

1ère Chauffe

Maintenant que l’imprimante se déplace comme nous le voulons, nous allons vérifier et contrôler les éléments de chauffe .


     
Comme nous avons vu dans le menu montage il y a différent Mosfet mais seulement 2 nous intéressent, un gros pour le bed et un moyen pour la Hotend.

     Si le bed ou la hotend ne chauffe pas dans les 2min arrêtez tout quelque chose ne va pas …



Je conseille le big mosfet Q7 pour le bed et le Q6 pour l’extruder avec un câble de 2.00mm2 minimum  en direct de  l’alim sur le POWER IN  comme sur ce schéma. 
( attention à la polarité )



La hotend en Q5 qui correspond à la pin 1.23

ligne :



temperature_control.hotend.heater_pin 1.23

Le heatbed en Q6 qui correspond à la  pin 2.7


ligne :



temperature_control.bed.heater_pin 2.7

éditer sauvegarder débrancher rebrancher


Contrôler que tout corresponde en activant les éléments de chauffe :


Si le bed ou la hotend ne chauffe pas dans les 2min arrêtez tout quelque chose ne va pas …

Brancher / Allumer  l’alimentation  12V ou 24V.



Dans le terminal de Pronterface rentrer les Gcode de mise en chauffe :

La hotend, on y va mollo en lui demandant de chauffer à 80° :


M104 S80


M104 : Définir la température de l’extuder
S    :  Température cible en degré Celsius


Si la hotend ne chauffe pas dans les 2min arrêtez tout M104 S0 quelque chose ne va pas …


La 2eme valeur de  “Heater” en bas à gauche sur Pronterface doit indiquer la consigne de chauffe 80°C et la 1ere valeur doit monter progressivement et la Led CMS derrière le Mofset Q5 sur la carte va s’allumer.



On coupe la chauffe de la hotend :


M104 S0



Le  heatbed, idem on y va mollo en lui demandant de chauffer à 40° :


M190 S40


Si le bed ne chauffe pas dans les 2min arrêter tous M140 S0 quelque chose ne va pas …


    Le “Bed” en bas à gauche sur Pronterface va indiquer la consigne de chauffe 40°C sur la 2eme valeur et la 1ere valeur va monter progressivement et la Led CMS derrière le Mosfet Q6 va s’allumée.

On coupe la chauffe
M140 S0

P.I.D.

     Maintenant que les éléments de chauffe fonctionnent et réagissent aux commandes Gcode nous allons réaliser le PID (Proportionnel Intégral Dérivé).

     Les facteurs P, I et D sont renseignés comme suit:
      — Temperature_control.hotend.p_factor 100
      — Temperature_control.hotend.i_factor 0.1
       -Temperature_control.hotend.d_factor 100


     Mais la chose vraiment difficile est de trouver les bonnes valeurs pour ces 3 facteurs: les valeurs trouvées sur internet, fournies avec le matériel ou que vous soyez un grand-maître PID sont très (probablement) mauvaises pour votre configuration. Vous aurez besoin de l’aide d’un autotuning PID, Smoothieware peut automatiquement  trouver vos facteurs P, I et D.

     Dans Pronterface on lance la commande du PID autotune de la hotend avec une cible de 190°C :

     M303 E0 S190
     — M303  : Exécuter un PID autotune
     — E         : élément chauffant cible,  0 pour la Hotend, et 1 pour le Heatbed.
     — S         : température cible



     Lorsque vous exécutez la commande, le calcul commence,  il se déroule sur 3 à 8 cycles avec des mises en chauffe et des refroidissements ( le firmware défini par lui-même le nombre de cycle pendant l’autotune )

Exemple du commencement d’un cycle :

Target: 190.0
Start PID tune, command is M303 E0 S190
T: Starting PID Autotune, M304 aborts
ok
T:  21.3/190.0 @80 1 0/8
T:  22.0/190.0 @80 1 0/8
T:  22.3/190.0 @80 1 0/8
T:  22.1/190.0 @80 1 0/8
Etc …

Puis il continue 3 à 8 cycles en modulant la chauffe :

Cycle 4: max: 246.189, min: 227.627, avg separation: 0.418274
    Ku: 34.9838, Pu: 39.85
    Trying:
    Kp:  21.0
    Ki: 1.053
    Kd:   105
PID Autotune Complete! The settings above have been loaded into memory, but not written to your config file.


 
PID Autotune terminé! Les paramètres ci-dessus ont été chargés en mémoire, mais pas écrits dans votre fichier de configuration.

Faites un M500 pour les enregistrer dans le config-override.


 
Et on fait la même pour le bed :

M303 E1 S80

Une fois terminé faites un M500 pour les enregistrer dans le config-override.

Ventilateur


Déclaration des pins des ventilateurs de pièce :
Les ventilateurs sont  câblés comme sur l’image du montage sur le Mofset  Q4   pin 1.22

switch.fan.output_pin           1.22                      # Pin this module controls

éditer sauvegarder débrancher rebrancher
Comme il peut être modulé de S1 ( 1% ) à S255 ( 100% de sa puissance), dans la plupart des cas le ventilateur ne démarrera pas en dessous de S20.

On vérifie donc tout de suite en branchant le 12V/24V s’il fonctionne en tapant dans Pronterface la commande :

M106 S255

M106 : Ventilateur cible
S : puissance cible en PWM ( 0 à 255) 

Il fonctionne à 100%

essayer M106 S127  ( soit environ 50% )


pour l’éteindre :


M107
 

Offset


Exécuter la commande Gcode du homing pour les axes X , Y  et Z :

G28 X Y Z

Vous remarquer que la tête d’impression n’effleure pas et ne se trouve pas exactement dessus du coin inférieur gauche de la surface du bed.

Positionner  à l’aide des flèches de Pronterface la hotend sur le coin gauche qui se trouve devant vous. Ajuster la hauteur pour laisser passer une feuille de papier entre la tête et le plateau.


Puis taper la commande
M306 X0 Y0 Z0


puis


M500

      Smoothieware enregistre la distance qui se trouve entre le 0 du  endstop et le 0 de la surface d’impression et l’enregistre sur le config-override en racine de la SD via le M500. Et donc lors d’une impression le firmware réalisera le homing des 3 axes et “tarera” la différence.

 

 

La partie calibration du logiciel smoothieware est terminée, il ne reste plus qu’a créer un fichier gcode à partir d’un stl sous cura. et réaliser votre 1ere impression : un cube ou un amas de plastique :/ …