Alors l’autobed, va permettre a l’imprimante d’aller palper (ici avec un capteur captif)  les endroit qu’on lui aura indiquer auparavant. Le capteur capacitif agit comme un interrupteur sans contact. A la différence d’un capteur inductif, il détecte des matériaux non ferreux comme le verre, le bois, la peau, etc.

Ce capteur va en fait tout simplement remplacer le contact de fin de course Z en étant installé directement sur le chariot d’impression.

 

Les capteurs capacitifs sont allègrement utilisés en industrie pour détecter des positions sans contact.

J’ai choisi le modèle LJC18A3-H-Z/BX, aisément achetable sur eBay ou d’autres sites pour quelques euros.

Il existe des modèles plus petit (celui çi fait quand même 18mm de diamètre)

 

Il est réglé en hauteur de telle sorte que le bas du capteur orange arrive environ 3mm au dessus des têtes d’impression pour ne pas racler les pièces et avoir assez de garde.

Branchement électronique

C’est là que ça se gâte un peu. En effet, ce capteur peut être alimenté entre 6V et 36V. Le problème c’est que le signal de fin de course Z ne doit pas excéder 5V en entrée, sous peine d’endommager la carte électronique.

J’ai aussi lu que la précision et la répétabilité d’un tel capteur n’était pas très bonne avec des tensions faibles.

J’ai donc décidé de l’alimenté en 12V, ce qui veut dire que le signal de commutation sera de 12V et qu’il faut donc diviser la tension pour arriver aux 5V requis pour la carte électronique.

En fait, une fois branché, la tension de commutation est plutôt de 9.8V, le capteur faisant une perte de tension de plus de 2V. On obtient le montage suivant pour le câblage :

idea3d Câblage-capteur-capacitif

Alimentation en 12V entre les fils marron et bleu.

Le signal en noir est quant à lui passé dans un diviseur de tension avec deux simples résistances et ensuite la sortie est branchée sur Zmin sur la carte RAMPS. Attention à bien brancher le moins sur le pin – et le SIGNAL sur le pin S de la carte.

Le capteur est branché, il ne reste qu’à reflasher le firmware de la carte pour pouvoir l’utiliser.

Paramétrage du firmware

Ce qui est important à modifier :

#define ENABLE_AUTO_BED_LEVELING

Il faut décommenter cette ligne pour activer la fonctionnalité d’autocalibration.

const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.

Les contacts mécaniques sont branchés pour être normalement fermés et c’est l’inverse avec le capteur capacitif. Il est normalement ouvert. Il faut donc inverser la logique du contact pour que cela fonctionne.

 #define LEFT_PROBE_BED_POSITION 20
 #define RIGHT_PROBE_BED_POSITION 150
 #define BACK_PROBE_BED_POSITION 150
 #define FRONT_PROBE_BED_POSITION 0

Il faut définir les 4 points dans lesquels le capteur va aller au maximum.

#define AUTO_BED_LEVELING_GRID_POINTS 2

