Test des périphériques et des pilotes
Cet article permet de vérifier si des modules périphériques tels que le pilote pas à pas et la carte à outils CAN fonctionnent correctement. L'approche de test est la même que celle des tests d'E/S de base : utiliser une configuration Klipper minimale pour isoler un seul matériel.
Si vous devez tester la connexion MCU, le capteur de température, la sortie du ventilateur ou les ports d'entrée, veuillez d'abord consulter Méthodes de test matériel.
Test du pilote
Objectif du test
Vérifier, avec la configuration Klipper la plus simple, qu'un seul pilote TMC (mode UART ou SPI) peut communiquer normalement avec la carte mère et confirmer que le moteur peut être commandé.
Conditions préalables
Veuillez d'abord éteindre complètement l'imprimante et débrancher l'alimentation avant d'effectuer les opérations suivantes. Il est interdit de brancher/débrancher les modules de pilotage ou les câbles du moteur pas à pas sous tension.
- L'imprimante est complètement hors tension.
- Le pilote TMC à tester est correctement inséré dans le socket correspondant de la carte mère, en vérifiant le bon sens.
- Pour un pilote en mode UART (comme le TMC2209), vérifiez que le cavalier UART du port de pilotage correspondant est installé.
- Ne connectez qu'un seul moteur pas à pas au port de pilotage à tester ; les autres ports de pilotage restent vides pour l'instant.
- Préparez une configuration
printer.cfgminimale ne contenant que le pilote à tester. Il est recommandé de sauvegarder le fichier de configuration complet d'origine.
Configuration minimale pour un seul pilote
Utilisez la configuration minimale suivante pour remplacer printer.cfg, en ne conservant que les sections [printer], [mcu], le [manual_stepper Drive0] à tester et la section [tmcXXXX manual_stepper Drive0] correspondante. La section [manual_stepper] nécessite toujours une section [printer] minimale (kinematics: none), plus simple que la configuration des axes de mouvement, et adaptée à la vérification purement matérielle.
- Mode UART (TMC2209 / TMC2240, etc.)
- Mode SPI (TMC5160 / TMC2130, etc.)
[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx
[manual_stepper Drive0]
# Veuillez modifier 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]
# Veuillez modifier uart_pin en fonction des broches réelles de la carte mère
# Veuillez modifier sense_resistor en fonction des données du fabricant du pilote
uart_pin: PC4
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx
[manual_stepper Drive0]
# Veuillez modifier 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]
# Veuillez modifier cs_pin et spi_bus en fonction des broches réelles de la carte mère
# Veuillez modifier sense_resistor en fonction des données du fabricant du pilote
cs_pin: PC4
spi_bus: spi1a
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
serial: remplacez par l'ID réel du port série de la carte mère (visible vials /dev/serial/by-id/).step_pin/dir_pin/enable_pin: remplacez par les broches de la carte mère correspondant au port de pilotage à 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 pilote, ne pas simplement deviner en fonction du modèle de la puce. Différentes cartes de pilotage TMC5160 peuvent avoir des valeurs0.075,0.033,0.022ou autres ; les paramètres de détection des pilotes TMC2240 peuvent également être différents. Si les données du fabricant ne sont pas claires, veuillez d'abord consulter le fabricant ou utiliser son exemple de configuration officiel.- La configuration ne contient aucun chauffage ni ventilateur, elle est uniquement destinée à la vérification de la communication du pilote.
Méthode de test pour plusieurs pilotes
Si vous devez vérifier un par un plusieurs ports de pilotage sur une carte mère, vous pouvez nommer chaque port de pilotage comme Drive0, Drive1, Drive2 indépendamment, en vous référant à la méthode 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, ne connectez le moteur qu'au port de pilotage actuellement testé. Après avoir confirmé un port, mettez hors tension, puis passez au port suivant.
Étapes du test
-
Enregistrez la configuration minimale ci-dessus dans
printer.cfg. -
Après avoir confirmé que le moteur et le pilote sont bien branchés, mettez sous tension et démarrez Klipper.
-
Saisissez les commandes suivantes dans la console Mainsail / Fluidd pour activer le moteur et définir la position actuelle à
0:MANUAL_STEPPER STEPPER=Drive0 ENABLE=1MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0- Si le moteur a un couple de maintien après activation, cela signifie que
enable_pinest fondamentalement efficace. - Si le moteur peut encore tourner librement, mettez hors tension et vérifiez
enable_pin, la direction du pilote, le cavalier et l'alimentation.
- Si le moteur a 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 le déplacement relatif. Après avoir exécutéMOVE=100, puisMOVE=0, le moteur reviendra en sens inverse au point de départ.- Si le moteur est toujours connecté au mécanisme de mouvement de la machine, il est suggéré de modifier d'abord
MOVE=10 SPEED=5lors du premier test, puis d'augmenter la vitesse après avoir confirmé la sécurité de la direction et de la course. - Si le moteur tourne de manière stable sans à-coups, cela signifie que le pilote, le moteur et les broches d'impulsion/direction sont fondamentalement normaux.
- Si le moteur ne réagit pas, vibre seulement ou a une direction anormale, mettez hors tension et vérifiez la configuration des broches, le câblage du moteur, la direction du pilote et le cavalier.
-
Vérifiez l'état de la communication TMC :
DUMP_TMC STEPPER=Drive0Si les informations des registres peuvent être retournées normalement, cela signifie que la communication UART/SPI est fondamentalement normale ; si une erreur de lecture des registres est signalée, veuillez consulter Dépannage des erreurs TMC.
-
À la fin du test, désactivez le 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 en avant et en arrière selon la commande | Ne bouge pas, vibre, a des à-coups ou une direction anormale |
| Communication TMC | DUMP_TMC retourne les informations des registres | Impossible de lire les registres UART/SPI |
| Couple de maintien | L'axe du moteur ne peut pas tourner librement après ENABLE=1 | L'axe peut tourner facilement (non activé) |
Si les trois éléments ci-dessus sont normaux, cela signifie que la communication entre le pilote et la carte mère ainsi que le câblage du moteur sont sans problème. Vous pouvez alors restaurer le fichier printer.cfg d'origine et continuer à vérifier les autres composants matériels.
Test minimal de la carte à outils CAN
Objectif du test
Confirmer que la carte à outils CAN a été reconnue par Klipper et vérifier la température, le ventilateur, l'accéléromètre ou les ports d'entrée sur la carte à outils.
Configuration minimale
[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
Étapes du test
- Suivez Configuration du réseau CAN et recherche d'ID pour rechercher et remplir
canbus_uuid. - Après avoir redémarré Klipper, vérifiez si la température
ToolBoards'affiche normalement. - Utilisez
SET_PIN PIN=tool_FAN0 VALUE=1pour tester la sortie du ventilateur basse tension de la carte à outils, puis exécutezSET_PIN PIN=tool_FAN0 VALUE=0après le test. - Si vous devez tester l'accéléromètre ou les ports d'entrée de la carte à outils, vous pouvez ajouter la configuration correspondante en vous référant aux sections ci-dessus.
L'ordre des fils CANH/CANL, la résistance de terminaison, les cavaliers et l'organisation du câblage doivent tous être effectués hors tension. Ne débranchez 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 | Vérification prioritaire | Prochaine étape |
|---|---|---|---|
| Klipper ne peut pas se connecter au 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, fiche de la sonde | Erreurs de température, de chauffage et d'extrusion |
| Arrêt du chauffage ou du lit | Verify heater, not heating at expected rate | Contact de la sonde, PID, puissance du chauffage, SSR | Erreurs de température, de chauffage et d'extrusion |
| Le ventilateur ne tourne pas | Aucune erreur (les ports de sortie ne génèrent pas de journal) | pin, spécifications de tension du ventilateur, compatibilité PWM | Test croisé en changeant de ventilateur ou de port |
| L'état d'entrée ne change pas | Aucune erreur (les ports d'entrée ne génèrent pas de journal) | Tirage ^, câblage, type d'interrupteur | Vérifiez la fiche et le port après la mise hors tension |
| Aucune donnée de l'accéléromètre | Invalid adxl345 id, Invalid lis2dw id, timeout | cs_pin, spi_bus, câblage, modèle du 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 les registres TMC | DRV_STATUS, read register, GSTAT | Broches UART/SPI, cavalier, alimentation du pilote, modèle du pilote | Dépannage des erreurs TMC |
| La carte à outils CAN est 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 |
| À-coups/pertes aléatoires pendant l'impression | Stepper too far in past, Rescheduled timer, Lost communication | Charge de l'ordinateur hôte, interférences des câbles de communication, vitesse/accélération | Erreurs système, de performance et de service |
| Impossible de sauvegarder la configuration | Unable to write, Option conflict, CRC does not match | Permissions de fichier, conflit dans la zone de sauvegarde automatique, FIRMWARE_RESTART | Erreurs de configuration |
Extraits de configuration de référence
Lors de la maintenance de la configuration de test, vous pouvez extraire des fragments des modèles de carte mère/carte à outils correspondants 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 à outils :
temperature_sensor,adxl345/lis2dw,manual_stepper Drive0,output_pin FANx,gcode_button. - Test de plusieurs pilotes : conservez la dénomination
Drive0,Drive1,Drive2, et leSTEPPER=dans la commande de test doit correspondre au nom de la section de configuration. - Test de sortie basse tension : choisissez de préférence des charges basse tension telles que les ventilateurs, les RGB, les avertisseurs sonores ; n'utilisez pas de cartouche chauffante ou de lit chauffant comme
output_pinde test ordinaire.
Si un module ne parvient pas à passer le test minimal ci-dessus, veuillez d'abord restaurer la configuration d'origine, puis combiner l'erreur spécifique pour continuer à dépanner dans la page FAQ correspondante.