[CNC] Utiliser une sonde pour déterminer la hauteur de départ en Z

Une sonde ("probe" en anglais) permet de déterminer une hauteur bien précise sur l'axe Z. Cette hauteur servira de point de référence pour pouvoir ajuster par exemple la profondeur de coupe, ou mieux, faire de l'autolevelling pour compenser des différences de hauteur du plateau (très utile si le plateau n'est pas parfaitement plan ou horizontal).
Les sondes agissent comme des interrupteurs : c'est-à-dire que lorsqu'elles rencontrent un obstacle, cela à pour conséquence de fermer un circuit électrique auparavant ouvert. Ce contact a pour effet d'arrêter la descente de la machine. Voici ci-dessous différentes solutions testées pour ma CNC.

I- Branchement

Cela se fait par 2 fils comme pour tout interrupteur. Il faut brancher une entrée de la sonde sur GND et l'autre sur le pin A11/D65 (partie Aux-2 sur la RAMPS). Pour info, dans le firmware "Grbl for Ramps", la sonde ne se branche pas sur le pin A5 comme sur Grbl mais sur A11 (je ne sais pas pourquoi le branchement a été modifié car le pin A5 est juste au-dessous d'un pin GND sur la Ramps toujours dans la partie Aux-2 ce qui est plus simple pour le branchement selon moi ...).

II- Sonde avec contact métallique

sonde socleCe type de sonde est utile sur des surfaces conductrices en métal principalement (pour graver des plaques de cuivre par exemple, travailler de l'aluminium, ..). Si la surface à travailler n'est pas métallique, il faut alors utiliser un socle métallique comme sur la photo ci-contre (mais dites alors adieu à l'autolevelling dans ce cas-là ). Ici, c'est la fraise qui fait directement office de sonde.
On relie d'abord une entrée de la Ramps à une partie métallique de la fraiseuse qui est en contact avec la fraise (attention de ne pas se mettre sur de la peinture qui empêcherait la conduction du signal électrique). Sur la photo ci-contre, on voit le fil rouge qui est au contact du collet de la fraiseuse. Ne pas hésiter à vérifier avec un voltmètre.
Si le matériau est conducteur, on le relie à l'autre entrée de la Ramps. Si le matériau n'est pas conducteur, on relie le socle métallique (dans la photo ci-contre le fil noir)  à cette autre entrée et on le place sous la fraise afin qu'elle puisse rentrer en contact.
On rapproche manuellement la fraise de la sonde ou du matériau à toucher (soit moins de 5 mm pour le code qui va suivre). Puis on tape par exemple la commande :

G38.2 Z-5 F1

La fraise commence à descendre selon l'axe Z sur 5mm (Z-5) tout doucement (F1 est le feed rate le plus petit) et elle s'arrête dès que la pointe de la fraise touche le métal.

Si l'on utilise un socle, Il faut alors indiquer la hauteur de ce socle à la machine à l'aide de la commande :

G92 Z19.8

Ainsi la machine "sait" que maintenant la hauteur actuelle est de 19,8mm (offset Z de 19,8mm qui est la hauteur de ma sonde) au-dessus de la surface du matériaux à creuser.

III- Sonde sur bouton poussoir

sonde bouton poussoira) Première version : avec un bouton poussoir classique

Cette sonde peut s'utiliser sur tous types de surfaces comme le bois, le carton, le métal, ... contrairement à la sonde précédente. Sa fabrication est assez facile et peu coûteuse car on se sert d'un simple bouton poussoir. Pour améliorer la précision, j'ai percé le bouton avec une mèche de 2mm et j'ai fixé dans le trou avec de la colle époxy un morceau de clou du même diamètre en meulant la pointe pour l'arrondir (pour éviter qu'elle ne s'enfonce dans un matériau assez tendre).
Ci contre, un bouton poussoir rouge classique à gauche et un bouton poussoir noir transformé en sonde.support bouton poussoir

J'ai ensuite fabriqué un support à l'imprimante 3D que l'on fixe sur la tête supportant la fraiseuse à l'aide de 2 vis de 3mm. J'ai conçu le support de façon à ce qu'il puisse coulisser pour faciliter les ajustements. Du coup, il a fallu que je taraude 2 trous sur le côté de la tête en aluminium (ce qui se fait assez facilement).

PROBLÈME : j'ai constaté que mon bouton n'était pas très fiable car le contact n'est pas franc (je pense avoir dû abîmer le mécanisme interne au moment de la soudure des fils). Or cela n'est pas acceptable car la descente de l'axe Z doit justement être arrêter sous peine d'endommager la machine.

b) Deuxième version : avec un micro interrupteur (micro switch)

support microswitchJ'ai choisi d'opter cette fois-ci pour un micro switch semblable à ceux qu'on peut trouver pour les fins de course des imprimantes 3D. J'ai préalablement biseauté sa lamelle métallique pour avoir un point de touche plus précis.
Il a fallu que j'imprime un nouveau support adapté à cette pièce. Contrairement à la photo ci-contre, j'ai dû refaire un autre support beaucoup plus long en le rallongeant de 7 cm en hauteur afin qu'il soit utilisable avec la fraiseuse (je suis allé au maximum de la hauteur de mon imprimante 3D qui est de 12 cm : pour cela, il a fallu que je change la hauteur max dans mon firmware Marlin adapté à ma carte RAMPS Taurino 24 Volts). Pour info, il faut utiliser des petites vis de 2mm pour fixer le microswitch sur le support (2x12mm minimum).

PROBLÈME : la pointe de la sonde peut se planter en "trainant'  si la surface n'est pas plane. Du coup, j'ai cassé mon support lorsque la pointe s'est coincée dans un trou du plateau (et heureusement car ça a évité de tout arracher). Le mieux est d'avoir une pointe verticale (comme avec le bouton poussoir) et non pas inclinée pour éviter ce genre de souci... Retour au point de départ...

c) Troisième version : BLtouch de Antclabs

J'ai découvert qu'il existait une solution toute prête pour les imprimantes 3D avec la sonde BLTouch proposée par Antclabs : https://www.antclabs.com/bltouch. Son principal souci, autre son faible débattement (normal car adaptée à l'impression 3D) concerne le prix : plus de 40€.
Il existe toutefois des copies à 10€ mais à ce prix-là, le parfait fonctionnement ne peut être garanti... . Pour mon utilisation, ça peut cependant suffire... À tester éventuellement...

d) Quatrième version : fabriquer sa propre sonde

C'est peut-être la partie la plus intéressante. L'idée c'est de me servir d'une tige montée sur un ressort qui déclenchera un microswitch lorsqu'elle touchera le plateau (ou tout autre objet). Pour réduire les frottements, j'utiliserai un roulement à billes linéaire (ça tombe bien, il m'en reste plein du montage de mon imprimante 3D) dans lequel coulissera ma tige. Il faudra que l’extrémité de cette tige soit affinée : en y insérant/visant une pointe par exemple... À réfléchir...