Aller au contenu


Information tutoriel

  • Ajouté le: juil. 05 2016 08:34
  • Date Updated: juil. 06 2016 10:13
  • Lectures: 1086
  • |
 


* * * * *
1 Notes

Auto bed leveling sunhokey PRUSA I3 (S508)

J'ai rédigé une petite procédure pour mettre en place un système d'auto bed leveling sur une sunhokey prusa I3.

Posté par Telson on juil. 05 2016 08:34
auto bed leveling PRUSA I3 sunhokey prusa I3

Capture d’écran 2016-07-05 à 09.21.14.jpg


 
 
1. TABLE DES MATIÈRES
2. TÉLÉCHARGER LE FIRMWARE ET LE LOGICIEL ARDUINO
3. LA PARTIE MÉCANIQUE
4. LES BRANCHEMENTS
5. LES MODIFICATIONS DU FICHIER CONFIGURATION.H
6. CHARGER LE FICHIER DE CONFIGURATION DANS LA CARTE MKS GEN
7. LES RÉGLAGES
8. LE G-CODE
    
    
2. TÉLÉCHARGER LE FIRMWARE ET LE LOGICIEL ARDUINO
 
Avant de commencer il est impératif de se procurer le firmware de la carte de contrôle de l’imprimante.
 
Dans ce tutoriel il est question du firmware Marlin pour la carte MKS GEN2Z V1.1.

Puis, regardez dans le répertoire de votre firmware et prenez le temps de lire le fichier README.md.
 
Vous y trouverez des explications et des liens sur :
 

  • Le logiciel arduino et le firmware Marlin, section : Configuring and compilation,
  • la mise en place de l’auto bed leveling, section : Instructions for configuring Bed Auto Leveling,
  • le g-code implémenté, section : Implemented G Codes,
  •  …

Il vous faudra ensuite vous procurer le logiciel arduino.
    
   
3. LA PARTIE MÉCANIQUE :

Concernant le support du servomoteur j’ai choisi un support très simple :
 
 

support.JPG


source : http://www.thingiver...m/thing:1162067


 
La fixation de ce système s’effectue très simplement à l’arrière du chariot de l’extrudeur :
 

fixation.JPG


 
Si le servomoteur est un SG90 il faudra imprimer plutôt ce modèle de bras:
 

bras.JPG


source : http://www.thingiver...m/thing:1335701

    
    
4. LES BRANCHEMENTS :
              
         4.1 LE BRANCHEMENT DU SERVOMOTEUR :
 
La connexion du servomoteur s'effectue sur la broche D11 :
 

Capture d’écran 2016-07-05 à 09.21.39.jpg

 

          4.2 LE BRANCHEMENT DU SWITCH :
 

Capture d’écran 2016-07-05 à 09.21.44.jpg


 
Il sera nécessaire de déplacer l’interrupteur du endstop Z mini sur le palpeur.
 
Attention toutefois à la place disponible lorsque le bras de ce dernier se rétracte. Il sera nécessaire d’utiliser un interrupteur sans le support ci-contre.
 
Il faudra à ce moment-là un interrupteur 3 broches : COM/NO/NC nu, sans support.
 

Capture d’écran 2016-07-05 à 09.21.56.jpg


 
Sur lequel vous devrez connecter 3 fils comme ceci :
 

Capture d’écran 2016-07-05 à 09.22.08.jpg


Source : merci Mike118 : http://www.robot-mak...e-endstop/ </p>


 

 
Il est possible de ne pas utiliser la résistance pull up R1 de 10 Kohm et dans ce cas il faut IMPÉRATIVEMENT connecter le + 5V (broche + de la carte) sur le NC sinon court-circuit avec NO quand nous appuyons sur l’interrupteur.
 
L’interrupteur ne subit pas d’appui, il est en position NC, le signal est au niveau HAUT,
Lorsque l’interrupteur subit un contact, il passe en position NO, le signal au niveau bas.[/center]
 
Il faudra donc brancher les 3 fils à la place du endstop Z min sur la carte, le +, le – et le S pour signal.
    
     
5. LES MODIFICATIONS DU FICHIER CONFIGURATION.H
     

Faite d’abord une copie de l’original du firmware.
NE FAITE JAMAIS DE MODIFICATION DANS L’ORIGINAL

      
Commençons tout simplement par ouvrir le fichier Configuration.h avec notepad++, par exemple, et modifions les lignes suivantes :
 
Dans la section :
//=======================================================================
//=============================Mechanical Settings=========================== //========================================================================
// ENDSTOP SETTINGS:
#define min_software_endstops false // Si true, impossible de descendre en dessous de la position HOME_POS.
 
Dans la section :
//============================= Bed Auto Leveling ===========================

Enlever les deux // de la ligne suivante
#define ENABLE_AUTO-BED_LEVELING

