Débogage du mode EDDY TAP
Cette page décrit le processus de débogage, l'ordre des vérifications et le dépannage des problèmes courants pour l'EDDY en mode TAP. Le mode TAP utilise un contact léger de la buse sur le lit pour déterminer le seuil de déclenchement. Lors du débogage, il faut surveiller l'état de la buse, du lit chauffant et du mouvement de l'axe Z.
Avant de commencer, éteignez complètement l'imprimante et débranchez l'alimentation électrique. Ne branchez pas ou ne débranchez pas les faisceaux de câbles, ne réorganisez pas le câblage des interfaces et ne touchez pas les bornes lorsque l'appareil est sous tension.
- Cette page est une explication de la méthode de débogage, pas un fichier
printer.cfgcomplet à copier-coller directement. canbus_uuid,serial, les broches de la sonde, la direction de référence, la course de l'axe Z et les décalages doivent être modifiés en fonction du matériel réel.- Avant la première activation, assurez-vous que l'EDDY, la carte d'outil, la carte mère et la structure mécanique de l'axe Z sont en bon état de fonctionnement.
Portée
- Utilise le capteur à courant de Foucault EDDY / LDC1612, nécessite l'utilisation de
METHOD=tapou d'un mode de déclenchement par seuil TAP. - Convient aux cartes d'outil avec support EDDY telles que FLY SHT36 V3, SB2040 V3, etc.
- Le câblage EDDY de base et l'étalonnage de hauteur standard ont été effectués, une activation ou un dépannage supplémentaire du mode TAP est nécessaire.
Configuration requise
- Utilisation du système FLY FAST : assurez-vous que la version du système est >=
V1.3.9. - Utilisation d'autres systèmes : assurez-vous que Klipper a été mis à jour vers la dernière version.
- Le micrologiciel de la carte d'outil ou du microcontrôleur associé doit également être mis à jour vers la dernière version, sinon l'hôte peut prendre en charge les commandes TAP mais le micrologiciel du MCU peut ne pas répondre.
Configuration nécessaire
En prenant l'exemple du SHT36 V3 ou du SB2040 V3, la configuration frequency: 40000000 doit être présente dans [probe_eddy_current fly_eddy_probe], sinon l'utilisation normale de l'EDDY pourrait être impossible.
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
# Les i2c_mcu, i2c_bus, et décalages ci-dessous doivent être modifiés en fonction de la carte d'outil et de la position d'installation réelles
i2c_mcu: SHT36
i2c_bus: i2c1e
i2c_speed: 400000
frequency: 40000000
x_offset: 0
y_offset: 21.42
descend_z: 2.5
tap_z_offset: 0
# Commentez avant l'étalonnage automatique du seuil TAP ; il sera écrit par SAVE_CONFIG après un étalonnage réussi
# tap_threshold: 40000
Après la configuration, vous devez réexécuter l'étalonnage du courant d'attaque et l'étalonnage de la hauteur conformément à la documentation du produit correspondant.
Documentation associée : Utilisation de l'EDDY SHT36 V3
Vérifications avant configuration
Avant de vérifier le faisceau EDDY, les connecteurs de la carte d'outil, les vis de fixation de la sonde, la buse et la structure autour du lit chauffant, éteignez complètement l'imprimante et débranchez l'alimentation électrique. Ne branchez pas ou ne débranchez pas les faisceaux de câbles et ne réglez pas les bornes lorsque l'appareil est sous tension.
- La buse et la surface du lit sont propres, sans résidu de filament, bosses de colle ou corps étrangers.
- L'EDDY est solidement fixé, la position d'installation de la bobine est sans jeu.
- L'axe Z peut se déplacer de haut en bas normalement, sans blocage, coincement ou collision avec le châssis.
- Pour les machines multi-Z, terminez d'abord le nivellement mécanique de base.
- La configuration de base de l'EDDY est terminée et les données du capteur peuvent être lues normalement.
Extrait de configuration de référence
La configuration suivante ne conserve que les parties courantes de l'EDDY TAP. Les noms mcu, le bus I2C, les décalages, la méthode de nivellement et les paramètres de la macro de démarrage doivent être modifiés en fonction de la situation réelle de la machine. Il est recommandé de la placer dans un fichier de configuration séparé, puis de l'inclure via printer.cfg.
[respond]
[force_move]
enable_force_move: true
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 42
i2c_mcu: SHT36
i2c_bus: i2c1e
i2c_speed: 400000
frequency: 40000000
x_offset: 0
y_offset: 21.42
descend_z: 2.5
speed: 5
samples: 3
sample_retract_dist: 5.0
samples_tolerance: 0.05
samples_tolerance_retries: 3
tap_z_offset: 0
# Commentez avant la recherche automatique du seuil TAP ; il sera écrit par SAVE_CONFIG après un étalonnage réussi
# tap_threshold: 40000
Macro de réglage Z à partir de la sonde TAP
SET_Z_FROM_PROBE METHOD=tap est utilisé pour mettre à jour la coordonnée Z actuelle après un déclenchement TAP. Il est recommandé de l'exécuter plusieurs fois de suite et d'observer si les résultats sont proches ; si l'écart est important, n'enregistrez pas tout de suite, retournez vérifier la buse, la surface du lit, le jeu de l'axe Z et le seuil TAP.
[gcode_macro _RELOAD_Z_OFFSET_FROM_PROBE]
description: Rafraîchit la coordonnée Z actuelle en fonction du dernier résultat PROBE
gcode:
{% set Z = printer.toolhead.position.z %}
{% set position_endstop = 0 %}
{% set raw_config = printer.configfile.config %}
{% if 'stepper_z' in raw_config and 'position_endstop' in raw_config.stepper_z %}
{% set position_endstop = raw_config.stepper_z.position_endstop|trim|float %}
{% endif %}
{% set setZ = Z - printer.probe.last_probe_position.z + position_endstop %}
SET_KINEMATIC_POSITION Z={setZ}
RESPOND MSG="position_Z={'%0.3f' | format(Z)} probe_Z={'%0.3f' | format(printer.probe.last_probe_position.z)} position_endstop={'%0.3f' | format(position_endstop)} set_Z={'%0.3f' | format(setZ)}"
[gcode_macro SET_Z_FROM_PROBE]
description: Définit le décalage Z en mode TAP, utilisation : SET_Z_FROM_PROBE METHOD=tap
gcode:
{% set METHOD = params.METHOD | default("automatic") %}
G0 Z5 F300
PROBE METHOD={METHOD} SAMPLES=3
_RELOAD_Z_OFFSET_FROM_PROBE
G0 Z5 F300
Si vous utilisez cette macro pour enregistrer et réutiliser position_endstop, assurez-vous que la configuration contient une valeur stepper_z position_endstop enregistrable. Pour le débogage initial, vous pouvez d'abord la définir sur 0, puis confirmer la valeur réelle via le décalage Z manuel et le résultat de la première couche.
Appel de la macro de début d'impression
Dans la macro de début, il suffit d'appeler le réglage Z TAP après que la machine a terminé le chauffage, le homing et le nivellement nécessaire. La température de la buse peut être maintenue basse avant qu'elle n'atteigne la température d'impression pour éviter que le filament ne coule et n'affecte le TAP.
[gcode_macro PRINT_START]
gcode:
{% set BED = params.BED|default(60)|int %}
{% set EXTRUDER = params.EXTRUDER|default(200)|int %}
{% set X_CENTER = printer.toolhead.axis_maximum.x|float / 2 %}
{% set Y_CENTER = printer.toolhead.axis_maximum.y|float / 2 %}
SET_GCODE_OFFSET Z=0
G21
G90
G28
G1 X{X_CENTER} Y{Y_CENTER} Z15 F9000
M190 S{BED}
M109 S150
# Conservez votre processus de préparation avant impression normal ici
# ...
# S'il y a une macro de nettoyage de buse, il est recommandé de nettoyer la buse avant TAP
# CLEAN_NOZZLE
SET_Z_FROM_PROBE METHOD=tap
# Après TAP, continuez le processus de préparation d'impression normal
M109 S{EXTRUDER}
G92 E0
Si la buse a tendance à goutter, vous pouvez exécuter un nettoyage de buse avant et après SET_Z_FROM_PROBE METHOD=tap, et répéter SET_Z_FROM_PROBE METHOD=tap une fois pour améliorer la stabilité.
Étalonnage automatique du seuil TAP
Klipper prend en charge la mesure automatique du seuil TAP depuis le 2026-05-02. Avant utilisation, commentez d'abord le tap_threshold saisi manuellement, puis recherchez le seuil via la commande suivante.
Commande d'étalonnage du seuil TAP : PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=xxx. Les valeurs courantes sont guess, refine, verify.
Les étapes suivantes feront descendre la buse vers le lit et provoqueront un contact léger. Avant de commencer, assurez-vous de pouvoir exécuter un arrêt d'urgence (M112) à tout moment. Si la buse continue de descendre après avoir touché le lit, arrêtez d'urgence immédiatement.
① guess : seuil initial approximatif
Assurez-vous que la buse et la surface du lit sont propres. Après le homing, déplacez la tête d'outil près du centre du lit, la buse étant à 3~10mm du lit.
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=guess
Cette commande analyse les données d'étalonnage de la sonde principale pour obtenir une valeur initiale approximative de tap_threshold, puis effectue un test de contact léger. Idéalement, la sonde descend jusqu'à ce que la buse touche le lit, puis se soulève et signale un résultat de détection valide.
② refine : affinage du seuil
Après le succès de TAP=guess, maintenez la buse à 3~10mm près du centre du lit et exécutez :
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=refine
Cette commande utilise les données du dernier sondage réussi pour déterminer un seuil plus précis.
③ verify : vérification de la stabilité
Après le succès de TAP=refine, exécutez :
PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=verify
Cette commande sonde le lit cinq fois de suite. Le test est réussi si les cinq sondages sont effectués normalement et que les résultats sont stables.
④ Sauvegarde de la configuration
Après la réussite de toutes les étapes ci-dessus, exécutez :
SAVE_CONFIG
Sauvegardez et redémarrez Klipper. Seul le seuil TAP est sauvegardé à ce stade. Vous devez encore confirmer le décalage Z.
Recherche manuelle du seuil
Si l'étalonnage automatique signale un seuil inapproprié, ou s'il y a un déclenchement prématuré ou un non-arrêt après le contact avec le lit, ne continuez pas à exécuter les commandes automatiques de manière répétée. Utilisez plutôt PROBE_ACCURACY pour une recherche manuelle :
PROBE_ACCURACY METHOD=tap tap_threshold=40000
Lors des réglages manuels, commencez par tester près de 40000 :
- Déclenchement sans contact avec le lit → seuil trop bas, augmentez-le.
- Non-arrêt après contact avec le lit → seuil trop élevé, arrêtez d'urgence immédiatement et réduisez-le.
- Avant chaque test, assurez-vous que la buse et la surface du lit sont propres et que la buse est à
3~10mmdu lit.
Une fois le seuil manuel stable, vous pouvez revenir à TAP=refine et TAP=verify de l'étalonnage automatique pour validation.
Réglage du décalage Z
Une fois le seuil TAP validé, utilisez la méthode TAP de Klipper pour définir le décalage Z :
SET_Z_FROM_PROBE METHOD=tap
Il est recommandé de l'exécuter plusieurs fois de suite et d'observer si les résultats sont proches. Si l'écart est important, n'enregistrez pas tout de suite ; vérifiez la propreté de la buse, la rigidité du lit chauffant, le jeu de l'axe Z et le seuil TAP.
Dans les nouvelles versions de Klipper, tap_z_offset peut être utilisé pour le réglage fin de l'écart TAP. La première couche réelle doit toujours être confirmée en fonction de l'effet d'impression, et non uniquement sur une seule valeur de sondage.
Confirmation manuelle du décalage Z
Après avoir validé le seuil TAP et SET_Z_FROM_PROBE METHOD=tap, vous devez encore confirmer manuellement l'écart réel entre la buse et le lit :
- Nettoyez la buse et la surface du lit, déplacez la buse près du centre du lit chauffant.
- Exécutez
SET_Z_FROM_PROBE METHOD=tapet confirmez qu'il n'y a pas d'anomalie. - Utilisez une feuille de papier ou un test de première couche pour vérifier l'écart réel de la buse, et ajustez finement le décalage Z dans l'interface web.
- Une fois la première couche satisfaisante, sauvegardez la configuration.
- Après avoir modifié la buse, la hotend, la position d'installation de l'EDDY ou la structure du lit, vous devez reconfirmer le décalage.
Problèmes courants
Impossible d'utiliser normalement après configuration
- Vérifiez que la version du système FAST est >=
V1.3.9(ou que Klipper a été mis à jour vers la dernière version). - Assurez-vous que le micrologiciel du microcontrôleur a été mis à jour vers la dernière version.
- Vérifiez que
frequency: 40000000est configuré dans[probe_eddy_current fly_eddy_probe]. - Vérifiez que
i2c_speedn'est pas trop élevé ; pour SHT36 V3 / SB2040 V3, testez d'abord avec400000. - Réexécutez l'étalonnage du courant d'attaque et l'étalonnage de la hauteur.
- Consultez
klippy.logpour la première erreur liée à EDDY ou TAP et résolvez le problème en fonction du message d'erreur.
Résultats de sondage TAP instables
- Nettoyez la buse et la surface du lit.
- Vérifiez que la fixation de l'EDDY n'est pas desserrée.
- Vérifiez que l'axe Z n'a pas de à-coups ou de jeu.
- Réexécutez
TAP=refineetTAP=verify.
L'erreur de requête I2C du MCU 'xxx' à l'adresse 42 signale BUS_TIMEOUT
La communication entre le MCU où se trouve l'EDDY et le LDC1612 a échoué ou est instable.
Avant de vérifier le faisceau EDDY, l'interface I2C, le sertissage des bornes ou de remplacer le faisceau, éteignez complètement l'imprimante et débranchez l'alimentation électrique. Ne branchez pas ou ne débranchez pas les faisceaux de câbles et ne réglez pas les bornes lorsque l'appareil est sous tension.
- Vérifiez que
i2c_mcu,i2c_busou les broches I2C logicielles correspondent à la carte d'outil réelle. - Réduisez d'abord
i2c_speedà400000pour tester. - Vérifiez que le faisceau EDDY, les bornes et les connecteurs de la carte d'outil ne sont pas desserrés.
- Assurez-vous que le micrologiciel de l'EDDY et de la carte d'outil ont été mis à jour vers une version prenant en charge le Klipper actuel.
Impossible de détecter le tap : pente delta insuffisante
Erreur typique :
!! Impossible de détecter le tap : pente delta insuffisante (-36983.054918 vs 30633.703000)
Le tap_threshold actuel est inapproprié, ou les données de sondage ne forment pas un point d'inflexion TAP suffisamment distinct.
- Nettoyez la buse et la surface du lit.
- N'exécutez pas l'étalonnage automatique de manière répétée. Utilisez plutôt
PROBE_ACCURACY METHOD=tap tap_threshold=40000pour rechercher manuellement le seuil. - Une fois le seuil manuel stable, revenez à
TAP=refineetTAP=verifypour validation.
Impossible de détecter le tap : distance d'enfoncement invalide
Erreur typique :
!! Impossible de détecter le tap : distance d'enfoncement invalide (0.020411 vs 0.030000:0.250000)
La distance d'enfoncement déterminée par Klipper n'est pas dans la plage attendue (0.03~0.25mm). Causes courantes : rigidité insuffisante du lit chauffant, processus de contact de la buse instable, jeu de l'axe Z ou seuil TAP inapproprié.
- Vérifiez que la buse, la surface du lit chauffant et le lit magnétique sont propres et plats.
- Vérifiez que le support du lit chauffant, la structure de l'axe Z et le montage de la sonde ne présentent pas de jeu apparent.
- Réduisez la vitesse de homing Z et de sondage, puis revalidez.
- Si la même erreur se produit plusieurs fois, n'enregistrez pas les paramètres TAP pour le moment. Concentrez-vous d'abord sur la résolution des problèmes de rigidité mécanique et de seuil.
- Il est déconseillé aux utilisateurs ordinaires de modifier directement
klippy/extras/probe_eddy_current.pypour assouplir la plage d'erreur ; cela ne doit être évalué par un personnel familier avec le code source de Klipper qu'après avoir confirmé que le matériel et le seuil sont normaux.
Eddy : fréquence CLKIN trop basse
Erreur typique :
!! Eddy : fréquence CLKIN trop basse : 0.001 < 0.002
La communication I2C est instable, l'intervalle de temps d'acquisition des points de données est anormal.
- Vérifiez que
i2c_mcu,i2c_busou les broches I2C logicielles sont correctement renseignés. - Testez d'abord avec
i2c_speedà400000, n'utilisez pas une valeur trop élevée au départ. - Vérifiez que le faisceau EDDY, les bornes et les connecteurs de la carte d'outil ne sont pas desserrés.
- Si vous utilisez I2C logiciel, assurez-vous que les GPIO correspondants ne sont pas utilisés par d'autres fonctions et qu'aucun circuit périphérique n'affecte le signal.