Autonivellement pour les nuls (ou a peu pres !)
Publié : mar. janv. 30, 2018 12:10 am
Bonsoir
j'ai écrit ce tuto que j'espère complet pour la mise en oeuvre pas à pas d'une sonde inductive sur une machine de type Prusa .
Merci de me faire remonter vos remarques pour améliorations.
Précision : ce tuto est adapté au firmware Marlin 1.5 . Il sera complété d'ici quelques jours pour etre adapté au Marlin 1.1.8 qui présente de bonnes améliorations . notamment la possibilité d'un autonivellement à partir de l'ecran LCD.
INSTALLER UN AUTO-NIVELLEMENT POUR LES NULS
Montage ,installation et utilisation d'une sonde capacitive pour une imprimante 3 D de type Cartésien.
L'Objectif :
Remplacer le détecteur de fin de course min de l'axe Z par une sonde capacitive qui permettra aussi de réaliser l'autonivellement ( en anglais Autoleveling) du plateau,
Les Moyens :
Une sonde capacitive ou inductive .
Deux résistances de 100 k
1 résistance de 47 k
Nota : Il existe plusieurs type de sonde .
la sonde inductive détecte uniquement une surface métallique.
La sonde capacitive détecte tout support donc également le verre . Elle est un peu plus chère que l'inductive (environ 12 € au lieu de 7 € ) Elle peut être réglable .
Les sondes existent en diamètre 12 mm (détection de 0 à 5 mm )
et 18 mm (détection de 0 à 10 mm) ,
J'ai choisi un modèle de chez Amazon (ljc12a3-5-z/BX) au prix de 9,96 € ,
Cette sonde est de type NPN -NO (normalement ouvert ) ,
La tension d'entrée est de 12 volts ( elle admet de 6 à 36 v) la tension en sortie est de 12 v circuit ouvert et de 0 volt circuit fermé .
La carte ramps1,4 ne supportant que le 5 volt sur les contacts de fin de course il faut réduire la tension à 5 volt par l'ajout d'un pont de résistances assez simple à réaliser .
Il faut 3 résistances ( deux de 100 k ohm et une de 47 k ohm )
Si vous avez une résistance de 147 k o c'est encore mieux,
Réalisez le le montage ci dessous ,
La sonde est fixée à coté de la tête extrudeuse. Suivant votre extrudeur vous trouverez des fichiers de montage sur thingiverse ou vous pouvez en dessinez un .( je tiens à votre disposition des fichiers stl et sw pour montage à droite ou à gauche de sondes de 12 et 18 mm sur extrudeur MK8)
La sonde peut se monter à droite , à gauche , à l arrière ou a l'avant , c'est de votre choix ,
Un impératif cependant : qu'elle soit solidement fixée pour que au zéro de la tête le bas de la sonde (partie bleue) se trouve entre 2 et 3 mm du lit de chauffe (nous y reviendrons pour le réglage précis), deuxième impératif : placer la sonde de telle manière qu'elle ne bloque pas les déplacements en X et Y,
Branchement de la sonde :
- le fil marron sur le + 12 volts ( par exemple sur le branchement + du ventilo )
- le fil bleu (masse sur le moins du 12 v ou sur le Gnd du end stop )
-le fil noir sur le z min ( pin du haut ),
Nota : avant d'installer le fil noir sur le Z min , vous pouvez vérifier que vous avez bien 5 volt en allumant l 'imprimante et en testant la tension entre la masse et le fil noir non connecté sur la carte,
Si vous avez une tension autour de 5 volt c'est que c'est ok , sinon revoir votre montage ,
autre vérification possible : si vous touchez la partie bleue , la led s'allume et la tension passe à zéro,
Vérification faite : vous pouvez brancher le fil noir sur le END STOP Z Min,
A ce stade , vous pouvez encore faire un essai à blanc,
Allumez l'imprimante ( ne touchez à aucune commande ) : la tête étant éloignée en Z du plateau ( un ou deux centimètres ça suffit ) la LED de la sonde doit être éteinte ,
Approchez votre doigt ou un objet quelconque de la partie bleue et la LED doit s'allumer ,
Si ce n'est pas le cas vérifiez vos connections .
Autre vérification :
La sonde étant éloignée du lit Envoyez la commande M119 vous devez avoir le résultat suivant :
Z min open
La même commande M119 avec le doigt sur la sonde vous devez avoir Z Min Trigerred
REGLAGE du Z0 et de l'offset de la sonde :
Principe :
Avant toute chose et afin d'optimiser l'autonivellement , je conseille de régler au mieux le plateau et les deux axes Z .
Modification du Firmware :( première modif préalable)
Afin d'activer l'autonivellement , il faut impérativement modifier le Marlin ( si c'est le firmware que vous utilisez )
j'ai un Marlin version 1.5
Voici ce que cela donne après modification des commentaires (//),
Dans Configuration_adv .h , la ligne (89) qui devient :
Ligne 89 : #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
Dans Configuration.h
Ligne 326 : //#define ENDSTOPPULLUP_ZMIN
Ligne 386 : #define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
Imprimante déconnectée : téleversez et sauvegardez le firmware dans la carte ,
Rallumez l'imprimante .
Dernière vérification (on n'est jamais trop prudent ),
L'imprimante allumée et l'axe Z à environ + 10 cm , (pour avoir de la marge!!) commandez avec Repetier une descente de 5 cm .
Astuce : Si la commande Z est inopérante faite un home X et un home Y ( les valeurs x et y passent en noir le Z reste en rouge et peut être forcé!! )
Pendant la descente , approchez un objet de la partie bleu de la sonde : l'imprimante doit s’arrêter ,remonter légèrement , et redescendre doucement sur quelques millimètres.
Sinon coupez vite alimentation et revérifiez l'ensemble .
Réglage du zéro de la tête d'extrusion .
Avec Repetier , amenez la tête au milieu du plateau en X et Y,
Avec Repetier et son joystick de commande Z , faites descendre la tête pour affleurer le plateau ,
Pour ma part , je laisse un espace de 0,1 mm ( une feuille de papier 80grs)
Nota : Si Repetier ne veut pas faire descendre le Z en dessous de zéro , vous avec l'astuce suivante :
déconnectez l'imprimante et reconnectez la , faite un home X ,( le Z rouge peut se forcer ),vous pouvez aussi utiliser la commande de votre lcd . Vous pouvez aussi descendre les deux Z manuellement , mais c'est beaucoup moins précis !! )
,Une fois le zéro Z atteint envoyez la commande : G92 X0 Y0 Z0,
Avec Repetier : amenez la sonde au milieu du plateau et remontez le Z à +20 mm (la sonde est éteinte)
Relevez sur l'écran de contrôle les valeurs de X et Y : notez les ,
Envoyez la commande G30 ( palpation du point courant )
Relevez la valeur par exemple 2,54 - ( notez cette valeur Z)
Envoyez la commande M851 Z -2,54 ( signe moins)
Envoyez la commande M500 pour sauvegarder sur la carte.
Modification du Firmware pour l'Autonivellement.
Déconnectez l'imprimante ,
Ouvrez le Marlin
allez dans Configuration .h
Allez au chapitre méchanical setting,
Ligne 410
// set the rectangle in which to probe – (défini le rectangle de palpation )
ce sont les coordonnées X et Y du rectangle de palpation par rapport à votre X min et Y min,
Attention : La définition de ces quatre points doit être cohérente avec le placement de votre sonde par rapport à votre tête afin qu'elle ne palpe pas dans le vide !!!
Exemple : si la sonde est du coté gauche de la tête vous pouvez mettre par exemple les valeurs ci dessous,
#define LEFT_PROBE_BED_POSITION 0
#define RIGHT_PROBE_BED_POSITION 140
#define BACK_PROBE_BED_POSITION 160
#define FRONT_PROBE_BED_POSITION 30
Si la sonde est du coté droit , pour que la sonde puisse palper sur une surface vous devez au minimum mettre la valeur de l'offset noté plus haut
par exemple
#define LEFT_PROBE_BED_POSITION 41
#define RIGHT_PROBE_BED_POSITION 180
#define BACK_PROBE_BED_POSITION 160
#define FRONT_PROBE_BED_POSITION 30
Nota : si vous voyez apparaître sur le LCD la mention ''Rev .dans XY av.Z '' c'est que le rectangle de palpation sort du possible et la carte renvoie ce message d'erreur ,
Faites également attention à ce que le deplacement de la sonde ne soit pas géné par les pinces de fixation du verre ou les vis de calage du plateau .
Ligne 416
// set the number of grid points per dimension
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
#define AUTO_BED_LEVELING_GRID_POINTS 2
C'est le nombre de palpations par position . (deux sont suffisants)
Ligne 435
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -41
#define Y_PROBE_OFFSET_FROM_EXTRUDER 12
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.27 //M851 Z-"..." to change and save with M500.
C'est le point le plus important de la mise en place de l'autonivellement :
Reportez en X , Y et Z les valeurs inversées notées plus haut ( après de G30)
Si vous avez trouvé X = 41 , Y = -12 , Z 2,27 ( c'est que votre sonde est a gauche de la tête et légèrement en arrière ) alors vous reportez X -41 Y 12 et Z -2,27
Si la sonde est à droite de la tète et un peu en avant cela peut donner X = -58 , Y 10 Z-2,27
Donc vous reportez X 58 Y-10 Z-2,27
Nota : Dans tous les cas de figure ,la valeur reportée de Z est négative
Précision : la valeur Z correspond (a l'épaisseur d'une feuille de papier près) a l'écart vertical entre la tête et le plateau lors de la détection de la sonde
Comme la sonde détecte le lit autour de 4 à 5 mm (suivant vos réglages ) lors de la commande G28 la tête sera toujours surélevée de 2,27 mm par rapport au lit .( + la sauvegarde) Lors de l'impression la tête se cale exactement au zéro en tout point du plateau .
Astuce : si pour une raison quelconque vous modifiez ou affinez les réglages du Z et que vous trouvez une valeur différente , vous pouvez rentrer directement la nouvelle valeur Z avec la commande M851 et mise en mémoire avec M500,
la commande M851 seule renvoie la valeur de Z stockée ,
Ligne 468
#ifdef Z_SAFE_HOMING
#define Z_SAFE_HOMING_X_POINT (10) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT (12) // Y point for Z homing when homing all axis (G28)
( valeurs à modifier suivant votre configuration géométrique)
Permet lors du G28 de déterminer les valeurs X et Y du point de palpation ,
Si les valeurs ne sont pas bonnes lors de la commande G28 vous aurez le message :''Rev .dans XY av.Z '' et la commande G29 sera inopérante ,
C'est fini :
VOUS POUVEZ TELEVERSER ,
Ne pas oublier de modifier le ''start Gcode '' en introduisant les deux commandes G28 et G29
; Default start code
G90 ; Absolute positioning
G28 ; Home extruder
G29
G1 Z15 F{Z_TRAVEL_SPEED}
M107 ; Turn off fan
M82 ; Extruder in absolute mode
{IF_BED}M190 S{BED}
; Activate all used extruder
{IF_EXT0}M104 T0 S{TEMP0}
G92 E0 ; Reset extruder position
; Wait for all used extruders to reach temperature
{IF_EXT0}M109 T0 S{TEMP0}
Nota :
la commande G29 (précédée de G28 ) renvoie sur le log les Z des quatre coins du plateau . Ces valeurs écrites dans le log de repetier peuvent vous donner quelques indications sur la géométrie de vos éléments ,
Par exemple : des cotes a droite a peu près identiques mais avec une différence notable avec celles de gauche peuvent indiquer les deux montants Z mal équilibrés,
Bonne impression,
Si interrogations :mon contact : fablab.paps@gmail.com ou sur ce forum
merci également de me faire connaître mes erreurs ou omissions .
Philippe
j'ai écrit ce tuto que j'espère complet pour la mise en oeuvre pas à pas d'une sonde inductive sur une machine de type Prusa .
Merci de me faire remonter vos remarques pour améliorations.
Précision : ce tuto est adapté au firmware Marlin 1.5 . Il sera complété d'ici quelques jours pour etre adapté au Marlin 1.1.8 qui présente de bonnes améliorations . notamment la possibilité d'un autonivellement à partir de l'ecran LCD.
INSTALLER UN AUTO-NIVELLEMENT POUR LES NULS
Montage ,installation et utilisation d'une sonde capacitive pour une imprimante 3 D de type Cartésien.
L'Objectif :
Remplacer le détecteur de fin de course min de l'axe Z par une sonde capacitive qui permettra aussi de réaliser l'autonivellement ( en anglais Autoleveling) du plateau,
Les Moyens :
Une sonde capacitive ou inductive .
Deux résistances de 100 k
1 résistance de 47 k
Nota : Il existe plusieurs type de sonde .
la sonde inductive détecte uniquement une surface métallique.
La sonde capacitive détecte tout support donc également le verre . Elle est un peu plus chère que l'inductive (environ 12 € au lieu de 7 € ) Elle peut être réglable .
Les sondes existent en diamètre 12 mm (détection de 0 à 5 mm )
et 18 mm (détection de 0 à 10 mm) ,
J'ai choisi un modèle de chez Amazon (ljc12a3-5-z/BX) au prix de 9,96 € ,
Cette sonde est de type NPN -NO (normalement ouvert ) ,
La tension d'entrée est de 12 volts ( elle admet de 6 à 36 v) la tension en sortie est de 12 v circuit ouvert et de 0 volt circuit fermé .
La carte ramps1,4 ne supportant que le 5 volt sur les contacts de fin de course il faut réduire la tension à 5 volt par l'ajout d'un pont de résistances assez simple à réaliser .
Il faut 3 résistances ( deux de 100 k ohm et une de 47 k ohm )
Si vous avez une résistance de 147 k o c'est encore mieux,
Réalisez le le montage ci dessous ,
La sonde est fixée à coté de la tête extrudeuse. Suivant votre extrudeur vous trouverez des fichiers de montage sur thingiverse ou vous pouvez en dessinez un .( je tiens à votre disposition des fichiers stl et sw pour montage à droite ou à gauche de sondes de 12 et 18 mm sur extrudeur MK8)
La sonde peut se monter à droite , à gauche , à l arrière ou a l'avant , c'est de votre choix ,
Un impératif cependant : qu'elle soit solidement fixée pour que au zéro de la tête le bas de la sonde (partie bleue) se trouve entre 2 et 3 mm du lit de chauffe (nous y reviendrons pour le réglage précis), deuxième impératif : placer la sonde de telle manière qu'elle ne bloque pas les déplacements en X et Y,
Branchement de la sonde :
- le fil marron sur le + 12 volts ( par exemple sur le branchement + du ventilo )
- le fil bleu (masse sur le moins du 12 v ou sur le Gnd du end stop )
-le fil noir sur le z min ( pin du haut ),
Nota : avant d'installer le fil noir sur le Z min , vous pouvez vérifier que vous avez bien 5 volt en allumant l 'imprimante et en testant la tension entre la masse et le fil noir non connecté sur la carte,
Si vous avez une tension autour de 5 volt c'est que c'est ok , sinon revoir votre montage ,
autre vérification possible : si vous touchez la partie bleue , la led s'allume et la tension passe à zéro,
Vérification faite : vous pouvez brancher le fil noir sur le END STOP Z Min,
A ce stade , vous pouvez encore faire un essai à blanc,
Allumez l'imprimante ( ne touchez à aucune commande ) : la tête étant éloignée en Z du plateau ( un ou deux centimètres ça suffit ) la LED de la sonde doit être éteinte ,
Approchez votre doigt ou un objet quelconque de la partie bleue et la LED doit s'allumer ,
Si ce n'est pas le cas vérifiez vos connections .
Autre vérification :
La sonde étant éloignée du lit Envoyez la commande M119 vous devez avoir le résultat suivant :
Z min open
La même commande M119 avec le doigt sur la sonde vous devez avoir Z Min Trigerred
REGLAGE du Z0 et de l'offset de la sonde :
Principe :
Avant toute chose et afin d'optimiser l'autonivellement , je conseille de régler au mieux le plateau et les deux axes Z .
Modification du Firmware :( première modif préalable)
Afin d'activer l'autonivellement , il faut impérativement modifier le Marlin ( si c'est le firmware que vous utilisez )
j'ai un Marlin version 1.5
Voici ce que cela donne après modification des commentaires (//),
Dans Configuration_adv .h , la ligne (89) qui devient :
Ligne 89 : #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
Dans Configuration.h
Ligne 326 : //#define ENDSTOPPULLUP_ZMIN
Ligne 386 : #define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
Imprimante déconnectée : téleversez et sauvegardez le firmware dans la carte ,
Rallumez l'imprimante .
Dernière vérification (on n'est jamais trop prudent ),
L'imprimante allumée et l'axe Z à environ + 10 cm , (pour avoir de la marge!!) commandez avec Repetier une descente de 5 cm .
Astuce : Si la commande Z est inopérante faite un home X et un home Y ( les valeurs x et y passent en noir le Z reste en rouge et peut être forcé!! )
Pendant la descente , approchez un objet de la partie bleu de la sonde : l'imprimante doit s’arrêter ,remonter légèrement , et redescendre doucement sur quelques millimètres.
Sinon coupez vite alimentation et revérifiez l'ensemble .
Réglage du zéro de la tête d'extrusion .
Avec Repetier , amenez la tête au milieu du plateau en X et Y,
Avec Repetier et son joystick de commande Z , faites descendre la tête pour affleurer le plateau ,
Pour ma part , je laisse un espace de 0,1 mm ( une feuille de papier 80grs)
Nota : Si Repetier ne veut pas faire descendre le Z en dessous de zéro , vous avec l'astuce suivante :
déconnectez l'imprimante et reconnectez la , faite un home X ,( le Z rouge peut se forcer ),vous pouvez aussi utiliser la commande de votre lcd . Vous pouvez aussi descendre les deux Z manuellement , mais c'est beaucoup moins précis !! )
,Une fois le zéro Z atteint envoyez la commande : G92 X0 Y0 Z0,
Avec Repetier : amenez la sonde au milieu du plateau et remontez le Z à +20 mm (la sonde est éteinte)
Relevez sur l'écran de contrôle les valeurs de X et Y : notez les ,
Envoyez la commande G30 ( palpation du point courant )
Relevez la valeur par exemple 2,54 - ( notez cette valeur Z)
Envoyez la commande M851 Z -2,54 ( signe moins)
Envoyez la commande M500 pour sauvegarder sur la carte.
Modification du Firmware pour l'Autonivellement.
Déconnectez l'imprimante ,
Ouvrez le Marlin
allez dans Configuration .h
Allez au chapitre méchanical setting,
Ligne 410
// set the rectangle in which to probe – (défini le rectangle de palpation )
ce sont les coordonnées X et Y du rectangle de palpation par rapport à votre X min et Y min,
Attention : La définition de ces quatre points doit être cohérente avec le placement de votre sonde par rapport à votre tête afin qu'elle ne palpe pas dans le vide !!!
Exemple : si la sonde est du coté gauche de la tête vous pouvez mettre par exemple les valeurs ci dessous,
#define LEFT_PROBE_BED_POSITION 0
#define RIGHT_PROBE_BED_POSITION 140
#define BACK_PROBE_BED_POSITION 160
#define FRONT_PROBE_BED_POSITION 30
Si la sonde est du coté droit , pour que la sonde puisse palper sur une surface vous devez au minimum mettre la valeur de l'offset noté plus haut
par exemple
#define LEFT_PROBE_BED_POSITION 41
#define RIGHT_PROBE_BED_POSITION 180
#define BACK_PROBE_BED_POSITION 160
#define FRONT_PROBE_BED_POSITION 30
Nota : si vous voyez apparaître sur le LCD la mention ''Rev .dans XY av.Z '' c'est que le rectangle de palpation sort du possible et la carte renvoie ce message d'erreur ,
Faites également attention à ce que le deplacement de la sonde ne soit pas géné par les pinces de fixation du verre ou les vis de calage du plateau .
Ligne 416
// set the number of grid points per dimension
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
#define AUTO_BED_LEVELING_GRID_POINTS 2
C'est le nombre de palpations par position . (deux sont suffisants)
Ligne 435
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -41
#define Y_PROBE_OFFSET_FROM_EXTRUDER 12
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.27 //M851 Z-"..." to change and save with M500.
C'est le point le plus important de la mise en place de l'autonivellement :
Reportez en X , Y et Z les valeurs inversées notées plus haut ( après de G30)
Si vous avez trouvé X = 41 , Y = -12 , Z 2,27 ( c'est que votre sonde est a gauche de la tête et légèrement en arrière ) alors vous reportez X -41 Y 12 et Z -2,27
Si la sonde est à droite de la tète et un peu en avant cela peut donner X = -58 , Y 10 Z-2,27
Donc vous reportez X 58 Y-10 Z-2,27
Nota : Dans tous les cas de figure ,la valeur reportée de Z est négative
Précision : la valeur Z correspond (a l'épaisseur d'une feuille de papier près) a l'écart vertical entre la tête et le plateau lors de la détection de la sonde
Comme la sonde détecte le lit autour de 4 à 5 mm (suivant vos réglages ) lors de la commande G28 la tête sera toujours surélevée de 2,27 mm par rapport au lit .( + la sauvegarde) Lors de l'impression la tête se cale exactement au zéro en tout point du plateau .
Astuce : si pour une raison quelconque vous modifiez ou affinez les réglages du Z et que vous trouvez une valeur différente , vous pouvez rentrer directement la nouvelle valeur Z avec la commande M851 et mise en mémoire avec M500,
la commande M851 seule renvoie la valeur de Z stockée ,
Ligne 468
#ifdef Z_SAFE_HOMING
#define Z_SAFE_HOMING_X_POINT (10) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT (12) // Y point for Z homing when homing all axis (G28)
( valeurs à modifier suivant votre configuration géométrique)
Permet lors du G28 de déterminer les valeurs X et Y du point de palpation ,
Si les valeurs ne sont pas bonnes lors de la commande G28 vous aurez le message :''Rev .dans XY av.Z '' et la commande G29 sera inopérante ,
C'est fini :
VOUS POUVEZ TELEVERSER ,
Ne pas oublier de modifier le ''start Gcode '' en introduisant les deux commandes G28 et G29
; Default start code
G90 ; Absolute positioning
G28 ; Home extruder
G29
G1 Z15 F{Z_TRAVEL_SPEED}
M107 ; Turn off fan
M82 ; Extruder in absolute mode
{IF_BED}M190 S{BED}
; Activate all used extruder
{IF_EXT0}M104 T0 S{TEMP0}
G92 E0 ; Reset extruder position
; Wait for all used extruders to reach temperature
{IF_EXT0}M109 T0 S{TEMP0}
Nota :
la commande G29 (précédée de G28 ) renvoie sur le log les Z des quatre coins du plateau . Ces valeurs écrites dans le log de repetier peuvent vous donner quelques indications sur la géométrie de vos éléments ,
Par exemple : des cotes a droite a peu près identiques mais avec une différence notable avec celles de gauche peuvent indiquer les deux montants Z mal équilibrés,
Bonne impression,
Si interrogations :mon contact : fablab.paps@gmail.com ou sur ce forum
merci également de me faire connaître mes erreurs ou omissions .
Philippe