Aller au contenu principal

Débogage du mode EDDY TAP

Cette page est dédiée au processus de débogage, à l'ordre de vérification et au dépannage des problèmes courants du mode TAP pour EDDY. Le mode TAP détermine le seuil de déclenchement en effleurant légèrement la buse sur le lit. Lors du débogage, il faut prêter attention à l'état de la buse, du lit chauffant et du mouvement de l'axe Z.

Opération hors tension

Avant de commencer, éteignez complètement l'imprimante et débranchez l'alimentation électrique. Ne branchez/débranchez pas les faisceaux de câbles, n'organisez pas l'ordre des fils d'interface et ne touchez pas aux bornes lorsque l'appareil est sous tension.

Instructions d'utilisation
  • Cette page est une explication de la méthode de débogage, pas un fichier printer.cfg complet à copier directement.
  • Les éléments canbus_uuid, serial, les broches de la sonde, la direction de l'origine, 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'état du module EDDY, de la carte d'outillage, de la carte mère et de la structure mécanique de l'axe Z est normal.

Champ d'application

  • Utilisation du capteur à courants de Foucault EDDY / LDC1612, nécessitant l'utilisation de METHOD=tap ou du mode de déclenchement par seuil TAP.
  • Applicable aux cartes d'outillage avec support EDDY telles que FLY SHT36 V3, SB2040 V3, etc.
  • Le câblage de base de l'EDDY et l'étalonnage de hauteur standard ont été effectués, nécessitant une activation ou un dépannage supplémentaire du mode TAP.

Exigences de version

Mise à jour de version
  • 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 est mis à jour vers la dernière version.
  • Le firmware de la carte d'outillage 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, dans [probe_eddy_current fly_eddy_probe], il est obligatoire de configurer frequency: 40000000, sinon l'utilisation normale de l'EDDY pourrait ne pas être possible.

