Erreurs de classe de configuration
Cette page regroupe les problèmes liés aux conflits de sections de configuration, aux fautes d'orthographe des 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 élément un par un.
homing override method always homes X and Y before homing Z
Message d'erreur : Conflit entre le positionnement d'origine Z sécurisé et le remplacement du positionnement d'origine.
Cause de l'erreur : [safe_z_home] et [homing_override] sont tous deux configurés, ce qui empêche Klipper de déterminer quelle logique de positionnement d'origine utiliser.
Solution :
- Recherchez
[safe_z_home]et[homing_override]dans le fichier de configuration. - Ne conservez qu'un seul élément en fonction de la logique de positionnement d'origine réelle de la machine.
- Enregistrez et redémarrez Klipper.
Référence de configuration connexe : Guide de positionnement d'origine et de calibration des directions, Configuration de référence pour le remplacement du positionnement d'origine.
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 d'orthographe dans le nom de l'option, par exemple
sensor_pinécrit commesensor_ping. - Collage accidentel d'options d'autres sections de configuration sous la section actuelle, par exemple écrire les options de
[probe]dans[stepper_z]. - Après une mise à niveau de Klipper, les options prises en charge par l'ancienne version ont été supprimées ou renommées.
- Contenu de commentaire utilisé comme paramètre non réel, par exemple
default_parameter_z.
Solution :
- Vérifiez attentivement la section de configuration et le nom de l'option indiqués dans l'erreur, et confirmez l'orthographe.
- Reportez-vous au document de référence de configuration Klipper pour confirmer à quelle section de configuration cette option appartient.
- Si vous avez récemment mis à niveau Klipper, consultez le journal des modifications de configuration pour vérifier si l'option a changé.
- Supprimez ou déplacez les options invalides vers la section de configuration correcte.
Référence de configuration connexe : 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 d'orthographe dans le nom de la section de configuration, par exemple
[bed_mesh]écrit comme[bedmesh]. - La version actuelle de Klipper ne prend pas en charge cette section de configuration, ou le format de configuration est incompatible après une mise à jour/une rétrogradation.
- Copie de la configuration d'un plugin tiers, mais le plugin correspondant, le module d'extension ou la branche Klipper n'est pas installé.
- Les fichiers include conservent des sections de configuration d'autres machines ou d'autres cartes mères.
Solution :
- En fonction du nom de la section de configuration dans l'erreur, localisez le paragraphe correspondant dans
printer.cfget tous les fichiers include. - Confirmez que l'orthographe est cohérente avec la référence de configuration Klipper. N'utilisez pas de parenthèses chinoises ou de symboles pleine largeur pour les noms de sections de configuration.
- Si la configuration provient d'un plugin tiers ou d'un package de macros personnalisé, confirmez que le plugin correspondant est installé et compatible avec la version actuelle de Klipper.
- Si vous n'êtes pas sûr de l'utilisation de ce paragraphe, commentez d'abord cette section de configuration et redémarrez pour tester, puis restaurez chaque élément un par un.
Référence de configuration connexe : 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é accidentellement supprimé. - Le sous-fichier de configuration référencé par
[include]n'existe pas ou le nom du fichier ne correspond pas. - Les outils d'installation comme KIAUH génèrent automatiquement une référence
[include], mais le fichier cfg correspondant n'est pas installé. - Problème de permission 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.cfgsont manquants, reportez-vous à la documentation d'installation de l'interface Web correspondante pour ajouter la configuration. - Assurez-vous que les permissions du fichier de configuration sont correctes :
ls -la ~/printer_data/config/.
Configuration de base Fluidd / Mainsail manquante
Message d'erreur : Fluidd ou Mainsail indique que la configuration de base est manquante, les mots-clés courants incluent :
[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 d'invite Fluidd :
Exemple d'invite Mainsail :
Causes courantes :
printer.cfgn'a pas activé[include fluidd.cfg]ou[include mainsail.cfg].- Le fichier
fluidd.cfg/mainsail.cfgest manquant dans le répertoire de configuration, ou le nom du fichier include est mal orthographié. - Lors de la configuration manuelle,
[virtual_sdcard],[pause_resume],[display_status]ont été omis. - La macro
CANCEL_PRINTn'est pas définie, ou le fichier de macro n'est pas inclus.
Solution :
-
Vous devez prioritairement utiliser le fichier de configuration frontend par défaut. Il n'est pas recommandé aux utilisateurs ordinaires d'ajouter manuellement quelques sections de configuration pour contourner l'invite. Les fichiers
fluidd.cfg/mainsail.cfgpar défaut fournissent simultanément la carte SD virtuelle, la pause/reprise, l'état d'affichage et la macro d'annulation d'impression, etc., dont le frontend a besoin. -
Confirmez que le haut de
printer.cfgcontient l'include correspondant au frontend actuellement utilisé :[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 reportez-vous aux instructions de configuration initiale de Fluidd.
-
Après avoir activé le fichier de configuration frontend par défaut, si vous devez modifier la position de pause, de reprise et d'annulation d'impression ainsi que les paramètres de rétraction, ajoutez
_CLIENT_VARIABLEconformément à Position personnalisée de pause et d'annulation d'impression. Ne copiez pas et ne réécrivez pas directement les macrosCANCEL_PRINT/PAUSE/RESUMEpar défaut. -
Ce n'est que lors de la maintenance d'un système personnalisé et que vous connaissez clairement les dépendances des macros du frontend que vous devez envisager d'ajouter manuellement les sections de base. Cette méthode n'est pas recommandée pour les utilisateurs ordinaires. Au minimum, elle doit inclure :
[virtual_sdcard]path: ~/printer_data/gcodeson_error_gcode: CANCEL_PRINT[pause_resume][display_status]En outre, un
[gcode_macro CANCEL_PRINT]utilisable doit être fourni, sinon le frontend continuera à afficherCANCEL_PRINT macro not found in configuration. -
Après avoir enregistré la configuration, exécutez
RESTART. Si l'invite de fichier manquant persiste, continuez à vérifier si tous les fichiers include sont réellement lus par Klipper.
Méthode d'utilisation des macros du frontend : Position personnalisée 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]manquantstep_pin,dir_pin,heater_pinousensor_type. - Format de paramètre incorrect, par exemple un nombre attendu mais un texte est saisi, ou une liste de coordonnées sans virgule.
- Valeur de paramètre en dehors de la plage autorisée par Klipper, par exemple
run_current,max_temp,position_maxdéfinis de manière déraisonnable. - Conservation de la ponctuation chinoise, de symboles pleine largeur ou de caractères invisibles lors de la copie de la configuration.
Solution :
- En fonction de la section de configuration et du nom du paramètre indiqués dans l'erreur, revenez au fichier
.cfgcorrespondant pour vérifier chaque élément. - Pour les nombres, les coordonnées et les paramètres de liste, confirmez que le format est cohérent avec l'exemple, par exemple
mesh_min: 20, 20. - Pour
must be above/belowouminimum/maximum, rétablissez d'abord les valeurs recommandées par l'exemple officiel ou le tutoriel de la carte mère. - Après avoir enregistré, exécutez
RESTART. Si l'échec persiste, consultez la première erreur de configuration dansklippy.log.
Référence de configuration connexe : Instructions 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 broche est mal orthographié, par exemple
toolboard:PB0est écrit mais le nom MCU n'existe pas. - L'ID MCU (
canbus_uuidouserial) est mal configuré, ce qui fait que la broche est mappée sur le mauvais périphérique, qui ne possède pas la broche correspondante. - Faute d'orthographe dans le nom de la broche, ou copie directe de la broche du tutoriel d'une carte mère vers une autre carte mère.
- La même broche physique est occupée par plusieurs fonctions, par exemple un ventilateur, un chauffage et une butée utilisent tous la même broche.
- L'inversion de broche
!, la résistance de tirage^, la résistance de rappel~sont écrites dans la mauvaise position.
Solution :
- Vérifiez si le nom de
[mcu xxx]est exactement le même que le préfixe de la broche, y compris la casse. - Vérifiez si
canbus_uuidouserialde la section[mcu xxx]correspond au périphérique réel (vous pouvez utiliserls /dev/serial/by-id/oupython3 -c "import can; ..."pour confirmer). - Comparez avec le schéma des broches de la carte mère pour confirmer que chaque
pin:,step_pin:,dir_pin:,heater_pin:appartient à la carte mère actuelle. - Recherchez la broche signalée dans tous les fichiers include, supprimez ou remplacez les éléments en double.
- Les modificateurs de broche doivent être écrits avant le nom de la broche, par exemple
^PB7,!PC13,mcu2:^PB7.
Référence de configuration connexe : Instructions 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éfinissent toutes deux [gcode_macro NEXT].
Scénarios courants :
- Conflit entre une macro personnalisée par l'utilisateur et un module système Klipper ou une configuration tierce.
- Définitions multiples de
[gcode_macro M600].
Solution :
- 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 connexe : Introduction aux macros.
Unknown command:"XXX"
Message d'erreur : 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. apparaissent dans la console ou klippy.log.
Causes courantes :
- Le G-code de début ou de fin du slicer appelle une macro qui n'existe pas dans Klipper, par exemple le slicer envoie
PRINT_START, mais seule[gcode_macro START_PRINT]est définie dans la configuration. - Utilisation de commandes migrées de Marlin, que Klipper ne prend pas en charge par défaut ou nécessite des macros de compatibilité.
- La fonction d'exclusion d'objet est activée, mais la configuration du slicer, de Moonraker ou de Klipper est incomplète, ce qui empêche la reconnaissance des commandes
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_END. - Le ventilateur utilise
[fan_generic]ou[output_pin], mais le slicer envoie toujours les commandesM106/M107par défaut. - Utilisation d'un package de macros tiers sans le fichier include, ou le nom de la macro ne correspond pas au nom saisi dans le slicer.
Solution :
- Recherchez le nom de la commande dans l'erreur dans
printer.cfget tous les fichiers include, confirmez s'il existe un[gcode_macro XXX]correspondant. - Assurez-vous que les noms des commandes de début, de fin, de changement de filament, de ventilateur et d'exclusion d'objet dans le slicer sont cohérents avec les macros Klipper.
- S'il s'agit de commandes Marlin, supprimez d'abord les commandes inutiles ; si une compatibilité est vraiment nécessaire, ajoutez une macro Klipper explicite.
- Pour les erreurs liées à l'exclusion d'objet, vérifiez simultanément si le slicer génère des étiquettes d'objet, si Moonraker a activé le traitement des objets et si Klipper a
[exclude_object]. - En cas d'erreur de commande de ventilateur, confirmez s'il faut utiliser
[fan], ou ajoutez une macro de contrôle correspondante pour[fan_generic]/[output_pin].
EXCLUDE_OBJECT_DEFINE / START / END
Signification de l'erreur : EXCLUDE_OBJECT_DEFINE est utilisé pour définir un objet d'impression, EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END est utilisé pour marquer à quel objet appartient le G-code actuel, afin que le frontend puisse afficher et exclure l'objet spécifié lors de l'impression multi-objets. Si klippy.log affiche à plusieurs reprises Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START" ou Unknown command:"EXCLUDE_OBJECT_END", cela signifie que le G-code contient déjà des commandes d'exclusion d'objet, mais que la configuration actuelle de Klipper ne les reçoit pas correctement.
Vérification prioritaire :
- Confirmez la présence de :
[exclude_object]
dans printer.cfg ou dans un fichier de configuration inclus.
- Après la modification, exécutez
RESTART, puis retéléchargez le fichier G-code pour le 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 la configuration de Moonraker a activé le traitement des objets. L'emplacement de configuration courant est
moonraker.conf:
[file_manager]
enable_object_processing: True
- Vérifiez si le slicer a activé la sortie des étiquettes d'objet / de l'exclusion d'objet. Le nom varie selon le slicer. Le comportement courant est la présence de
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_ENDou du nom de l'objet dans le G-code. - Si vous souhaitez simplement terminer l'impression temporairement sans avoir besoin de la fonction d'exclusion d'objet, désactivez la sortie liée à l'exclusion d'objet dans le slicer, puis retranchez. Ne supprimez pas seulement certaines commandes d'objet dans le fichier, car la liste des objets du frontend pourrait être anormale.
Direction du diagnostic :
- Seulement
EXCLUDE_OBJECT_START/EXCLUDE_OBJECT_ENDsignalé : Ajoutez d'abord[exclude_object], puis redémarrez Klipper. - Le frontend n'a pas de liste d'objets, mais Klipper ne signale plus Unknown command : Vérifiez d'abord le traitement des objets de Moonraker et si le G-code a été retéléchargé.
- Aucune commande liée à l'objet trouvée dans le fichier : Cela signifie que le slicer n'a pas généré d'étiquettes d'objet, il faut les activer côté slicer.
Référence de configuration connexe : Introduction aux macros, Instructions 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 courantes :
- Le slicer ne passe pas les paramètres requis par la macro, par exemple la macro lit
params.HOTEND, mais le slicer ne passe pasHOTEND=. - Incohérence du nom du paramètre, par exemple la macro a besoin de
BED/HOTEND, mais le slicer passe réellementBED_TEMP/EXTRUDER_TEMP. - La macro fait référence à un objet qui n'existe pas, par exemple
[heater_bed]n'est pas dans 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 a d'abord échoué, la couche externe affiche seulement
Error evaluating.
Solution :
- Consultez le Traceback complet sous
Error evaluatingdansklippy.logpour confirmer quelle variable ou commande a échoué. - Comparez avec le G-code de début du slicer, confirmez que le nom du paramètre passé est exactement le même que
params.xxxdans la macro, y compris la casse. - Définissez une valeur par défaut pour les paramètres facultatifs, par exemple
params.BED|default(60)|float, pour éviter une erreur lorsque le paramètre est vide. - Recherchez les objets
printer.xxxutilisés dans la macro, confirmez que le module correspondant existe dans la configuration. - Si la macro provient d'un package de configuration tiers, confirmez que tous les fichiers include dépendants et les macros de base ont été chargés.
Référence de configuration connexe : Introduction aux macros.
Échec de SAVE_CONFIG ou conflit de configuration
Message d'erreur : Après l'exécution de SAVE_CONFIG, Unable to write config, Option conflict, Cannot save config s'affiche, ou l'imprimante ne démarre pas après l'enregistrement.
Causes courantes :
- Permissions insuffisantes sur le fichier
printer.cfg, le processus Klipper ne peut pas écrire, courant après avoir édité le fichier de configuration avecsudo. - Conflit entre les éléments de configuration dans la zone de sauvegarde automatique (bloc de marquage
#*#) et les mêmes options dans le fichier manuel[include]. - Le MCU est déjà en état d'arrêt,
SAVE_CONFIGne peut pas normalement délivrer la nouvelle configuration. - Erreur de syntaxe ou troncature à la fin du fichier
printer.cfg, entraînant l'échec de l'écriture dans la zone de sauvegarde automatique. - Plusieurs fichiers include définissent à plusieurs reprises des paramètres qui ne devraient pas être automatiquement sauvegardés par
SAVE_CONFIG, comme PID, Z offset.
Solution :
-
Confirmez 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.cfgen bas et consultez la zone de sauvegarde automatique#*#. -
Si la même option existe également dans le fichier include, supprimez l'élément en double dans la zone de sauvegarde automatique, ou gérez-la de manière unifiée dans le fichier include.
-
Si le MCU est en état d'arrêt, exécutez d'abord
FIRMWARE_RESTART, puis réexécutezSAVE_CONFIG. -
Si les permissions sont normales mais que l'écriture échoue toujours, vérifiez l'espace disque :
df -h ~/printer_data/.
Référence de configuration connexe : Instructions de modification de configuration.
SDCARD_RESET_FILE cannot be run from the sdcard
Message d'erreur : SDCARD_RESET_FILE cannot be run from the sdcard.
Causes courantes :
- La commande
SDCARD_RESET_FILEa été exécutée pendant une impression depuis la carte SD. Cette commande n'est pas autorisée à être appelée pendant une impression SD. - Le G-code de début du slicer ou une macro inclut accidentellement
SDCARD_RESET_FILE.
Solution :
- Vérifiez le G-code de début du slicer et les macros personnalisées, supprimez ou mettez en commentaire l'appel à
SDCARD_RESET_FILE. - Si vous devez vraiment réinitialiser l'état du fichier de la carte SD, effectuez-le manuellement après la fin de l'impression, ne le placez pas dans le processus d'impression.
- Si vous utilisez la macro
PRINT_START, confirmez qu'elle n'appelle pas cette commande.