Aller au contenu principal

Tests des périphériques et des drivers

Ce document permet de vérifier le bon fonctionnement des modules périphériques tels que les drivers de moteur pas à pas, la carte-outil CAN, etc. L'approche de test est similaire à celle des tests d'E/S de base : utiliser une configuration Klipper minimale pour isoler un composant matériel individuel.

Pour tester la connexion MCU, les capteurs de température, les sorties de ventilateur ou les entrées, veuillez d'abord consulter la Méthode de test matériel.

Test des drivers

Objectif du test

Utiliser la configuration Klipper la plus simple possible pour vérifier qu'un driver TMC individuel (mode UART ou SPI) peut communiquer correctement avec la carte mère et confirmer que le moteur peut être contrôlé.

Conditions préalables

Opération hors tension

Éteignez complètement l'imprimante et débranchez l'alimentation avant de procéder. Il est interdit de brancher/débrancher les modules de driver ou les câbles de moteur pas à pas sous tension.

  1. L'imprimante est complètement hors tension.
  2. Le driver TMC à tester est correctement inséré dans le socket correspondant sur la carte mère, en vérifiant le sens.
  3. Pour un driver en mode UART (ex : TMC2209), assurez-vous que le cavalier UART correspondant est installé.
  4. Connectez un seul moteur pas à pas au port du driver à tester, laissez les autres ports vides.
  5. Sauvegardez votre fichier de configuration complet original et préparez un fichier printer.cfg temporaire contenant uniquement la configuration minimale de base et le fragment du driver à tester.

Configuration minimale pour un seul driver

Écrivez d'abord la configuration minimale de base, puis ajoutez le fragment de test correspondant au mode du driver actuel à la suite de la configuration de base. [manual_stepper] nécessite toujours une section [printer] minimale (kinematics: none), qui est plus simple qu'une configuration d'axe de mouvement, idéale pour une validation purement matérielle.

Configuration minimale de base