[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
# Les éléments suivants i2c_mcu, i2c_bus, décalages doivent être modifiés en fonction de la carte d'outillage 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 avoir terminé la configuration, veuillez 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

Opération hors tension

Avant de vérifier le faisceau de câbles EDDY, les connecteurs de la carte d'outillage, 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/débranchez pas les faisceaux de câbles et n'ajustez pas les bornes lorsque l'appareil est sous tension.

  1. La buse et la surface du lit sont propres, sans résidus de filament, bosses de colle ou corps étrangers.
  2. L'EDDY est bien fixé, sans jeu dans la position de montage de la bobine.
  3. L'axe Z peut se déplacer normalement vers le haut et le bas, sans blocage, coincement ou collision avec le châssis.
  4. Pour les machines à plusieurs axes Z, effectuez d'abord un nivellement mécanique de base.
  5. 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ébut doivent être modifiés en fonction de la situation réelle de la machine. Il est recommandé de les placer dans un fichier de configuration séparé, puis de les 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 du décalage Z en mode TAP

SET_Z_FROM_PROBE METHOD=tap est utilisé pour mettre à jour la coordonnée Z actuelle après le déclenchement TAP. Il est recommandé de l'exécuter plusieurs fois de suite et d'observer si les résultats sont proches ; en cas de grande différence, n'enregistrez pas pour l'instant, 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: Règle 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 cette macro est utilisée pour enregistrer et réutiliser position_endstop, assurez-vous que la configuration contient une valeur stepper_z position_endstop pouvant être enregistrée. Lors du premier débogage, vous pouvez la définir à 0, puis confirmer la valeur réelle via le décalage Z manuel et l'effet 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 du décalage Z en mode TAP après que la machine a terminé le chauffage, la prise d'origine et le nivellement nécessaire. Avant que la buse n'atteigne la température d'impression, une température plus basse peut être maintenue 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 ici votre procédure de préparation avant impression originale
# ...

# Si vous avez une macro de nettoyage de la buse, il est recommandé de nettoyer la buse avant le TAP
# CLEAN_NOZZLE
SET_Z_FROM_PROBE METHOD=tap

# Continuez la procédure de préparation avant impression originale après le TAP

M109 S{EXTRUDER}
G92 E0

Lorsque la buse a tendance à couler, vous pouvez effectuer un nettoyage de la buse avant et après SET_Z_FROM_PROBE METHOD=tap, et répéter une fois SET_Z_FROM_PROBE METHOD=tap pour améliorer la stabilité.

Étalonnage automatique du seuil TAP

Klipper prend en charge la mesure automatique du seuil TAP depuis le 02/05/2026. Avant utilisation, commentez d'abord le tap_threshold saisi manuellement, puis recherchez le seuil avec la commande suivante.

Commande d'étalonnage du seuil TAP : PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=xxx, les valeurs courantes sont guess, refine, verify.

Préparez l'arrêt d'urgence

Les étapes suivantes feront descendre la buse vers la surface du lit et entrer en 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é la surface du lit, arrêtez immédiatement d'urgence.

① guess : Seuil approximatif initial

Assurez-vous que la buse et la surface du lit sont propres. Après la prise d'origine, déplacez la tête d'outillage près du centre de la surface 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 approchée initiale du tap_threshold, puis effectue une détection par effleurement. Idéalement, la sonde descend jusqu'à ce que la buse touche la surface du lit, puis se soulève, et rapporte un résultat de détection valide.

② refine : Affinage du seuil

Après la réussite de TAP=guess, maintenez la buse près du centre de la surface du lit à 3~10mm, puis exécutez :

PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=refine

Cette commande utilise les données de la détection réussie précédente pour déterminer un seuil plus précis.

③ verify : Vérification de la stabilité

Après la réussite de TAP=refine, exécutez :

PROBE_EDDY_CURRENT_TAP_CALIBRATE TAP=verify

Cette commande détecte la surface du lit cinq fois de suite. Le test est réussi si les cinq détections se déroulent 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

Après la sauvegarde, redémarrez Klipper. À ce stade, seul le seuil TAP est sauvegardé. Il faut encore finaliser la confirmation du 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 que la buse ne s'arrête pas après avoir touché la surface du 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 du réglage manuel, vous pouvez commencer les tests près de 40000 :

  • Déclenchement avant de toucher la surface du lit → Seuil trop bas, augmentez-le.
  • La buse ne s'arrête pas après avoir touché la surface du lit → Seuil trop élevé, arrêt d'urgence immédiat 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~10mm du 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 régler le décalage Z :

SET_Z_FROM_PROBE METHOD=tap

Il est recommandé d'exécuter plusieurs fois de suite et d'observer si les résultats sont proches. En cas de grande différence, n'enregistrez pas pour l'instant, vérifiez la propreté de la buse, la rigidité du lit chauffant, le jeu de l'axe Z et le seuil TAP.

Ajustement fin de l'entrefer

Dans les nouvelles versions de Klipper, tap_z_offset peut être utilisé pour un ajustement fin de l'entrefer TAP. Cependant, pour la première couche réelle, il est toujours recommandé de confirmer avec l'effet d'impression, et de ne pas se fier uniquement à une seule valeur de détection.

Confirmation manuelle du décalage Z

Une fois le seuil TAP et SET_Z_FROM_PROBE METHOD=tap validés, il faut encore confirman manuellement l'entrefer réel entre la buse et la surface du lit :

  1. Nettoyez la buse et la surface du lit, déplacez la buse près du centre du lit chauffant.
  2. Exécutez SET_Z_FROM_PROBE METHOD=tap, confirmez qu'il n'y a pas d'anomalie.
  3. Utilisez une feuille de papier ou un test de première couche pour vérifier l'entrefer réel de la buse, et ajustez finement le décalage Z depuis l'interface web.
  4. Une fois la première couche satisfaisante, sauvegardez la configuration.
  5. Après toute modification ultérieure de la buse, de la tête chaude, de la position d'installation de l'EDDY ou de la structure du lit, le décalage doit être reconfirmé.

Problèmes courants

Impossible d'utiliser normalement après la configuration

  1. Vérifiez que la version du système FAST est >= V1.3.9 (ou que Klipper est mis à jour vers la dernière version).
  2. Vérifiez que le firmware du microcontrôleur est mis à jour vers la dernière version.
  3. Vérifiez que frequency: 40000000 est configuré dans [probe_eddy_current fly_eddy_probe].
  4. Vérifiez que i2c_speed n'est pas trop élevé. Pour SHT36 V3 / SB2040 V3, vous pouvez d'abord tester avec 400000.
  5. Réexécutez l'étalonnage du courant d'attaque et l'étalonnage de la hauteur.
  6. Consultez la première erreur liée à EDDY ou TAP dans klippy.log et résolvez le problème en fonction du message d'erreur.

Résultats de détection TAP instables

  1. Nettoyez la buse et la surface du lit.
  2. Vérifiez si la fixation de l'EDDY est desserrée.
  3. Vérifiez si l'axe Z a des à-coups ou du jeu.
  4. Réexécutez TAP=refine et TAP=verify.

EDDY TAP / Z_TILT déclenche Timer too close

Erreur typique :

!! MCU 'xxx' shutdown: Timer too close

Si cette erreur ne se produit que pendant l'EDDY TAP, la prise d'origine Z, Z_TILT_ADJUST, QUAD_GANTRY_LEVEL ou le balayage du lit, il faut généralement vérifier simultanément l'échantillonnage EDDY, la communication CAN et la marge de planification de l'hôte.

  1. Consultez les lignes Stats avant et après l'erreur dans klippy.log pour voir s'il y a simultanément des anomalies bytes_retransmit, bytes_invalid, canstat_*, des erreurs I2C ou une augmentation de la charge de l'hôte.
  2. Assurez-vous que les versions du firmware de Klipper, du MCU de la carte d'outillage et du MCU EDDY sont cohérentes. Après une mise à jour, il faut reflasher tous les MCU concernés.
  3. Désactivez temporairement le flux de la caméra, KlipperScreen, les plugins de contrôle à distance et autres services à forte utilisation, puis testez à nouveau.
  4. Si l'erreur se produit pendant Z_TILT_ADJUST et que la structure de la machine le permet, vous pouvez passer temporairement à Z_TILT_ADJUST METHOD=scan pour réduire la pression de synchronisation temporelle dans le chemin de déclenchement TAP.
  5. Réduisez les actions inutiles dans la macro de démarrage, comme les prises d'origine, les TAP et les balayages de lit répétés ; si la machine a déjà pris son origine et que son état est fiable, la macro peut éviter le G28 répété.
  6. Si des erreurs I2C EDDY apparaissent simultanément, vérifiez d'abord le faisceau de câbles, la vitesse I2C et les connecteurs de la carte d'outillage conformément à BUS_TIMEOUT I2C.

Dépannage système : Timer too close

MCU 'xxx' I2C request to addr 42 reports error BUS_TIMEOUT

La communication entre le MCU hébergeant l'EDDY et le LDC1612 a échoué ou est instable.

Opération hors tension

Avant de vérifier le faisceau de câbles EDDY, les connecteurs I2C, les sertissages des bornes ou de remplacer le faisceau de câbles, éteignez complètement l'imprimante et débranchez l'alimentation électrique. Ne branchez/débranchez pas les faisceaux de câbles et n'ajustez pas les bornes lorsque l'appareil est sous tension.

  1. Vérifiez que i2c_mcu, i2c_bus ou les broches I2C logicielles correspondent à la carte d'outillage réelle.
  2. Abaissez d'abord i2c_speed à 400000 pour tester.
  3. Vérifiez si le faisceau de câbles EDDY, les bornes et les connecteurs de la carte d'outillage sont desserrés.
  4. Assurez-vous que le firmware de l'EDDY et de la carte d'outillage est mis à jour vers la version supportant la version actuelle de Klipper.

Unable to detect tap: insufficient slope delta

Erreur typique :

!! Unable to detect tap: insufficient slope delta (-36983.054918 vs 30633.703000)

Le tap_threshold actuel est inapproprié, ou les données de détection n'ont pas formé un point d'inflexion TAP assez distinct.

  1. Nettoyez la buse et la surface du lit.
  2. N'exécutez pas l'étalonnage automatique de manière répétée. Utilisez plutôt PROBE_ACCURACY METHOD=tap tap_threshold=40000 pour rechercher manuellement le seuil.
  3. Une fois le seuil manuel stable, revenez à TAP=refine et TAP=verify pour validation.

Unable to detect tap: invalid depress distance

Erreur typique :

!! Unable to detect tap: invalid depress distance (0.020411 vs 0.030000:0.250000)

La distance d'enfoncement détectée par Klipper n'est pas dans la plage attendue (0.03~0.25mm). Causes courantes : rigidité insuffisante du lit chauffant, instabilité du processus de contact de la buse, jeu de l'axe Z ou seuil TAP inapproprié.

  1. Vérifiez que la buse, la surface du lit et le plateau magnétique sont propres et plats.
  2. Vérifiez si le support du lit chauffant, la structure de l'axe Z et le montage de la sonde présentent un jeu important.
  3. Réduisez la vitesse de la prise d'origine Z et de la détection, puis validez à nouveau.
  4. Si l'erreur se reproduit plusieurs fois, n'enregistrez pas les paramètres TAP pour l'instant. Concentrez-vous d'abord sur la rigidité mécanique et le seuil.
  5. Il n'est pas recommandé aux utilisateurs ordinaires de modifier directement klippy/extras/probe_eddy_current.py pour assouplir la plage d'erreur. Évaluez la nécessité d'un ajustement uniquement après avoir confirmé que le matériel et le seuil sont normaux, et uniquement par une personne familière avec le code source de Klipper.

Eddy: CLKIN frequency too low

Erreur typique :

!! Eddy: CLKIN frequency too low: 0.001 < 0.002`

La communication I2C est instable et l'intervalle de temps d'acquisition des points de données est anormal.

  1. Vérifiez que i2c_mcu, i2c_bus ou les broches I2C logicielles sont correctement renseignés.
  2. Testez d'abord avec i2c_speed à 400000, ne mettez pas une valeur trop élevée au début.
  3. Vérifiez si le faisceau de câbles EDDY, les bornes et les connecteurs de la carte d'outillage sont desserrés.
  4. Si vous utilisez l'I2C logiciel, confirmez que la GPIO correspondante n'est pas utilisée par une autre fonction et qu'aucun circuit périphérique n'affecte le signal.
Loading...