メインコンテンツにスキップ

設定関連エラー

このページでは、設定セクションの競合、パラメータのスペルミス、include ファイル、SAVE_CONFIG に関連する問題をまとめています。設定を変更した後は、まず klippy.log の最初の設定エラーを確認し、その後1つずつ処理してください。

homing override method always homes X and Y before homing Z

エラーメッセージ: 安全なZホーミングとホーミングオーバーライド設定の競合。

Loading...

エラーの原因: [safe_z_home][homing_override] の両方が設定されているため、Klipperはどちらのホーミングロジックを使用すべきか判断できません。

解決方法:

  1. 設定ファイル内で [safe_z_home][homing_override] を検索します。
  2. マシンの実際のホーミングロジックに基づいて、どちらか一方のみを残します。
  3. 保存してKlipperを再起動します。

関連設定の参考: ホーミングと方向調整ガイドホーミングオーバーライド設定の参考

Option 'xxx' is not valid in section 'yyy'

エラーメッセージ: Option 'xxx' is not valid in section 'yyy'、指定された設定セクション内に認識されないオプション名が存在します。

よくある原因:

  • オプション名のスペルミス。例: sensor_pinsensor_ping になっている。
  • 他の設定セクションのオプションを誤って現在のセクションに貼り付けた。例: [probe] のオプションを [stepper_z] に書き込んだ。
  • Klipperのバージョンアップ後、以前のバージョンでサポートされていたオプションが削除またはリネームされた。
  • 実際のパラメータではないコメント内容を使用した。例: default_parameter_z

解決方法:

  1. エラーで指摘されている設定セクションとオプション名を注意深く確認し、スペルを確認します。
  2. Klipper設定リファレンスドキュメント を参照して、そのオプションがどの設定セクションに属するか確認します。
  3. 最近Klipperをアップグレードした場合は、設定変更履歴 を確認してオプションに変更がないか確認します。
  4. 無効なオプションを削除するか、正しい設定セクションに移動します。

関連設定の参考: 設定変更の説明

Section 'xxx' is not a valid config section

エラーメッセージ: Section 'xxx' is not a valid config sectionUnknown config object、または特定の設定セクションをKlipperが認識できません。

よくある原因:

  • 設定セクション名のスペルミス。例: [bed_mesh][bedmesh] になっている。
  • 現在のKlipperバージョンがその設定セクションをサポートしていない、またはアップデート/ダウングレード後に設定形式が互換性を持たない。
  • サードパーティ製プラグインの設定をコピーしたが、対応するプラグイン、拡張モジュール、またはKlipperブランチがインストールされていない。
  • include ファイルに、他のマシンや他のマザーボード用の設定セクションが残っている。

解決方法:

  1. エラー内の設定セクション名に基づいて、printer.cfg とすべての include ファイル内で対応するセクションを特定します。
  2. スペルがKlipper設定リファレンスと一致しているか確認します。設定セクション名に日本語の括弧や全角記号を使用しないでください。
  3. その設定がサードパーティ製プラグインやカスタムマクロパッケージからのものである場合、対応するプラグインがインストールされ、現在のKlipperバージョンと互換性があることを確認します。
  4. そのセクションの用途が不明な場合は、まずその設定セクションをコメントアウトして再起動テストを行い、その後1つずつ復元します。

関連設定の参考: 設定変更の説明

Unable to open config file / Include file does not exist

エラーメッセージ: Unable to open config file /home/xxx/printer_data/config/printer.cfg または Include file 'xxx.cfg' does not exist

よくある原因:

  • printer.cfg ファイルのパスが間違っている、またはファイルが誤って削除された。
  • [include] が参照するサブ設定ファイルが存在しない、またはファイル名が一致しない。
  • KIAUHなどのインストールツールが [include] 参照を自動生成したが、対応する cfg ファイルがインストールされていない。
  • 権限の問題によりKlipperが設定ファイルを読み取れない。