[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00

[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx

Fragment de configuration pour le test du driver

Ci-dessous sont présentés uniquement les fragments de test à ajouter. N'ajoutez pas de deuxième section [printer] ou [mcu].

[manual_stepper Drive0]
# Modifiez les trois éléments suivants en fonction des broches réelles de la carte mère
step_pin: PE2
dir_pin: PC5
enable_pin: !PF11
# Les paramètres suivants n'ont pas besoin d'être modifiés
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000

[tmc2209 manual_stepper Drive0]
# Modifiez uart_pin en fonction des broches réelles de la carte mère
# Modifiez sense_resistor selon les données du fabricant du driver
uart_pin: PC4
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
Remarques sur la configuration
  • serial : remplacez par l'ID de port série réel de la carte mère (visible via ls /dev/serial/by-id/), ne le conservez qu'à un seul endroit dans la configuration minimale de base.
  • step_pin / dir_pin / enable_pin : remplacez par les broches de la carte mère correspondant au port du driver à tester.
  • uart_pin (mode UART) / cs_pin + spi_bus (mode SPI) : remplacez par les broches réelles et le numéro de bus SPI.
  • sense_resistor : doit être renseigné selon les paramètres fournis par le fabricant du driver, ne le devinez pas uniquement à partir du modèle de puce. Différentes cartes driver TMC5160 peuvent avoir 0,075, 0,033, 0,022 ou d'autres valeurs ; les paramètres de détection des drivers TMC2240, etc., peuvent également varier. Si les données du fabricant ne sont pas indiquées, veuillez d'abord consulter le fabricant ou utiliser son exemple de configuration officiel.
  • La configuration ne contient aucun chauffage ou ventilateur, elle est destinée uniquement à la vérification de la communication du driver.

Méthode de test pour plusieurs drivers

Si vous devez tester un par un plusieurs ports de driver sur une carte mère, vous pouvez nommer chaque port de manière indépendante Drive0, Drive1, Drive2 en vous référant à la convention de dénomination de la configuration de test :

[manual_stepper Drive1]
step_pin: PE3
dir_pin: PF13
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000

[tmc2209 manual_stepper Drive1]
uart_pin: PF12
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0

Lors du test, connectez uniquement le moteur du port de driver actuellement testé. Après avoir confirmé le bon fonctionnement d'un port, mettez hors tension, puis passez au port suivant.

Procédure de test

  1. Enregistrez la configuration minimale de base et le fragment de test du driver actuel dans printer.cfg.

  2. Assurez-vous que le moteur et le driver sont correctement branchés avant de mettre sous tension, puis démarrez Klipper.

  3. Dans la console Mainsail / Fluidd, saisissez les commandes suivantes pour activer le moteur et définir la position actuelle sur 0 :

    MANUAL_STEPPER STEPPER=Drive0 ENABLE=1
    MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0
    • Si le moteur maintient un couple de maintien après activation, cela signifie que enable_pin est globalement efficace.
    • Si le moteur peut toujours tourner librement, mettez hors tension et vérifiez enable_pin, le sens du driver, les cavaliers et l'alimentation.
  4. Effectuez un test de déplacement manuel :

    MANUAL_STEPPER STEPPER=Drive0 MOVE=100 SPEED=100
    MANUAL_STEPPER STEPPER=Drive0 MOVE=0 SPEED=100
    • MOVE= est la position cible, pas un déplacement relatif. Après avoir exécuté MOVE=100, exécutez MOVE=0 ; le moteur reviendra au point de départ.
    • Si le moteur est toujours connecté au mécanisme de mouvement de la machine, il est recommandé de commencer par MOVE=10 SPEED=5 pour vérifier la direction et la sécurité de la course avant d'augmenter la vitesse.
    • Si le moteur tourne de manière stable sans à-coups, cela signifie que le driver, le moteur et les broches d'impulsion/direction sont globalement normaux.
    • Si le moteur ne réagit pas, ne fait que vibrer ou a une direction anormale, mettez hors tension et vérifiez la configuration des broches, le câblage du moteur, le sens du driver et les cavaliers.
  5. Vérifiez l'état de la communication TMC :

    DUMP_TMC STEPPER=Drive0

    Si les informations du registre sont retournées normalement, la communication UART/SPI est globalement normale ; si l'erreur indique l'impossibilité de lire le registre, veuillez vous référer à Dépannage des erreurs TMC.

  6. Après le test, désactivez l'activation du moteur :

    MANUAL_STEPPER STEPPER=Drive0 ENABLE=0

Résultats attendus

Élément de testRésultat normalComportement anormal
Déplacement manuelLe moteur se déplace dans les deux sens selon la commandePas de mouvement, vibrations, à-coups ou direction anormale
Communication TMCDUMP_TMC retourne les informations du registreImpossible de lire le registre UART/SPI
Couple de maintienL'arbre du moteur ne peut pas tourner librement après ENABLE=1L'arbre tourne facilement (non activé)

Si les trois éléments ci-dessus sont normaux, cela signifie que la communication entre le driver et la carte mère ainsi que le câblage du moteur sont sans problème. Vous pouvez restaurer le printer.cfg original et continuer le diagnostic des autres composants matériels.


Test minimal de la carte-outil CAN

Objectif du test

Confirmer que la carte-outil CAN est reconnue par Klipper et vérifier la température, le ventilateur, l'accéléromètre ou les entrées sur la carte-outil.

Configuration minimale

Conservez d'abord la configuration minimale de base, puis ajoutez le fragment de test de la carte-outil CAN suivant à la suite de la configuration. Si vous testez uniquement la carte-outil CAN, conservez également le [mcu] de la carte mère pour permettre à Klipper de démarrer normalement et d'afficher l'état de connexion de la carte mère.

[mcu tool]
canbus_uuid: xxxxxxxxxxxx

[temperature_sensor ToolBoard]
sensor_type: temperature_mcu
sensor_mcu: tool

[output_pin tool_FAN0]
pin: tool:gpio13
pwm: True
cycle_time: 0.010
value: 0
shutdown_value: 0

Procédure de test

  1. Suivez les instructions de Configuration du réseau CAN et recherche d'ID pour rechercher et renseigner canbus_uuid.
  2. Après le redémarrage de Klipper, vérifiez si la température ToolBoard s'affiche correctement.
  3. Utilisez SET_PIN PIN=tool_FAN0 VALUE=1 pour tester la sortie du ventilateur basse tension de la carte-outil, puis exécutez SET_PIN PIN=tool_FAN0 VALUE=0.
  4. Pour tester l'accéléromètre ou les entrées de la carte-outil, vous pouvez ajouter la configuration correspondante en vous référant aux sections appropriées ci-dessus.
Conseil de dépannage CAN

La vérification de l'ordre des fils CANH/CANL, de la résistance de terminaison, des cavaliers et du rangement du faisceau doit être effectuée hors tension. Ne débranchez/rebranchez pas les câbles CAN et n'ajustez pas la résistance de terminaison sous tension.


Anomalies courantes et prochaines étapes

Comportement anormalMots-clés courants dans klippy.logPriorité de vérificationProchaine étape
Klipper ne peut pas se connecter à la MCUUnable to connect, Connect error, Serial connection closedserial / canbus_uuid, firmware, connexion USB/CANAperçu des erreurs courantes
Affichage anormal de la températureADC out of range, temperature, not heatingsensor_type, sensor_pin, connecteur de la thermistanceErreurs de température, chauffe et extrusion
Arrêt du chauffage ou du litVerify heater, not heating at expected rateContact de la thermistance, PID, puissance du chauffage, SSRErreurs de température, chauffe et extrusion
Le ventilateur ne tourne pasAucune erreur (les sorties ne génèrent pas de logs)pin, spécifications de tension du ventilateur, compatibilité PWMTest croisé en changeant de ventilateur ou de port
L'état de l'entrée ne change pasAucune erreur (les entrées ne génèrent pas de logs)Pull-up ^, câblage, type d'interrupteurVérifiez le connecteur et le port hors tension
Pas de données de l'accéléromètreInvalid adxl345 id, Invalid lis2dw id, timeoutcs_pin, spi_bus, faisceau, modèle de moduleTest et calibrage de l'accéléromètre
Échec du test de résonanceNo data, Insufficient axis data, Frequency rangeFixation du capteur, tension de la courroie, vibrations du ventilateurTest et calibrage de l'accéléromètre
Le moteur ne bouge pasUnable to read tmc uart, Unable to write tmc spistep_pin, dir_pin, enable_pin, configuration TMCDépannage des erreurs TMC
Impossible de lire le registre TMCDRV_STATUS, read register, GSTATBroches UART/SPI, cavaliers, alimentation du driver, modèle du driverDépannage des erreurs TMC
Carte-outil CAN hors lignebytes_invalid, Network is down, No buffer space, Timer too closeOrdre des fils CAN, résistance de terminaison, alimentation, UUIDConfiguration du réseau CAN et recherche d'ID
Blocage/perte aléatoire pendant l'impressionStepper too far in past, Rescheduled timer, Lost communicationCharge de l'ordinateur hôte, interférences sur la ligne de communication, vitesse/accélérationErreurs système, de performance et de service
Impossible d'enregistrer la configurationUnable to write, Option conflict, CRC does not matchPermissions de fichier, conflit de zone de sauvegarde automatique, FIRMWARE_RESTARTErreurs de configuration

Fragments de configuration de référence

Lors de la maintenance des configurations de test, vous pouvez extraire des fragments du modèle de carte mère/carte-outil correspondant en fonction du type de matériel :

  • Test de la carte mère : temperature_sensor, manual_stepper DriveN, tmcXXXX manual_stepper DriveN, output_pin FANx, gcode_button IOx.
  • Test de la carte-outil : temperature_sensor, adxl345 / lis2dw, manual_stepper Drive0, output_pin FANx, gcode_button.
  • Test de plusieurs drivers : conservez les noms Drive0, Drive1, Drive2 ; le STEPPER= dans la commande de test doit correspondre au nom de la section de configuration.
  • Test de sortie basse tension : privilégiez les charges basse tension comme les ventilateurs, les LED RGB, les buzzers ; n'utilisez pas la cartouche chauffante ou le lit chauffant comme un output_pin ordinaire pour les tests.

Si un module ne parvient pas à passer le test minimal ci-dessus, veuillez d'abord restaurer la configuration d'origine, puis poursuivre le diagnostic sur la page FAQ correspondante en fonction de l'erreur spécifique.

Loading...