Erreurs de configuration
Cette page regroupe les problèmes liés aux conflits de sections de configuration, aux fautes de frappe dans les paramètres, aux fichiers include et à SAVE_CONFIG. Après avoir modifié la configuration, consultez d'abord la première erreur de configuration dans klippy.log, puis traitez chaque problème un par un.
homing override method always homes X and Y before homing Z
Message d'erreur : Conflit de configuration entre le homing Z sécurisé et le remplacement de homing.
Cause de l'erreur : [safe_z_home] et [homing_override] sont configurés simultanément, ce qui empêche Klipper de déterminer quelle logique de homing utiliser.
Solution :
- Recherchez
[safe_z_home]et[homing_override]dans le fichier de configuration. - Ne conservez qu'une seule de ces sections en fonction de la logique de homing réelle de la machine.
- Enregistrez et redémarrez Klipper.
Références de configuration : Guide de homing et de calibrage des directions, Référence de configuration du remplacement de homing.
Option 'xxx' is not valid in section 'yyy'
Message d'erreur : Option 'xxx' is not valid in section 'yyy', un nom d'option non reconnu existe dans la section de configuration spécifiée.
Causes courantes :
- Faute de frappe dans le nom de l'option, par exemple
sensor_pinécritsensor_ping. - Options d'une autre section de configuration collées par erreur dans la section actuelle, par exemple des options de
[probe]écrites dans[stepper_z]. - Après une mise à niveau de Klipper, des options prises en charge par l'ancienne version ont été supprimées ou renommées.
- Utilisation de contenu de commentaire qui n'est pas un paramètre réel, par exemple
default_parameter_z.
Solution :
- Vérifiez soigneusement la section et le nom de l'option signalés dans l'erreur pour confirmer l'orthographe.
- Consultez la documentation de référence de configuration Klipper pour confirmer à quelle section cette option appartient.
- Si vous avez récemment mis à niveau Klipper, consultez le journal des changements de configuration pour vérifier si l'option a changé.
- Supprimez ou déplacez les options invalides vers la bonne section de configuration.
Références de configuration : Instructions de modification de configuration.
Section 'xxx' is not a valid config section
Message d'erreur : Section 'xxx' is not a valid config section, Unknown config object ou une section de configuration ne peut pas être reconnue par Klipper.
Causes courantes :
- Faute de frappe dans le nom de la section, par exemple
[bed_mesh]écrit[bedmesh]. - La version actuelle de Klipper ne prend pas en charge cette section, ou le format de configuration est incompatible après une mise à jour ou une rétrogradation.
- Configuration copiée depuis un plugin tiers, mais le plugin, le module d'extension ou la branche Klipper correspondant n'est pas installé.
- Des sections de configuration d'autres machines ou cartes mères sont conservées dans les fichiers include.
Solution :
- En fonction du nom de section dans l'erreur, localisez la section correspondante dans
printer.cfget tous les fichiers include. - Confirmez que l'orthographe correspond à la référence de configuration Klipper ; n'utilisez pas de parenthèses chinoises ou de symboles pleine largeur pour les noms de sections.
- Si la configuration provient d'un plugin tiers ou d'un package de macros personnalisé, confirmez que le plugin est installé et compatible avec la version actuelle de Klipper.
- Si vous n'êtes pas sûr de l'utilité de la section, commentez-la d'abord et redémarrez pour tester, puis restaurez section par section.
Références de configuration : Instructions de modification de configuration.
Unable to open config file / Include file does not exist
Message d'erreur : Unable to open config file /home/xxx/printer_data/config/printer.cfg ou Include file 'xxx.cfg' does not exist.
Causes courantes :
- Le chemin du fichier
printer.cfgest incorrect ou le fichier a été supprimé par erreur. - Le fichier de sous-configuration référencé par
[include]n'existe pas ou le nom du fichier ne correspond pas. - Des outils d'installation comme KIAUH génèrent automatiquement des références
[include]mais le fichier cfg correspondant n'est pas installé. - Problème de permissions empêchant Klipper de lire le fichier de configuration.
Solution :
- Confirmez que
printer.cfgexiste dans le répertoire de configuration Klipper, généralement~/printer_data/config/printer.cfg. - Vérifiez toutes les lignes
[include xxx.cfg]pour confirmer que les fichiers référencés existent réellement. - Si
fluidd.cfgoumainsail.cfgmanque, référez-vous à la documentation d'installation de l'interface Web correspondante pour ajouter la configuration. - Assurez-vous que les permissions des fichiers de configuration sont correctes :
ls -la ~/printer_data/config/.
Configuration de base Fluidd / Mainsail manquante
Message d'erreur : Fluidd ou Mainsail signale que la configuration de base est manquante, avec des mots-clés courants :
[virtual_sdcard] not found in printer configuration.
[pause_resume] not found in printer configuration.
[display_status] is required if you do not have a [display] defined.
CANCEL_PRINT macro not found in configuration.
Exemple de message Fluidd :
Exemple de message Mainsail :
Causes courantes :
printer.cfgn'active pas[include fluidd.cfg]ou[include mainsail.cfg].fluidd.cfg/mainsail.cfgest manquant dans le répertoire de configuration, ou le nom du fichier include est incorrect.[virtual_sdcard],[pause_resume],[display_status]ont été omis lors de la configuration manuelle.- La macro
CANCEL_PRINTn'est pas définie, ou le fichier de macros n'est pas inclus.
Solution :
-
Il faut impérativement utiliser d'abord le fichier de configuration frontend par défaut ; il n'est pas recommandé aux utilisateurs ordinaires d'ajouter manuellement quelques sections pour contourner l'avertissement. Les
fluidd.cfg/mainsail.cfgpar défaut fournissent également la carte SD virtuelle, la pause/reprise, l'état d'affichage et les macros d'annulation d'impression nécessaires au frontend. -
Confirmez que
printer.cfgcontient l'include correspondant au frontend utilisé en haut du fichier :[include fluidd.cfg]ou :
[include mainsail.cfg] -
Si vous utilisez le système préinstallé FLY ou la configuration de référence officielle, confirmez que le fichier
fluidd.cfg/mainsail.cfgexiste dans le répertoire~/printer_data/config/. -
Si le fichier correspondant n'existe pas, ajoutez à nouveau le fichier de configuration frontend par défaut, ou référez-vous aux instructions de configuration initiale Fluidd.
-
Après avoir activé le fichier de configuration frontend par défaut, si vous devez modifier les positions de pause, reprise, annulation d'impression et les paramètres de rétraction, ajoutez
_CLIENT_VARIABLEselon Positions personnalisées de pause et d'annulation d'impression ; ne copiez pas ou ne modifiez pas directement les macrosCANCEL_PRINT/PAUSE/RESUMEpar défaut. -
Ce n'est que lors de la maintenance d'un système personnalisé, lorsque vous connaissez clairement les dépendances des macros frontend, qu'il faut envisager de compléter manuellement les sections de base. Cette méthode n'est pas recommandée aux utilisateurs ordinaires ; elle doit au minimum inclure :
[virtual_sdcard]path: ~/printer_data/gcodeson_error_gcode: CANCEL_PRINT[pause_resume][display_status]Elle doit également fournir un
[gcode_macro CANCEL_PRINT]fonctionnel, sinon le frontend affichera toujoursCANCEL_PRINT macro not found in configuration. -
Après avoir enregistré la configuration, exécutez
RESTART. Si l'avertissement persiste, continuez à vérifier si tous les fichiers include sont réellement lus par Klipper.
Méthode d'utilisation des macros frontend : Positions personnalisées de pause et d'annulation d'impression Référence de configuration des macros : Introduction aux macros
Unable to parse option / option must be specified
Message d'erreur : Unable to parse option 'xxx' in section 'yyy', Option 'xxx' in section 'yyy' must be specified, ou must have minimum/maximum, must be above/below.
Causes courantes :
- Paramètre obligatoire manquant, par exemple
[extruder]sansstep_pin,dir_pin,heater_pinousensor_type. - Format de paramètre incorrect, par exemple une valeur numérique attendue mais du texte fourni, une liste de coordonnées sans virgule.
- Valeur de paramètre hors de la plage autorisée par Klipper, par exemple
run_current,max_temp,position_maxmal configurés. - Copie de configuration contenant des signes de ponctuation chinois, des symboles pleine largeur ou des caractères invisibles.
Solutions :
- En fonction du nom de la section et du paramètre indiqués dans l'erreur, vérifiez un par un dans le fichier
.cfgcorrespondant. - Pour les paramètres numériques, de coordonnées et de listes, confirmez que le format correspond aux exemples, par exemple
mesh_min : 20, 20. - Pour les erreurs
must be above/belowouminimum/maximum, restaurez d'abord les valeurs recommandées par les exemples officiels ou le tutoriel de la carte mère. - Après l'enregistrement, exécutez
RESTART; si l'échec persiste, consultez la première erreur de configuration dansklippy.log.
Référence de configuration associée : Notes de modification de configuration.
Unknown pin chip name / Pin is not a valid pin name / pin used multiple times
Message d'erreur : Unknown pin chip name 'xxx', Pin 'PB12' is not a valid pin name on mcu 'mcu', Invalid pin description 'xxx', pin xxx used multiple times in config.
Causes courantes :
- Dans une configuration multi-MCU, le préfixe de la broche est incorrect, par exemple
toolboard:PB0est écrit alors que le nom du MCU n'existe pas. - L'ID du MCU (
canbus_uuidouserial) est mal configuré, ce qui mappe la broche à un autre appareil qui ne possède pas cette broche. - Faute de frappe dans le nom de la broche, ou copie directe d'une broche depuis un tutoriel pour une autre carte mère.
- La même broche physique est utilisée par plusieurs fonctions, par exemple un ventilateur, une cartouche chauffante et une butée partageant la même broche.
- Les modificateurs de broche
!(inversion),^(pull-up),~(pull-down) sont placés au mauvais endroit.
Solutions :
- Vérifiez que le nom dans
[mcu xxx]correspond exactement au préfixe de la broche, y compris la casse. - Vérifiez que le
canbus_uuidouserialdans la section[mcu xxx]correspond bien à l'appareil réel (utilisezls /dev/serial/by-id/oupython3 -c "import can; ..."). - Comparez avec le schéma des broches de la carte mère pour confirmer que chaque
pin:,step_pin:,dir_pin:,heater_pin:appartient bien à la carte actuelle. - Recherchez la broche en erreur dans tous les fichiers inclus et supprimez ou changez l'utilisation en double.
- Les modificateurs de broche doivent être placés avant le nom de la broche, par exemple
^PB7,!PC13,mcu2:^PB7.
Référence de configuration associée : Notes de modification de configuration, Configuration de référence du ventilateur.
gcode command XXX already registered
Message d'erreur : Error: gcode command XXX already registered.
Cause de l'erreur : Deux macros ou modules système différents enregistrent le même nom de commande G-code, par exemple deux macros définissant [gcode_macro NEXT].
Scénarios courants :
- Une macro personnalisée entre en conflit avec un module système Klipper ou une configuration tierce.
- Plusieurs définitions de
[gcode_macro M600].
Solutions :
- Recherchez les définitions en double dans
printer.cfget tous les fichiers[include]. - Supprimez ou renommez le
[gcode_macro]en conflit. - Vérifiez les macros courantes comme
[homing_override],[gcode_macro PAUSE],[gcode_macro RESUME],[gcode_macro CANCEL_PRINT].
Référence de configuration associée : Introduction aux macros.
Unknown command:"XXX"
Message d'erreur : La console ou klippy.log affiche Unknown command:"PRINT_START", Unknown command:"START_PRINT", Unknown command:"M600", Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START", Unknown command:"EXCLUDE_OBJECT_END", Unknown command:"M106", Unknown command:"M201", Unknown command:"M203", Unknown command:"M205", etc.
Causes courantes :
- Les G-codes de début/fin du slicer appellent une macro qui n'existe pas dans Klipper, par exemple le slicer envoie
PRINT_START, mais la configuration ne définit que[gcode_macro START_PRINT]. - Utilisation de commandes migrées depuis Marlin, que Klipper ne prend pas en charge par défaut ou pour lesquelles une macro de compatibilité est nécessaire.
- La fonction d'exclusion d'objets est activée, mais la configuration du slicer, de Moonraker ou de Klipper est incomplète, rendant les commandes
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_ENDnon reconnues. - Le ventilateur utilise
[fan_generic]ou[output_pin], mais le slicer envoie toujours les commandes par défautM106/M107. - L'utilisation d'un pack de macros tiers sans les fichiers inclus, ou un nom de macro différent de celui saisi dans le slicer.
Solutions :
- Recherchez le nom de la commande dans
printer.cfget tous les fichiers inclus pour vérifier si un[gcode_macro XXX]correspondant existe. - Faites correspondre les noms des commandes de début, de fin, de changement de filament, de ventilateur et d'exclusion d'objets dans le slicer avec ceux des macros Klipper.
- Pour les commandes Marlin, supprimez d'abord les commandes inutiles ; si une compatibilité est réellement nécessaire, ajoutez une macro Klipper explicite.
- Pour les erreurs liées à l'exclusion d'objets, vérifiez en parallèle si le slicer émet des étiquettes d'objets, si Moonraker active le traitement des objets et si Klipper possède
[exclude_object]. - En cas d'erreur de commande de ventilateur, confirmez si vous devez utiliser
[fan], ou ajoutez une macro de contrôle appropriée pour[fan_generic]/[output_pin].
EXCLUDE_OBJECT_DEFINE / START / END
Signification de l'erreur : EXCLUDE_OBJECT_DEFINE définit l'objet à imprimer, EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END marquent à quel objet appartient le G-code en cours, permettant à l'interface d'afficher et d'exclure des objets spécifiques lors d'une impression multi-objets. Si klippy.log affiche de manière répétée Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START" ou Unknown command:"EXCLUDE_OBJECT_END", cela signifie que le G-code contient des commandes d'exclusion d'objets, mais que la configuration actuelle de Klipper ne les reçoit pas correctement.
Vérifications prioritaires :
- Confirmez que dans
printer.cfgou dans un fichier inclus, la configuration suivante existe :
[exclude_object]
- Après modification, exécutez
RESTART, puis retéléchargez le fichier G-code pour tester. Les anciens fichiers déjà téléchargés peuvent ne pas avoir été traités avec la configuration la plus récente ; il est recommandé de re-trancher ou de retélécharger. - Vérifiez si le traitement des objets est activé dans la configuration de Moonraker, généralement dans
moonraker.conf:
[file_manager]
enable_object_processing: True
- Vérifiez si le slicer a activé les étiquettes d'objets / la sortie d'exclusion d'objets. Les noms varient selon le slicer, mais la manifestation courante est la présence de
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_ENDou de noms d'objets dans le G-code. - Si vous souhaitez simplement terminer l'impression temporairement sans la fonction d'exclusion d'objets, désactivez la sortie d'exclusion d'objets dans le slicer et re-tranchez ; ne supprimez pas seulement certaines commandes d'objets du fichier, sinon la liste des objets dans l'interface pourrait être anormale.
Orientations pour le diagnostic :
- Seules les erreurs
EXCLUDE_OBJECT_START/EXCLUDE_OBJECT_END: ajoutez d'abord[exclude_object], puis redémarrez Klipper. - L'interface n'a pas de liste d'objets, mais Klipper ne signale plus d'erreur de commande inconnue : vérifiez en priorité le traitement des objets dans Moonraker et si le G-code a été retéléchargé.
- Aucune commande liée aux objets trouvée dans le fichier : le slicer ne génère pas d'étiquettes d'objets, il faut les activer côté slicer.
Référence de configuration associée : Introduction aux macros, Notes de modification de configuration.
Error evaluating 'gcode_macro XXX:gcode'
Message d'erreur : Error evaluating 'gcode_macro PRINT_START:gcode', jinja2.exceptions.UndefinedError, 'dict object' has no attribute 'BED', 'dict object' has no attribute 'HOTEND', 'dict object' has no attribute 'extrude', 'dict object' has no attribute 'heater_bed', gcode.CommandError.
Causes fréquentes :
- Le slicer ne transmet pas les paramètres requis par la macro, par exemple la macro lit
params.HOTENDmais le slicer n'envoie pasHOTEND=. - Les noms de paramètres ne correspondent pas, par exemple la macro attend
BED/HOTEND, alors que le slicer envoieBED_TEMP/EXTRUDER_TEMP. - La macro référence un objet inexistant, par exemple
[heater_bed]absent de la configuration, mais la macro litprinter.heater_bed. - La macro utilise la syntaxe Jinja2, mais les parenthèses, guillemets, filtres ou valeurs par défaut sont mal écrits.
- Une commande exécutée à l'intérieur de la macro échoue en premier, et l'erreur externe n'affiche que
Error evaluating.
Solutions :
- Consultez la trace complète sous
Error evaluatingdansklippy.logpour identifier la variable ou la commande en erreur. - Comparez avec le G-code de démarrage du slicer pour vérifier que les noms de paramètres correspondent exactement à
params.xxxdans la macro, y compris la casse. - Définissez des valeurs par défaut pour les paramètres optionnels, par exemple
params.BED|default(60)|float, afin d'éviter les erreurs lorsque le paramètre est vide. - Recherchez les objets
printer.xxxutilisés dans la macro et vérifiez que le module correspondant existe dans la configuration. - Si la macro provient d'un pack de configuration tiers, vérifiez que tous les fichiers include et macros de base dépendants sont bien chargés.
Référence de configuration associée : Présentation des macros.
Échec de SAVE_CONFIG ou conflit de configuration
Message d'erreur : après exécution de SAVE_CONFIG, le message Unable to write config, Option conflict, Cannot save config s'affiche, ou après un redémarrage, Can't read autosave from config file - modifications after header.
Causes fréquentes :
- Permissions insuffisantes sur le fichier
printer.cfg, le processus Klipper ne peut pas écrire, souvent après avoir modifié le fichier avecsudo. - Conflit entre les options de la zone de sauvegarde automatique (bloc de marquage
#*#) et les mêmes options définies manuellement dans les fichiers[include]. - La MCU est en état d'arrêt (shutdown),
SAVE_CONFIGne peut pas envoyer correctement la nouvelle configuration. - Erreur de syntaxe ou fichier
printer.cfgtronqué à la fin, empêchant l'écriture de la zone de sauvegarde automatique. - Après le marqueur
#*# <---------------------- SAVE_CONFIG ---------------------->, des lignes de configuration normales, des commentaires ou d'autres lignes non#*#ont été ajoutées manuellement, Klipper refuse alors de lire la zone de sauvegarde automatique. - Le titre de la zone de sauvegarde automatique ou les lignes
#*#ont été corrompus lors d'une édition manuelle, d'une fusion de configuration ou d'une synchronisation de fichiers. - Plusieurs fichiers include définissent en double des paramètres qui ne devraient pas être sauvegardés automatiquement par
SAVE_CONFIG, comme le PID ou le décalage Z (Z offset).
Solutions :
-
Vérifiez les permissions du fichier de configuration :
ls -la ~/printer_data/config/printer.cfgSi le propriétaire n'est pas l'utilisateur actuel, exécutez :
sudo chown $USER:$USER ~/printer_data/config/printer.cfg -
Si l'imprimante ne démarre pas après
SAVE_CONFIG, ouvrezprinter.cfget consultez la zone de sauvegarde automatique#*#en bas du fichier. -
Si le message
modifications after headerapparaît, sauvegardez d'abordprinter.cfg, puis recherchez le marqueur de sauvegarde automatique :grep -nE 'SAVE_CONFIG|DO NOT EDIT|^#\*#' ~/printer_data/config/printer.cfg -
Déplacez toutes les configurations à maintenir manuellement avant le titre
SAVE_CONFIG. Après le titre, ne conservez que les lignes#*#générées par Klipper ; ne supprimez pas toute la zone de sauvegarde automatique, sinon les valeurs de calibration sauvegardées comme le PID, le décalage Z ou le maillage du lit pourraient être perdues. -
Si la zone de sauvegarde automatique est corrompue ou présente plusieurs titres, privilégiez la restauration depuis la sauvegarde
printer-*.cfgla plus récente et connue comme valide dans le même répertoire, puis réexécutez les calibrations nécessaires. Ne fusionnez pas plusieurs zones de sauvegarde automatique entre elles. -
Si la même option existe également dans un fichier include, supprimez le doublon dans la zone de sauvegarde automatique, ou gérez-la de manière centralisée dans le fichier include.
-
Si la MCU est en état d'arrêt, traitez d'abord la véritable erreur d'origine et exécutez
FIRMWARE_RESTART, puis réexécutezSAVE_CONFIG. -
Si les permissions sont correctes mais que l'écriture échoue toujours, vérifiez l'espace disque :
df -h ~/printer_data/.
Référence de configuration associée : Explication des modifications de configuration.
SDCARD_RESET_FILE cannot be run from the sdcard
Message d'erreur : SDCARD_RESET_FILE cannot be run from the sdcard.
Causes fréquentes :
- La commande
SDCARD_RESET_FILEa été exécutée pendant une impression depuis la carte SD, mais cette commande n'est pas autorisée pendant l'impression SD. - Le G-code de démarrage du slicer ou une macro contient par erreur l'appel
SDCARD_RESET_FILE.
Solutions :
- Vérifiez le G-code de démarrage du slicer et les macros personnalisées, puis supprimez ou commentez l'appel
SDCARD_RESET_FILE. - Si vous devez réellement réinitialiser l'état du fichier de la carte SD, exécutez-le manuellement après la fin de l'impression, et non dans le processus d'impression.
- Si vous utilisez la macro
PRINT_START, vérifiez qu'elle n'appelle pas cette commande.