解決方法:

  1. printer.cfg がKlipper設定ディレクトリに存在するか確認します。通常は ~/printer_data/config/printer.cfg です。
  2. すべての [include xxx.cfg] 行を確認し、参照されているファイルが実際に存在することを確認します。
  3. fluidd.cfg または mainsail.cfg がない場合は、対応するWebインターフェースのインストールドキュメントを参照して設定を補完します。
  4. 設定ファイルの権限が正しいことを確認します: ls -la ~/printer_data/config/

Fluidd / Mainsail 基本設定の欠落

エラーメッセージ: Fluidd または Mainsail が基本設定の欠落を通知します。一般的なキーワードは以下の通りです:

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

Fluidd の通知例:

Loading...

Mainsail の通知例:

Loading...

よくある原因:

  • printer.cfg[include fluidd.cfg] または [include mainsail.cfg] が有効になっていない。
  • 設定ディレクトリに fluidd.cfg / mainsail.cfg がない、または include ファイル名が間違っている。
  • 手動設定時に [virtual_sdcard][pause_resume][display_status] を書き忘れた。
  • CANCEL_PRINT マクロが定義されていない、またはマクロファイルが include されていない。

解決方法:

  1. デフォルトのフロントエンド設定ファイルを優先的に使用する必要があります。一般ユーザーが手動でいくつかの設定セクションを補って通知を回避することは推奨されません。デフォルトの fluidd.cfg / mainsail.cfg には、仮想SDカード、一時停止・再開、表示状態、キャンセル印刷マクロなど、フロントエンドが要求する基本設定が同時に含まれています。

  2. printer.cfg の上部に、使用中のフロントエンドに対応する include が含まれているか確認します:

    [include fluidd.cfg]

    または:

    [include mainsail.cfg]
  3. FLYプリセットシステムまたは公式リファレンス設定を使用している場合は、fluidd.cfg / mainsail.cfg ファイルが ~/printer_data/config/ ディレクトリに存在することを確認します。

  4. 対応するファイルが存在しない場合は、フロントエンドのデフォルト設定ファイルを再補充するか、Fluidd初期設定説明 を参照してください。

  5. デフォルトのフロントエンド設定ファイルを有効にした後、一時停止・再開・キャンセル印刷の位置やリトラクトパラメータを変更する必要がある場合は、一時停止とキャンセル印刷のカスタム位置 に従って _CLIENT_VARIABLE を追加してください。デフォルトの CANCEL_PRINT / PAUSE / RESUME マクロを直接コピーしたり書き換えたりしないでください。

  6. カスタムシステムを保守しており、フロントエンドのマクロ依存関係を明確に理解している場合のみ、手動で基本セクションを補完することを検討してください。この方法は一般ユーザーには推奨されません。少なくとも以下を含める必要があります:

    [virtual_sdcard]
    path: ~/printer_data/gcodes
    on_error_gcode: CANCEL_PRINT

    [pause_resume]

    [display_status]

    また、使用可能な [gcode_macro CANCEL_PRINT] も提供する必要があります。そうしないと、フロントエンドは引き続き CANCEL_PRINT macro not found in configuration と通知します。

  7. 設定を保存したら RESTART を実行します。それでも欠落の通知が続く場合は、すべての include ファイルが実際にKlipperによって読み込まれているか確認を続けてください。

フロントエンドマクロの使用方法: 一時停止とキャンセル印刷のカスタム位置 マクロ設定の参考: マクロ紹介

Unable to parse option / option must be specified

エラーメッセージ: Unable to parse option 'xxx' in section 'yyy'Option 'xxx' in section 'yyy' must be specified、または must have minimum/maximummust be above/belowよくある原因

  • 必須パラメータの欠落、例:[extruder]step_pindir_pinheater_pinsensor_type がない。
  • パラメータ形式の誤り、例:数値が必要なのに文字列、座標リストが必要なのにカンマがない。
  • パラメータ値が Klipper の許容範囲外、例:run_currentmax_tempposition_max の設定が不適切。
  • 設定のコピー時に中国語の句読点、全角記号、または不可視文字が含まれている。