Il faut indiquer combien de points l’autoleveling va faire. J’ai mis 2, l’imprimante ferra donc 4 palpages, si vous indiquez 3 elle en ferra 9. (bien pour les grand plateau 30*30

 #define X_PROBE_OFFSET_FROM_EXTRUDER 0
 #define Y_PROBE_OFFSET_FROM_EXTRUDER -75
 #define Z_PROBE_OFFSET_FROM_EXTRUDER -2.9

Il faut ensuite indiquer le décalage du capteur par rapport à la tête principale. Dans le montage actuel, le capteur est aligné en X donc le décalage est de 0. Par contre il est en arrière par rapport à la tête donc la valeur de 75mm mesurée avec un pied à coulisse est négative.

Idem pour le Z, le capteur est au dessus des buses, donc la valeur est négative. Ne pas trop s’embêter pour le moment avec l’offset en Z, car il faudra le régler finement avec l’écran LCD, ce qui est plus pratique.

 #define Z_RAISE_BEFORE_PROBING 5
 #define Z_RAISE_BETWEEN_PROBINGS 5

Important pour éviter que les têtes viennent arracher les pinces ou autre sur leur passage lors de l’initialisation.

#define Z_SAFE_HOMING

J’ai aussi laissé le SAFE_HOMING. En laissant cette fonctionnalité activée, il n’est pas possible de faire un home Z en démarrage imprimante si un home X et home Y n’a pas été fait avant.

Cela permet d’éviter que si le capteur est hors plateau, qu’un home Z viennent faire taper les têtes dessus et puisse abîmer le matériel.

Voila, une fois cela fait, il ne reste plus qu’à compiler et reflasher le firmware de votre imprimante.

Réglages et ajustements

Maintenant il faut mesurer l’offset de manière plus précise pour régler les têtes à la bonne hauteur au début d’une impression.

Pour cela, le plus simple est de se brancher sur Repetier Host et de faire un home général de l’imprimante (G28 pour les intimes).

L’axe X va se mettre en position 0, idem pour l’axe Y et ensuite le chariot va aller au milieu du plateau pour ensuite palper le Z (grâce au Z_SAFE_HOMING).

Une fois que le 0 a été trouvé, les buses seront plus hautes de quelques mm. Il est déjà possible d’ajuster la hauteur de détection avec la petite vis sur le haut du capteur. En la tournant dans un sens, vous diminuerez la sensibilité et donc le capteur commutera en étant plus proche du plateau et dans l’autre sens vous augmenterez la sensibilité et donc le capteur fera contact à une distance plus élevée.

Partant du postulat que plus on est prêt et plus la mesure sera précise sur ce type de matériel, j’ai réglé personnellement le capteur afin d’avoir environ 2mm entre le plateau et les buses une fois commuté.

Une fois cela fait, il ne reste plus qu’à mesurer l’offset entre les têtes et le plateau.

Sur Repetier Host, la valeur en Z doit être de 0 vu que le home Z vient d’être fait. Repetier Host n’autorise pas de déplacer manuellement un axe en valeurs négatives, mais ce n’est pas grave, on va pouvoir le faire via le champ G-Code du contrôle manuel :

G1 Z-2

Cela va relever le plateau de 2mm vers les buses. S’il faut faire plus, il faut considérer que ces valeurs sont absolues et donc pour remonter de 0.1mm après avoir faire un Z-2, il faudra faire :

G1 Z-2.1

Ce qui aura pour effet de ne bouger le plateau que de 0.1mm.

Une fois que la valeur est trouvée, vous pouvez au choix :

  • la modifier au niveau de l’offset en Z dans le firmware et reflasher ;
  • la modifier via l’écran LCD et l’enregistrer dans l’EEPROM (plus commode).

Au niveau de l’écran, il faut aller dans Control → Motion → Z Offset. Une fois la valeur modifiée (une valeur plus grande rapprochera les têtes du plateau et une valeur plus petite les éloignera), il faut l’enregistrer en allant dans Control → Store Memory.

Modification des paramètres de tranchage

Aller, on a presque fini. Il faut maintenant dire au logiciel de tranchage de faire une auto calibration au démarrage d’une impression.

Dans Cura, c’est assez simple, il suffit d’éditer son profil d’impression ( dans Repetier onglet Trancheur → Configuration, et aller dans l’onglet G-Codes → Start G-Code) je vous met le mien :

G21 ; set units to millimeters
M107
{IF_EXT0}M104 S{TEMP0} T0; set temperature
{IF_EXT1}M104 S{TEMP0} T1; set temperature
{IF_BED}M190 S{BED}
G28
G29; start autoleveling
G92 E0 ;zero the extruded length
G1 F200 E20 ; extrusion rapide de 20 mm de filament
G1 F50 E20 ; extrusion lente de 20 mm de filament
G92 E0 ;zero the extruded length again
;Put printing message on LCD screen
;M117 Printing...
; -- end of START GCODE --

On fait tout d’abord mise en chauffe du plateau et de la buse.

Ensuite un petit G28 permettra de faire savoir où le chariot est et de faire un premier Z homing en centre plateau.

Ensuite l’autoleveling à proprement parler par un G29.

Puis on extrude pour bien purger.

Le reste du G-Code est du standard pour lancer une impression.

Ainsi, au premier mouvement d’impression, le Z offset sera appliqué et les têtes seront mises à bonne hauteur pour imprimer.

Il sera probablement nécessaire la valeur de Z offset, d’où le côté pratique de le faire via l’écran LCD.

Une fois l’impression démarrée, vous devriez voir vos moteurs Z tourner un peu en fonction du positionnement en X et Y pour compenser les éventuels écarts.

C’est terminé, en suivant bien ce guide vous devriez devenir des experts de l’autocalibration sur carte RAMPS !


Merci à adrien pour son tuto : source tobeca