加速度計の使用
開始する前にプリンターを完全にシャットダウンし、電源供給を切り離してください。通電状態でケーブルを抜き差ししたり、インターフェースの配線順序を整えたり、端子に触れたりしないでください。
- Mini Padは、オンボードインターフェースを使用して加速度計を直接接続するか、ツールボードなどに内蔵された加速度計を使用できます。
オンボードインターフェースによる外部加速度計の接続
- 参考設定
[mcu host]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: host:None
spi_bus: spidev1.0
[resonance_tester]
accel_chip: adxl345
#accel_chip_y: adxl345 bed
probe_points:
100, 100, 20 # 例
加速度計の使用
加速度計テストと校正
依存パッケージのインストール
- デバイスがすでに FlyOS-FAST システム を実行している場合、必要な依存関係はシステムにプリインストールされており、この手順は省略可能です。
- FLY 以外の上位機 を使用する場合は、必ず以下のインストール操作を完了してください。
- 接続後は MobaXterm、PuTTY などの SSH ツールを使用して操作することをお勧めします。
- 本チュートリアルは Raspberry Pi に基づいており、他のプラットフォームは参考用です。
インストール手順
- 以下のコマンドを順に実行して依存パッケージをインストールします。
- インストール時間は CPU の性能とネットワーク状況によって異なり、通常 10〜20分 かかります。インストールが完了するまでお待ちください。
- デバイスのメモリ (RAM) が小さすぎる場合、インストールに失敗する可能性があります。
ステップ1:システム依存パッケージのインストール
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev
ステップ2:Klipper 仮想環境依存パッケージのインストール
~/klippy-env/bin/pip install matplotlib numpy
加速度計テスト
前提条件
- プリンターが ホーミング (Homing) 操作を実行していること。
- Klipper 設定ファイルで加速度計が正しく有効化されていること。
テストコマンド
Klipper コンソールで以下のコマンドを入力します:
ACCELEROMETER_QUERY
複数の加速度計が接続されている場合は、チップを指定してテストできます:
ACCELEROMETER_QUERY CHIP=<ADXLチップ名>
<ADXLチップ名> を実際の加速度計識別子(例:adxl345)に置き換えてください。
一部の旧バージョンの Klipper では、加速度データを取得するために ACCELEROMETER_QUERY を2回実行する必要があります。
よくある問題の対処
加速度計の配線を確認、抜き差し、または交換する前に、プリンターの電源を完全に切り、電源供給を切断してください。通電状態で ADXL/LIS2DW/MPU/ICM モジュールを抜き差ししたり、露出したピンに触れたりしないでください。
- 初回実行の失敗:一部の Klipper バージョンではコマンド認識に遅延が生じる可能性があります。初回実行でデータが返されない場合は、同じコマンドをもう一度実行してください。
- コマンドが認識されない:複数回実行しても不明なコマンドと表示される場合、Klipper のバージョンが古すぎる可能性があります。以下をお勧めします:
- Klipper を最新バージョンに更新する
- または最新版システム(FlyOS-FAST 最新バージョンなど)を再フラッシュする
- Invalid adxl345 id:
Invalid adxl345 id (got xx vs e5)と表示された場合、まずすぐにACCELEROMETER_QUERYをもう一度実行してください。それでもエラーが続く場合は、市販の加速度計配線、変換基板、またはセンサーモジュールを交換してクロステストを優先的に行ってください。お客様自身による追加ハンダ付けやハンダ箇所の修理は推奨されません。 - Invalid lis2dw / mpu / icm id:LIS2DW、MPU9250、ICM20948 などのセンサーを使用する場合、設定セクション名、通信バス、チップモデルが実際のハードウェアと一致していることを確認してください。
- Unable to obtain response / timeout:通常、上位機と加速度計 MCU 間の通信異常を示します。USB/CAN 接続、
[mcu]ID、cs_pin、spi_bus、またはi2c_busを確認してください。
BatchBulkHelper / spi_transfer_response
エラーメッセージ:ACCELEROMETER_QUERY、TEST_RESONANCES、または SHAPER_CALIBRATE の実行時に表示される場合:
BatchBulkHelper start callback error
BatchBulkHelper stop callback error
Unable to obtain 'spi_transfer_response' response
エラーの性質:spi_transfer_response は、Klipper が SPI リクエストの応答を受信しなかったことを示しますが、これが根本原因であるとは限りません。最近のログ事例では、MCU が先に Timer too close によりシャットダウンし、その後 ADXL のバッチ収集で SPI 応答を取得できないというエラーが発生しました。この場合、先に前述のシャットダウンに対処し、加速度計の故障と直接判断しないでください。
調査方法:
- 完全な
klippy.log内で最初のBatchBulkHelperを見つけ、その上でより早いTimer too close、Lost communication with MCU、MCU shutdown、またはSerial connection closedを検索します。 - より早いシャットダウンが存在する場合、まず システムとタイムアウトエラー に従って根本原因を処理します。その後の
spi_transfer_responseは通常、接続が回復すると消えます。 - より早いシャットダウンがなく、
ACCELEROMETER_QUERYを実行するたびにすぐにエラーが発生する場合は、加速度計の[mcu]、cs_pin、spi_bus、およびチップタイプを確認してください。
加速度計の配線、変換基板、またはモジュールを抜き差しまたは交換する前に、プリンターの電源を完全に切り、電源供給を切断してください。通電状態で SPI/I2C 配線を抜き差ししたり、露出したピンに触れたりしないでください。
- 電源を切った後、市販の配線、変換基板、またはセンサーモジュールを交換してクロステストを実施してください。一般ユーザーによる追加ハンダ付けやジャンパー線の使用は推奨されません。
- 共振テストの開始時または終了時のみ発生する場合は、カメラ、画面、その他の高負荷サービスを一時的に停止して再テストし、完全なログをさらなる分析用に保存してください。
結果の判断
- 正常な出力:連続したデータストリームが返される場合(下図参照)、加速度計は正常に動作しており、共振補正測定を実行できます。
- エラー出力:タイムアウト、データなし、または通信エラーが表示された場合は、以下を順に確認してください:
- 電源を切った後、加速度計の配線がしっかりと接続されているか確認
- 設定ファイル内のセンサー設定と SPI が正しいか確認
- 市販の配線、変換基板、またはセンサーモジュールの交換を優先して、電源/通信の問題を切り分け
共振テストの一般的なエラー
| エラーメッセージ | 一般的な原因 | 対処方法 |
|---|---|---|
No data received from accelerometer | 加速度計が未接続、SPI/I2C 配線順序の誤り、供給電力異常 | まず ACCELEROMETER_QUERY を実行して通信が正常か確認し、再テストする |
Insufficient axis data for shaper calibration | 動作範囲が小さすぎる、加速度が低すぎる、センサー読み取りノイズが大きすぎる | テスト範囲または accel_per_hz を増やし、加速度計がしっかり固定されているか確認する |
Frequency range too narrow | ベルトが緩すぎる、機械的な共振周波数が測定範囲外 | ベルト張力、機械構造の締め付けを確認。必要に応じて max_freq を下げるか、accel_per_hz を上げる |
| 共振グラフがすべてノイズで、明確なピークがない | センサーがしっかり固定されていない、ファン振動の干渉、配線の揺れ | 電源を切り、センサーを再固定する。テスト中はファンを停止し、信号線をモーター線から離して配線する |
SHAPER_CALIBRATE 実行後に出力がない、またはエラーで終了 | Python 依存関係(numpy/matplotlib)の欠落、メモリ不足 | このドキュメント冒頭の依存関係インストール手順に従って追加インストール。大きな共振グラフ計算にはより多くのメモリが必要な場合がある |
Cannot test Z axis together with other axes | TEST_RESONANCES で Z 軸と X/Y 軸が同時に指定された | Z 軸は単独でテストする必要があり、X/Y と混合しない |
Invalid POINT parameter | POINT= 座標形式の誤り、または x,y,z の3つの値が欠落 | POINT=100,100,20 のような形式で記入する |
Invalid NAME parameter | 出力名が空、特殊文字を含む、またはコマンド要件と一致しない | 英語、数字、アンダースコア、またはハイフンを使用して命名する |
No accelerometer measurements found | テスト中に有効な加速度データが収集されなかった | まず ACCELEROMETER_QUERY を実行し、センサーの固定と通信を確認する |
Unsupported output | OUTPUT= パラメータにサポートされていないタイプが指定された | Klipper がサポートする出力タイプに従って記入。通常は resonances を使用 |
ACCELEROMETER_QUERY が正常でも共振テストが常に失敗する場合は、以下の順序で調査を優先してください:
- 電源を切り、加速度計の表面が被測定部品に密着していること、緩衝材や両面テープの緩みがないことを確認。
- テスト中はモデル冷却ファン、ホットエンドファン、チャンバーファンを一時的に停止。
- テスト中に配線がセンサーを引っ張ったり、可動軸に引っかかったりしないことを確認。
- テスト振幅を増やす:
[resonance_tester]でaccel_per_hzをデフォルトの75から100〜150へ段階的に引き上げる。 - ツールボード(USB/CAN)上の加速度計を使用する場合、通信線がモーター線やヒートベッド線に近づかないことを確認。
加速度計の方向設定
加速度計の取り付け方向は、共振測定結果に影響を与えます。axes_map の設定が実際の取り付け方向と一致しない場合、TEST_RESONANCES や SHAPER_CALIBRATE は誤った周波数応答を出力し、Input Shaper 補正が機能しなくなります。
axes_map とは
axes_map は、加速度計自身の座標軸をプリンターの X/Y/Z 座標にマッピングするために使用します。ツールボード、ヘッドシェル、加速度計モジュールによって取り付け方向が異なる場合があるため、実際の取り付け方法に応じて設定する必要があります。
axes_map を記入しない場合、Klipper はデフォルトで x,y,z を使用します。つまり、加速度計の X/Y/Z がそのままプリンターの X/Y/Z に対応します。
[adxl345]
cs_pin: toolboard:PB12
spi_bus: spi1
axes_map: x,y,z # 実際の取り付け方向に合わせて調整
axes_map では、軸の順序入れ替えと反転(軸の前に - を付加)がサポートされています:
| 取り付け状況 | 設定例 |
|---|---|
| 加速度計の X/Y がプリンターと一致 | axes_map: x,y,z |
| 加速度計が 90° 回転し、X/Y が入れ替わる | axes_map: y,x,z |
| 加速度計が反転され、Z 軸が逆方向 | axes_map: x,y,-z |
| 加速度計が側面に取り付けられ、Y/Z が入れ替わる | axes_map: x,z,y |
[adxl345]、[lis2dw]、[mpu9250]、[bmi160]、[icm20948] などの加速度計設定セクションは、すべて同じ axes_map ルールを使用します。
ACCELEROMETER_QUERY による方向の初期判断
静止状態では、加速度計は約 1g の重力加速度を検出します。どの軸が約 ±1g を示すかを観察することで、加速度計の向きを初期判断できます:
ACCELEROMETER_QUERYを実行し、各軸の読み取り値を記録します。- プリンター(または加速度計)を X、Y、Z 方向にそれぞれ傾け、どの軸の読み取り値が最も変化するかを観察します。
- プリンターを X 方向に傾けたときに加速度計の Y 軸の読み取り値が最も変化する場合、X/Y マッピングの交換が必要です。
- ある軸の読み取り値の符号が逆の場合(正方向に傾けたときに負の値になる場合など)、該当する軸の前に
-を追加します。
Shake&Tune による方向の検証
以下の方法には、Klippain Shake&Tune プラグインのインストールが必要です。FlyOS-Fast v1.3.5 以降にはプリインストールされています。
Shake&Tune が生成するスペクトログラムで、axes_map が正しいかどうかを視覚的に検証できます:
-
X 軸と Y 軸の共振テストをそれぞれ実行します:
TEST_RESONANCES AXIS=XTEST_RESONANCES AXIS=Y -
生成されたスペクトログラムを確認します:
- 方向が正しい場合: X 軸テストのスペクトログラムには明確な X 方向の共振ピークが表示され、Y 軸テストには明確な Y 方向の共振ピークが表示されます。両者の周波数は通常異なります。
- 方向が誤っている場合: X 軸テストと Y 軸テストのスペクトログラムがほぼ同じ場合、または共振ピークの位置が異常に近い場合は、
axes_mapの調整が必要な可能性があります。
-
axes_mapを修正した後、RESTARTを実行し、テストを再実行して結果を比較します。
axes_map の設定ミスは通信エラーを引き起こさず、ACCELEROMETER_QUERY は正常にデータを返し続けます。共振測定結果のみが異常になるため、見落とされがちです。
axes_map の詳細なトラブルシューティング: 共振補正と圧力アドバンス設定の問題における axes_map の章を参照
加速度計キャリブレーション
システムに Klippain Shake&Tune プラグインがインストールされている場合、TEST_RESONANCES コマンドは自動的にスペクトルチャートとベルト比較グラフを生成し、内蔵の SHAPER_CALIBRATE よりも直感的な視覚分析を提供します。FlyOS-Fast v1.3.5 以降のバージョンにはこのプラグインがプリインストールされています。
キャリブレーション手順
-
プリンターが ホームポジション にあることを確認します。
-
コンソールに以下のコマンドを入力し、X軸とY軸の自動キャリブレーションを開始します:
SHAPER_CALIBRATE -
キャリブレーション完了後、設定を保存します:
SAVE_CONFIG
単軸キャリブレーション
単一の軸のみをキャリブレーションする場合は、以下を使用します:
SHAPER_CALIBRATE AXIS=X
または、X を Y に置き換えます。
キャリブレーション中、プリンターが激しく振動する可能性があります。振動が大きすぎる場合は、すぐに緊急停止ボタンを押すか、M112 コマンドを送信して緊急停止してください。
振動強度の調整
テスト中の振動が強すぎる場合は、accel_per_hz パラメータ値(デフォルトは 75)を適宜低減できます:
[resonance_tester]
accel_per_hz: 50
設定と調整に関する問題:加速度計のハードウェアは正常であるが共振補正を有効にしても効果が得られない場合、
shaper_freqの設定が不適切な場合、Pressure Advance と Input Shaper の競合などの問題については、共振補正と圧力先行設定の問題 を参照してください。
説明:上記の手順は、Klipper ベースの 3D プリンターの共振補正設定の大部分に適用されます。実際のハードウェアとシステム環境に応じて調整してください。