Il existe deux modes d'auto bed leveling. Soit la méthode de la grille soit par une méthode de 3 points.
 
Ici nous prendrons la méthode grille. Donc laisser la ligne suivante sans aucune modification :
#define AUTO_BED_LEVELING_GRID

Il faut ensuite, et selon les dimensions du plateau chauffant, modifier les lignes suivantes.
Ce sont les marges à implémenter pour éviter que le palpeur ne soit à l'extérieur du plateau :
#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 170
#define BACK_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 30


J'ai un plateau de 200*200, j'ai donc mis une marge de 30 mmm à gauche, à droite, devant et derrière.
 
C'est uniquement dans cette zone que les points de palpage s’effectueront. Il faudra revenir sur ces réglages ultérieurement pour s’assurer que les points de palpage ne s’effectuent pas en dehors du plateau : voir & 7.2.
 
Maintenant le nombre de palpage par dimension, j'ai mis 3 et il n'est pas nécessaire d'aller au-delà
#define AUTO_BED_LEVELING_GRID_POINTS 3

Enfin, passons maintenant à l'offset (en mm), décalage en X, Y et Z, du switch du palpeur par rapport à la buse.
 
Ce sont ces valeurs qu'il faudra absolument régler. ATTENTION, pas question de prendre ces valeurs. Il faut les rechercher. Elles sont spécifiques à chaque machine et ce même pour des modèles identiques!! voir & 7.2.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35


Hauteur d’élévation en Z avant le homing.
#define Z_RAISE_BEFORE_HOMING 5

La vitesse (mm/min) de déplacement sur l'axe X et Y entre deux palpages :
#define XY_TRAVEL_SPEED 4000 //Vous pouvez mettre 4000/6000/8000….Pas 100000 !!!

Les hauteurs de déplacement en Z avant le premier palpage et entre deux palpages.ATTENTION il faut mettre une hauteur suffisante pour que le bras puisse sortir sans heurter le plateau
#define Z_RAISE_BEFORE_PROBING 10
#define Z_RAISE_BETWEEN_PROBINGS 10


Le délai de désactivation du servomoteur pour éviter les vibrations de ce dernier.
#define PROBE_SERVO_DEACTIVATION_DELAY 300

Ne pas commenter la ligne suivante ou la décommenter (supprimer les deux //) :
#define Z_SAFE_HOMING

Dans le fichier Configuration.h il est noté :
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!

Vous trouverez des informations contradictoires sur ce sujet. En ce qui me concerne je préfère suivre les recommandations du fichier : Configuration.h
 
Maintenant allons à la section :
/*********************************************************************\
* R/C SERVO support
* Sponsored by TrinityLabs, Reworked by codexmas
**********************************************************************/
Supprimer les deux // devant les lignes ci-dessous pour activer le servomoteur qui devra être connecté à la broche D11, voir & 4.
#define NUM_SERVOS 1 // indication du nombre de servomoteur sur la carte
#define SERVO_ENDSTOPS {-1, -1, 0} // Servomoteur pour l'axe Z, actif = 0, inactif = -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // angle servomoteur, 70° = sorti et 0° = rentré
 
Pour le réglage de l’angle du servo voir & 7.
 
Les premières modifications du fichier Configuration.h sont terminées. Il faut maintenant charger le firmware dans la carte. Voir & 6.
    
     
6. CHARGER LE FICHIER DE CONFIGURATION DANS LA CARTE MKS GEN
 
Il est maintenant nécessaire de charger le fichier de configuration dans la carte MKS GEN Z2 v1.1.

  • Ouvrez le logiciel arduino et choisissez le type de carte mega2560,
  • Sélectionner le port de communication de la carte MKS,
  • Ouvrez le fichier Malin.ino,
  • Téléverser dans la carte MKS.

 

Capture d’écran 2016-07-05 à 09.22.29.jpg


 

Capture d’écran 2016-07-05 à 09.22.39.jpg

                
               
7. LES RÉGLAGES
         
             
         7.1 RÉGLAGES DES ANGLES DU SERVOMOTEUR
 
Dans un premier temps nous allons rechercher l’angle de sortie et de retour du palpeur.
 
Il faut obligatoirement monter l’extrudeur et donc le palpeur suffisamment haut, pour éviter que ce dernier ne vienne heurter le plateau.
 
Puis, en commande manuel, dans l’interface G-code, passer l’ordre suivant :
M280 P0 S160
 
Cette commande envoie l’ordre à l’imprimante de placer le servomoteur à l’angle 160° (S160).
 
Maintenant, l’objectif est de trouver l’angle permettant de placer le palpeur le plus perpendiculairement possible par rapport au plateau.
 
Plusieurs essais seront nécessaires et un réglage à l’œil suffira.
 
Sur ma machine j’ai trouvé 87°.
 
Puis, avec la même commande, chercher l’angle de rentré du palpeur.
 
Faite bien attention que celui-ci ne touche rien quand il rentre.
 
Donc un angle de sortie, pour le palpage et un angle de rentré.
 
Sur ma machine j’ai mis 10°
 
Une fois ces deux angles défini, il faudra modifier de nouveau le fichier Configuration.h à la ligne suivante :
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 87, 10}
          
              
          7.2 RÉGLAGES DE L’OFFSET, DÉCALAGE X, Y ET Z DU PALPEUR
 
