Autonivellement pour les nuls (ou a peu pres !)

Les améliorations de vos imprimantes
Paps
Nouveau membre
Messages : 10
Inscription : mar. févr. 09, 2016 9:46 am
Imprimante 3D : Prusa I3 steel Construction perso- rostock delta construction perso - scanner ciclop
Localisation : grand ouest

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 ,
SONDE
SONDE
sonde.jpg (12.18 Kio) Consulté 8944 fois

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),
FIGURE1
FIGURE1
FIGURE1.png (3.9 Kio) Consulté 8944 fois
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 !! )
FIGURE2
FIGURE2
FIGURE2.JPG (30.44 Kio) Consulté 8944 fois
,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)
FIGURE3
FIGURE3
FIGURE3.JPG (35.24 Kio) Consulté 8944 fois

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.
FIGURE4
FIGURE4
FIGURE4.JPG (32.81 Kio) Consulté 8944 fois


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
Rudy2A
Contributeur
Messages : 70
Inscription : dim. avr. 30, 2017 7:51 pm
Imprimante 3D : Bunch3D
Prusa I3 Hephestos 2017
Localisation : Ajaccio

Bonjour,

Merci pour ce retour d’expérience... J’avoue qu’il y a quelques mois j’ai tenté l’expérience afin d’installer un capteur capacitif sur mon Hephestos 2017 et je n’ai jamais réussi à paramétrer correctement mon Marlin malgré les nombreux essais liés à mes recherches et différents tutos. À chaque fois, ma buse se trouvait à la limite du plateau d’impression et descendait sans aucun stop en Z, je devais donc débrancher mon alimentation rapidement avant que ma buse ne vienne s’écraser sur le plateau en verre, je n’ai jamais réellement compris pourquoi, car mes procédures semblaient bonnes selon ce qui était décrit, je n’ai jamais compris non plus pourquoi je devais rajouter des diodes sur mon capteur puisque théoriquement la carte (ZUM)de mon Hephestos 2017 avait une sortie 5v, certains disaient qu’il n’y avait pas besoin de pont et d’autre qu’il le fallait( en tout cas sans, le capteur ne fonctionne pas) bref agacé j’ai laissé tombé ... Je vais donc suivre cette procédure de prés dès que j’aurais un peu de temps devant moi en l’adaptant à ma machine (Carte Zum), car ce qui compte pour moi est la partie Marlin !

En tout cas, on ne le dit jamais assez... merci pour cette contribution forte intéressante. :goodguy:
Avatar de l’utilisateur
Jacques
Site Admin
Messages : 5616
Inscription : jeu. oct. 23, 2014 3:02 pm
Imprimante 3D : Witbox, Witbox 2 et Hephestos
Localisation : Aix en Provence
Contact :

La ZUM a deux prises Z, une en 12v et l'autre en 5V sans correspondre au même signal physique. La config Marlin est alors importante.
C'est un peu compliqué mais les schémas sont dispo. Le capteur a aussi son importance, son branchement peut changer suivant qu'il est PNP ou NPN, NO ou NF. Bref ces raisons font que l'on doit procéder avec beaucoup de méthode.
Des idées d'améliorations https://www.thingiverse.com/Premium/designs
Une question, une précision, un manque de pièces détachées, posez vos questions ici même.
Répondre