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
É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.
- L'imprimante est complètement hors tension.
- Le driver TMC à tester est correctement inséré dans le socket correspondant sur la carte mère, en vérifiant le sens.
- Pour un driver en mode UART (ex : TMC2209), assurez-vous que le cavalier UART correspondant est installé.
- Connectez un seul moteur pas à pas au port du driver à tester, laissez les autres ports vides.
- Sauvegardez votre fichier de configuration complet original et préparez un fichier
printer.cfgtemporaire 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].
- Mode UART (TMC2209 / TMC2240, etc.)
- Mode SPI (TMC5160 / TMC2130, etc.)
[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
[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
[tmc5160 manual_stepper Drive0]
# Modifiez cs_pin et spi_bus en fonction des broches réelles de la carte mère
# Modifiez sense_resistor selon les données du fabricant du driver
cs_pin: PC4
spi_bus: spi1a
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
serial: remplacez par l'ID de port série réel de la carte mère (visible vials /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 avoir0,075,0,033,0,022ou 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
-
Enregistrez la configuration minimale de base et le fragment de test du driver actuel dans
printer.cfg. -
Assurez-vous que le moteur et le driver sont correctement branchés avant de mettre sous tension, puis démarrez Klipper.
-
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=1MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0- Si le moteur maintient un couple de maintien après activation, cela signifie que
enable_pinest 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.
- Si le moteur maintient un couple de maintien après activation, cela signifie que
-
Effectuez un test de déplacement manuel :
MANUAL_STEPPER STEPPER=Drive0 MOVE=100 SPEED=100MANUAL_STEPPER STEPPER=Drive0 MOVE=0 SPEED=100MOVE=est la position cible, pas un déplacement relatif. Après avoir exécutéMOVE=100, exécutezMOVE=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=5pour 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.
-
Vérifiez l'état de la communication TMC :
DUMP_TMC STEPPER=Drive0Si 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.
-
Après le test, désactivez l'activation du moteur :
MANUAL_STEPPER STEPPER=Drive0 ENABLE=0
Résultats attendus
| Élément de test | Résultat normal | Comportement anormal |
|---|---|---|
| Déplacement manuel | Le moteur se déplace dans les deux sens selon la commande | Pas de mouvement, vibrations, à-coups ou direction anormale |
| Communication TMC | DUMP_TMC retourne les informations du registre | Impossible de lire le registre UART/SPI |
| Couple de maintien | L'arbre du moteur ne peut pas tourner librement après ENABLE=1 | L'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
- Suivez les instructions de Configuration du réseau CAN et recherche d'ID pour rechercher et renseigner
canbus_uuid. - Après le redémarrage de Klipper, vérifiez si la température
ToolBoards'affiche correctement. - Utilisez
SET_PIN PIN=tool_FAN0 VALUE=1pour tester la sortie du ventilateur basse tension de la carte-outil, puis exécutezSET_PIN PIN=tool_FAN0 VALUE=0. - 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.
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 anormal | Mots-clés courants dans klippy.log | Priorité de vérification | Prochaine étape |
|---|---|---|---|
| Klipper ne peut pas se connecter à la MCU | Unable to connect, Connect error, Serial connection closed | serial / canbus_uuid, firmware, connexion USB/CAN | Aperçu des erreurs courantes |
| Affichage anormal de la température | ADC out of range, temperature, not heating | sensor_type, sensor_pin, connecteur de la thermistance | Erreurs de température, chauffe et extrusion |
| Arrêt du chauffage ou du lit | Verify heater, not heating at expected rate | Contact de la thermistance, PID, puissance du chauffage, SSR | Erreurs de température, chauffe et extrusion |
| Le ventilateur ne tourne pas | Aucune erreur (les sorties ne génèrent pas de logs) | pin, spécifications de tension du ventilateur, compatibilité PWM | Test croisé en changeant de ventilateur ou de port |
| L'état de l'entrée ne change pas | Aucune erreur (les entrées ne génèrent pas de logs) | Pull-up ^, câblage, type d'interrupteur | Vérifiez le connecteur et le port hors tension |
| Pas de données de l'accéléromètre | Invalid adxl345 id, Invalid lis2dw id, timeout | cs_pin, spi_bus, faisceau, modèle de module | Test et calibrage de l'accéléromètre |
| Échec du test de résonance | No data, Insufficient axis data, Frequency range | Fixation du capteur, tension de la courroie, vibrations du ventilateur | Test et calibrage de l'accéléromètre |
| Le moteur ne bouge pas | Unable to read tmc uart, Unable to write tmc spi | step_pin, dir_pin, enable_pin, configuration TMC | Dépannage des erreurs TMC |
| Impossible de lire le registre TMC | DRV_STATUS, read register, GSTAT | Broches UART/SPI, cavaliers, alimentation du driver, modèle du driver | Dépannage des erreurs TMC |
| Carte-outil CAN hors ligne | bytes_invalid, Network is down, No buffer space, Timer too close | Ordre des fils CAN, résistance de terminaison, alimentation, UUID | Configuration du réseau CAN et recherche d'ID |
| Blocage/perte aléatoire pendant l'impression | Stepper too far in past, Rescheduled timer, Lost communication | Charge de l'ordinateur hôte, interférences sur la ligne de communication, vitesse/accélération | Erreurs système, de performance et de service |
| Impossible d'enregistrer la configuration | Unable to write, Option conflict, CRC does not match | Permissions de fichier, conflit de zone de sauvegarde automatique, FIRMWARE_RESTART | Erreurs 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; leSTEPPER=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_pinordinaire 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.