Mettre en chauffe votre imprimante, le lit plus la buse. Il faut absolument prendre en compte la dilatation des matériaux.
 
Maintenant nous allons rechercher l’offset, décalage du palpeur, en X, Y et Z.
 
Faire une petite marque au milieu de votre plateau et, en utilisant le contrôle manuel, placer la buse sur cette marque.
 
Utiliser un déplacement par pas de 0,1 mm pour ajuster le plus finement possible la position.
 
Remonter ensuite la buse de 0,1 mm. Vous devriez avoir la possibilité de glisser un petit morceau de feuille entre la buse et le plateau.  Comme il est fait lors d’un réglage manuel du plateau.
 
Si ce n’est pas le cas régler votre plateau à la main pour que le morceau de papier glisse sans forcer sous la buse. Pas de panique….C’est la dernière fois que vous devrez le faire !!
 
Maintenant nous allons mettre à 0 la position des axes avec la commande suivante :
G92 X0 Y0 Z0
 
C’est une mise à 0 temporaire de la position des 3 axes…..
 
Ensuite, monter la buse suffisamment haute de manière à pouvoir sortir le bras du palpeur.
 
Vous pouvez sortir le bras du palpeur avec la commande : M401 ou M280 P0 S160.
 
Maintenant, avec l’interface de commande manuelle, déplacer le switch du palpeur juste au-dessus de la marque sur le plateau.
 
Affiné avec par pas de 0,1 mm.
 
Descendez ensuite, par pas de 0,1 mm jusque ce que le switch du palpeur se déclenche. Le petit clic confirme le déclenchement de ce dernier.
 
Utilisez maintenant la commande : M114.
 
Vous pouvez alors lire sur votre écran la position X, Y et Z.
 
Pour exemple, admettons que vous lisez X: -29.85, Y:1.85, Z:8.40.
 
Vous devez impérativement multiplier ces valeurs par – 1. Autrement dit les valeurs négatives deviennent positives et les valeurs positives deviennent négatives.
 
Maintenant dans le fichier Configuration.h, modifiez les lignes suivantes avec ces dernières valeurs, donc :
N’oubliez pas de placer les valeurs que vous avez multipliez par – 1 !!!, soit ici dans notre exemple :
#define X_PROBE_OFFSET_FROM_EXTRUDER 29.85
#define Y_PROBE_OFFSET_FROM_EXTRUDER -1.85
#define Z_PROBE_OFFSET_FROM_EXTRUDER -8.40


Attention, regardez bien vos valeurs de décalage, ici en X nous avons 29.85 et dans notre fichier configuration.h, nous avons défini
#define LEFT_PROBE_BED_POSITION 30

Il sera alors plus prudent de mettre les valeurs ci-dessous (plateau de 200*200):
#define LEFT_PROBE_BED_POSITION 50 //200- (29.85 + 20 de marge)
#define RIGHT_PROBE_BED_POSITION 150 //200- (29.85 + 20 de marge)
#define BACK_PROBE_BED_POSITION 170 //30 de marge
#define FRONT_PROBE_BED_POSITION 30 //30 de marge

Les dernières modifications du fichier Configuration.h sont terminées.
 
Il faut maintenant charger le firmware dans la carte. Voir & 6.
Il faudra ensuite placer un nouveau G-code en début d’impression pour profiter de l’auto bed leveling. Voir & 8.
         
            
8. LE G-CODE
 
Il existe de nombreux exemples de G-code pour l’auto bed leveling. Ici nous utiliserons un exemple très simple.
 
A placer dans la configuration du trancheur, onglet G-code :
 

Capture d’écran 2016-07-05 à 09.22.51.jpg


 
G90 ; Passage coordonnées absolues
G28 X Y ; Home X Y
//G28 Z ; home Z (pas nécessaire)
G29 ; Palpage
G90 ; Passage coordonnées absolues
G1 Z2 F4000 ; rétractation palpeur
 
 
Il est temps maintenant de lancer une impression.


ATTENTION : RESTER A CÔTE DE VOTRE IMPRIMANTE POUR LA PREMIÈRE !!!


 


 

Fichier pdf téléchargeable : Fichier joint  tutoriel auto bed leveling.pdf   1,24 Mo   155 téléchargement(s)