Aller au contenu principal

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.

Loading...

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 :

  1. Recherchez [safe_z_home] et [homing_override] dans le fichier de configuration.
  2. Ne conservez qu'une seule de ces sections en fonction de la logique de homing réelle de la machine.
  3. 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 écrit sensor_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 :

  1. Vérifiez soigneusement la section et le nom de l'option signalés dans l'erreur pour confirmer l'orthographe.
  2. Consultez la documentation de référence de configuration Klipper pour confirmer à quelle section cette option appartient.
  3. Si vous avez récemment mis à niveau Klipper, consultez le journal des changements de configuration pour vérifier si l'option a changé.
  4. 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 :

  1. En fonction du nom de section dans l'erreur, localisez la section correspondante dans printer.cfg et tous les fichiers include.
  2. 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.
  3. 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.
  4. 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.cfg est 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 :

  1. Confirmez que printer.cfg existe dans le répertoire de configuration Klipper, généralement ~/printer_data/config/printer.cfg.
  2. Vérifiez toutes les lignes [include xxx.cfg] pour confirmer que les fichiers référencés existent réellement.
  3. Si fluidd.cfg ou mainsail.cfg manque, référez-vous à la documentation d'installation de l'interface Web correspondante pour ajouter la configuration.
  4. 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 :

Loading...

Exemple de message Mainsail :

Loading...

Causes courantes :

  • printer.cfg n'active pas [include fluidd.cfg] ou [include mainsail.cfg].
  • fluidd.cfg / mainsail.cfg est 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_PRINT n'est pas définie, ou le fichier de macros n'est pas inclus.

Solution :

  1. 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.cfg par 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.

  2. Confirmez que printer.cfg contient l'include correspondant au frontend utilisé en haut du fichier :

    [include fluidd.cfg]

    ou :

    [include mainsail.cfg]
  3. Si vous utilisez le système préinstallé FLY ou la configuration de référence officielle, confirmez que le fichier fluidd.cfg / mainsail.cfg existe dans le répertoire ~/printer_data/config/.

  4. 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.

  5. 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_VARIABLE selon Positions personnalisées de pause et d'annulation d'impression ; ne copiez pas ou ne modifiez pas directement les macros CANCEL_PRINT / PAUSE / RESUME par défaut.

  6. 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/gcodes
    on_error_gcode: CANCEL_PRINT

    [pause_resume]

    [display_status]

    Elle doit également fournir un [gcode_macro CANCEL_PRINT] fonctionnel, sinon le frontend affichera toujours CANCEL_PRINT macro not found in configuration.

  7. 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] sans step_pin, dir_pin, heater_pin ou sensor_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_max mal configurés.
  • Copie de configuration contenant des signes de ponctuation chinois, des symboles pleine largeur ou des caractères invisibles.

Solutions :

  1. En fonction du nom de la section et du paramètre indiqués dans l'erreur, vérifiez un par un dans le fichier .cfg correspondant.
  2. 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.
  3. Pour les erreurs must be above/below ou minimum/maximum, restaurez d'abord les valeurs recommandées par les exemples officiels ou le tutoriel de la carte mère.
  4. Après l'enregistrement, exécutez RESTART ; si l'échec persiste, consultez la première erreur de configuration dans klippy.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:PB0 est écrit alors que le nom du MCU n'existe pas.
  • L'ID du MCU (canbus_uuid ou serial) 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 :

  1. Vérifiez que le nom dans [mcu xxx] correspond exactement au préfixe de la broche, y compris la casse.
  2. Vérifiez que le canbus_uuid ou serial dans la section [mcu xxx] correspond bien à l'appareil réel (utilisez ls /dev/serial/by-id/ ou python3 -c "import can; ...").
  3. 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.
  4. Recherchez la broche en erreur dans tous les fichiers inclus et supprimez ou changez l'utilisation en double.
  5. 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 :

  1. Recherchez les définitions en double dans printer.cfg et tous les fichiers [include].
  2. Supprimez ou renommez le [gcode_macro] en conflit.
  3. 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_END non reconnues.
  • Le ventilateur utilise [fan_generic] ou [output_pin], mais le slicer envoie toujours les commandes par défaut M106 / 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 :

  1. Recherchez le nom de la commande dans printer.cfg et tous les fichiers inclus pour vérifier si un [gcode_macro XXX] correspondant existe.
  2. 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.
  3. Pour les commandes Marlin, supprimez d'abord les commandes inutiles ; si une compatibilité est réellement nécessaire, ajoutez une macro Klipper explicite.
  4. 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].
  5. 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 :

  1. Confirmez que dans printer.cfg ou dans un fichier inclus, la configuration suivante existe :
[exclude_object]
  1. 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.
  2. 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
  1. 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_END ou de noms d'objets dans le G-code.
  2. 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.HOTEND mais le slicer n'envoie pas HOTEND=.
  • Les noms de paramètres ne correspondent pas, par exemple la macro attend BED / HOTEND, alors que le slicer envoie BED_TEMP / EXTRUDER_TEMP.
  • La macro référence un objet inexistant, par exemple [heater_bed] absent de la configuration, mais la macro lit printer.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 :

  1. Consultez la trace complète sous Error evaluating dans klippy.log pour identifier la variable ou la commande en erreur.
  2. Comparez avec le G-code de démarrage du slicer pour vérifier que les noms de paramètres correspondent exactement à params.xxx dans la macro, y compris la casse.
  3. 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.
  4. Recherchez les objets printer.xxx utilisés dans la macro et vérifiez que le module correspondant existe dans la configuration.
  5. 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 avec sudo.
  • 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_CONFIG ne peut pas envoyer correctement la nouvelle configuration.
  • Erreur de syntaxe ou fichier printer.cfg tronqué à 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 :

  1. Vérifiez les permissions du fichier de configuration :

    ls -la ~/printer_data/config/printer.cfg

    Si le propriétaire n'est pas l'utilisateur actuel, exécutez : sudo chown $USER:$USER ~/printer_data/config/printer.cfg

  2. Si l'imprimante ne démarre pas après SAVE_CONFIG, ouvrez printer.cfg et consultez la zone de sauvegarde automatique #*# en bas du fichier.

  3. Si le message modifications after header apparaît, sauvegardez d'abord printer.cfg, puis recherchez le marqueur de sauvegarde automatique :

    grep -nE 'SAVE_CONFIG|DO NOT EDIT|^#\*#' ~/printer_data/config/printer.cfg
  4. 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.

  5. Si la zone de sauvegarde automatique est corrompue ou présente plusieurs titres, privilégiez la restauration depuis la sauvegarde printer-*.cfg la 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.

  6. 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.

  7. 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écutez SAVE_CONFIG.

  8. 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_FILE a é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 :

  1. Vérifiez le G-code de démarrage du slicer et les macros personnalisées, puis supprimez ou commentez l'appel SDCARD_RESET_FILE.
  2. 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.
  3. Si vous utilisez la macro PRINT_START, vérifiez qu'elle n'appelle pas cette commande.
Loading...