解決方法

  1. エラーメッセージ内の設定セクションとパラメータ名に基づき、対応する .cfg ファイルに戻って項目ごとに確認する。
  2. 数値、座標、リストのパラメータについて、例と形式が一致しているか確認する(例:mesh_min: 20, 20)。
  3. must be above/belowminimum/maximum の場合、まず公式サンプルやマザーボードのチュートリアル推奨値に戻す。
  4. 保存後 RESTART を実行し、それでも失敗する場合は klippy.log の最初の設定エラーを確認する。

関連設定参照:設定変更の説明

Unknown pin chip name / Pin is not a valid pin name / pin used multiple times

エラーメッセージ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

よくある原因

  • 複数 MCU 設定でピン接頭辞の記述が誤っている。例:toolboard:PB0 と書くべきところを、存在しない MCU 名にしている。
  • MCU ID(canbus_uuid または serial)の設定が誤っているため、ピンが誤ったデバイスにマッピングされ、そのデバイスに対応するピンが存在しない。
  • ピン名のスペルミス、またはマザーボードのチュートリアルから別のマザーボードへピンをそのままコピーした。
  • 同じ物理ピンが複数の機能で重複使用されている。例:ファン、ヒーター、リミットスイッチが同じピンを使用。
  • ピンの反転 !、プルアップ ^、プルダウン ~ の記述位置が誤っている。

解決方法

  1. [mcu xxx] の名前がピン接頭辞と完全に一致しているか、大文字小文字も含めて確認する。
  2. [mcu xxx] セクションの canbus_uuid または serial が実際のデバイスと一致しているか確認する(ls /dev/serial/by-id/ または python3 -c "import can; ..." で確認可能)。
  3. マザーボードのピン配置図と照合し、各 pin:step_pin:dir_pin:heater_pin: が現在のマザーボードに属するものかを確認する。
  4. すべての include ファイル内でエラーのピンを検索し、重複使用項目を削除または変更する。
  5. ピン修飾子はピン名の前に記述する。例:^PB7!PC13mcu2:^PB7

関連設定参照:設定変更の説明ファン参照設定

gcode command XXX already registered

エラーメッセージError: gcode command XXX already registered

エラー原因:異なる2つのマクロまたはシステムモジュールが同じ G-code コマンド名を登録している。例:2つのマクロが両方とも [gcode_macro NEXT] を定義している。

よくあるケース

  • ユーザー定義マクロが Klipper のシステムモジュールやサードパーティ設定と競合している。
  • 複数の [gcode_macro M600] が定義されている。

解決方法

  1. printer.cfg およびすべての [include] ファイル内で重複定義を検索する。
  2. 競合する [gcode_macro] を削除またはリネームする。
  3. [homing_override][gcode_macro PAUSE][gcode_macro RESUME][gcode_macro CANCEL_PRINT] などの一般的なマクロを確認する。

関連設定参照:マクロ紹介

Unknown command:"XXX"

エラーメッセージ:コンソールまたは klippy.logUnknown 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" などが表示される。

よくある原因

  • スライサーの開始・終了 G-code が Klipper に存在しないマクロを呼び出している。例:スライサーが PRINT_START を送信するが、設定には [gcode_macro START_PRINT] のみ定義されている。
  • Marlin から移行したコマンドを使用しており、Klipper がデフォルトでサポートしていないか、マクロによる互換対応が必要。
  • オブジェクト除外機能を有効にしているが、スライサー、Moonraker、または Klipper の設定が不完全で、EXCLUDE_OBJECT_DEFINEEXCLUDE_OBJECT_STARTEXCLUDE_OBJECT_END などのコマンドが認識されない。
  • ファンに [fan_generic] または [output_pin] を使用しているが、スライサーがデフォルトの M106 / M107 を送信し続けている。
  • サードパーティのマクロパッケージ使用時に include ファイルが不足しているか、マクロ名がスライサーに入力した名前と一致しない。

解決方法

  1. printer.cfg およびすべての include ファイル内でエラーのコマンド名を検索し、対応する [gcode_macro XXX] が存在するか確認する。
  2. スライサー内の開始、終了、フィラメント交換、ファン、オブジェクト除外コマンド名を Klipper のマクロと一致させる。
  3. Marlin コマンドの場合は、不要なコマンドを優先的に削除する。どうしても互換性が必要な場合は、明確な Klipper マクロを追加する。
  4. オブジェクト除外関連のエラーでは、スライサーがオブジェクトラベルを出力しているか、Moonraker がオブジェクト処理を有効にしているか、Klipper に [exclude_object] があるかを同時に確認する。
  5. ファンコマンドのエラー時は、[fan] を使用すべきか、[fan_generic] / [output_pin] 用の一致する制御マクロを追加すべきかを確認する。

EXCLUDE_OBJECT_DEFINE / START / END

エラー意味EXCLUDE_OBJECT_DEFINE は印刷オブジェクトを定義し、EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END は現在の G-code がどのオブジェクトに属するかをマークします。これにより、フロントエンドはマルチオブジェクト印刷時に指定オブジェクトを表示・除外できます。klippy.logUnknown command:"EXCLUDE_OBJECT_DEFINE"Unknown command:"EXCLUDE_OBJECT_START"Unknown command:"EXCLUDE_OBJECT_END" が繰り返し表示される場合、G-code にオブジェクト除外コマンドが含まれているのに、Klipper の現在の設定がこの種のコマンドを正しく受け取っていないことを意味します。

優先確認事項

  1. printer.cfg または include されている設定ファイル内に以下が存在するか確認:
[exclude_object]
  1. 変更後 RESTART を実行し、再度 G-code ファイルをアップロードしてテストする。既にアップロード済みの古いファイルは最新の設定で処理されていない可能性があるため、再スライスまたは再アップロードを推奨。
  2. Moonraker の設定がオブジェクト処理を有効にしているか確認。一般的な設定場所は moonraker.conf
[file_manager]
enable_object_processing: True
  1. スライサーがオブジェクトラベル / 除外オブジェクト関連の出力を有効にしているか確認。スライサーによって名称は異なるが、一般的な兆候として G-code 内で EXCLUDE_OBJECT_DEFINEEXCLUDE_OBJECT_STARTEXCLUDE_OBJECT_END またはオブジェクト名を検索できること。
  2. 一時的に印刷を完了させたいだけで、オブジェクト除外機能が不要な場合は、スライサーでオブジェクト除外関連の出力をオフにして再スライスする。ファイル内の一部のオブジェクトコマンドだけを削除しないこと。フロントエンドのオブジェクトリストが異常になる可能性がある。

判断の方向性

  • EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END のみエラー:優先的に [exclude_object] を追加し、Klipper を再起動。
  • フロントエンドにオブジェクトリストがないが、Klipper が Unknown command を報告しなくなった場合:優先的に Moonraker のオブジェクト処理と G-code の再アップロードを確認。
  • ファイル内にオブジェクト関連コマンドがまったく見つからない場合:スライサーがオブジェクトラベルを出力していないため、スライサー側で有効にする必要がある。

関連設定参照:マクロ紹介設定変更の説明

Error evaluating 'gcode_macro XXX:gcode'

エラーメッセージ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よくある原因

  • スライサーがマクロに必要なパラメータを渡していない。例えば、マクロが params.HOTEND を読み取る場合、スライサーが HOTEND= を渡していない。
  • パラメータ名が一致しない。例えば、マクロが BED / HOTEND を必要とする場合、スライサーが実際に渡すのは BED_TEMP / EXTRUDER_TEMP である。
  • マクロが存在しないオブジェクトを参照している。例えば、設定に [heater_bed] がないのに、マクロが printer.heater_bed を読み取る。
  • マクロで Jinja2 構文を使用しているが、括弧、引用符、フィルター、デフォルト値の記述が誤っている。
  • マクロ内部で実行されるコマンドが先にエラーを出し、外側では Error evaluating とだけ表示される。

解決方法

  1. klippy.logError evaluating の下にある完全な Traceback を確認し、どの変数またはコマンドでエラーが発生しているかを特定する。
  2. スライサーの開始 G-code と照合し、渡されるパラメータ名がマクロ内の params.xxx と完全に一致しているか、大文字小文字も含めて確認する。
  3. オプションパラメータにデフォルト値を設定する。例えば、params.BED|default(60)|float のようにして、パラメータが空の場合のエラーを防ぐ。
  4. マクロで使用されている printer.xxx オブジェクトを検索し、設定に対応するモジュールが存在するか確認する。
  5. マクロがサードパーティの設定パッケージからのものである場合、依存する include ファイルと基本マクロがすべて読み込まれているか確認する。

関連設定の参考:マクロ紹介

SAVE_CONFIG の失敗または設定の競合

エラーメッセージSAVE_CONFIG 実行後に Unable to write configOption conflictCannot save config が表示される、または再起動後に Can't read autosave from config file - modifications after header が表示される。

よくある原因

  • printer.cfg ファイルの権限が不足しており、Klipper プロセスが書き込めない。sudo を使用して設定ファイルを編集した後によく発生する。
  • 自動保存領域(#*# マークブロック)内の設定項目が、手動の [include] ファイル内の同じオプションと競合している。
  • MCU がシャットダウン状態であり、SAVE_CONFIG が新しい設定を正常に送信できない。
  • printer.cfg ファイルの末尾に構文エラーがある、またはファイルが切り詰められており、自動保存領域の書き込みに失敗する。
  • #*# <---------------------- SAVE_CONFIG ----------------------> マーカーの後に、通常の設定、コメント、その他の非 #*# 行が手動で追加され、Klipper が自動保存領域の読み取りを拒否する。
  • 自動保存領域のタイトルまたは #*# 行が、手動編集、設定のマージ、ファイル同期の際に破損した。
  • 複数の include ファイルで、PID、Z オフセットなど、SAVE_CONFIG によって自動保存されるべきでないパラメータが重複して定義されている。

解決方法

  1. 設定ファイルの権限を確認する:

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

    所有者が現在のユーザーでない場合は、以下を実行する:sudo chown $USER:$USER ~/printer_data/config/printer.cfg

  2. SAVE_CONFIG 実行後にプリンターが起動しない場合、printer.cfg の下部にある #*# 自動保存領域を確認する。

  3. modifications after header が表示された場合、まず printer.cfg をバックアップし、次に自動保存マーカーを検索する:

    grep -nE 'SAVE_CONFIG|DO NOT EDIT|^#\*#' ~/printer_data/config/printer.cfg
  4. 手動で管理する必要があるすべての設定を、SAVE_CONFIG タイトルの前に移動する。タイトル以降には、Klipper が生成した #*# 行のみを残すこと。自動保存領域全体を直接削除しないこと。PID、Z オフセット、ベッドメッシュなどの保存済みキャリブレーション値が失われる可能性がある。

  5. 自動保存領域がすでに破損している場合、またはタイトルが複数存在する場合、同じディレクトリ内の最新かつ動作が確認されている printer-*.cfg バックアップから復元し、必要なキャリブレーションを再実行する。複数の自動保存領域を直接連結しないこと。

  6. 同じオプションが include ファイルにも存在する場合、自動保存領域の重複項目を削除するか、include ファイルで一元管理するように変更する。

  7. MCU がシャットダウン状態の場合、最初に発生した実際のエラーに対処し、FIRMWARE_RESTART を実行してから、SAVE_CONFIG を再実行する。

  8. 権限が正常でも書き込めない場合、ディスク容量を確認する:df -h ~/printer_data/

関連設定の参考:設定変更の説明

SDCARD_RESET_FILE cannot be run from the sdcard

エラーメッセージSDCARD_RESET_FILE cannot be run from the sdcard

よくある原因

  • SD カードプリント中に SDCARD_RESET_FILE コマンドを実行した。このコマンドは SD カードプリント中は呼び出しが許可されていない。
  • スライサーの開始 G-code またはマクロに SDCARD_RESET_FILE が誤って含まれている。

解決方法

  1. スライサーの開始 G-code とカスタムマクロを確認し、SDCARD_RESET_FILE の呼び出しを削除またはコメントアウトする。
  2. SD カードのファイル状態をリセットする必要がある場合、プリント終了後に手動で実行し、プリントフロー内には配置しないこと。
  3. PRINT_START マクロを使用している場合、その中でこのコマンドが呼び出されていないか確認する。
Loading...