見出し画像

Klipperに加速度センサーの接続&共振測定によるInput Shaperの調整(USB版)

以前に"Orange Pi Zero2のKlipperに加速度センサーADXL345の接続&共振測定によるInput Shaperの調整をやってみた"という記事を書きましたが、最近USB接続版のADXL345が出てきたので早速使ってみました。
合わせて、より高精度でノイズも少ないLIS2DWのUSB接続版も入手しましたので、ご紹介します。
おかしい等のツッコミは優しくご指摘いただければ、修正していきたいと思いますのでよろしくお願いします。


■使用センサ&USBケーブル

どちらもAliExpressのMellow 3D Official Store で入手可能です。
どちらもRP2040のチップが搭載されKlipperファームウェアを焼くことにより、物理的には面倒な配線処理をせずにRaspberryPiとUSB接続するだけで、簡単に使用することが出来ます
ボードサイズも一般的なADXL345ボードと同等のサイズとなっています。

左からADXL345, USB版2LIS2DW, USB版ADXL345


◾️ADXL345:Mellow Fly-ADXL345 Accelerometer USB Board For Klipper
これは、ADXL345のUSB接続版です。
◾️LIS2DW:Mellow Fly-LIS2DW Accelerometer Board For Klipper
これは、LIS2DWのUSB接続版です。
※ADXL345と、LIS2DWの比較については、ネット上にたくさんの記事がアップされているので詳細はそちらをご参照ください。一言で言うとLIS2DWの方が高精度でノイズが少ないです(しかも安い)。
◾️USB-C to USB Micro-B ケーブル:Amazonベーシック USB Type Cケーブル 0.9m (タイプC - マイクロ2.0タイプB)
自分は小型プリンタ(Elk Micro)用に用意したため、Raspberry Pi Zero 2 Wと接続用となります。使用する環境に合わせて選択して下さい。

■結線

上記USBケーブルで、Raspberry Piとこのボードを接続するだけです

■設定

◾️◾️ADXL345&LIS2DW共通 Klipperファームウェアの書込み
詳細は、Mellowのサイト(ADXL345), Mellowのサイト(LIS2DW)をご参照ください。
KlipperのインストールされているRaspberry Pi にsshでログインし設定を行います。
まずは、お決まりのパッケージのアップデートと、Pythonのnumpyとmatplotlib、libatlas-base-devのインストールです。

sudo apt update
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev
~/klippy-env/bin/pip install matplotlib numpy

Klipperの下記情報を参考にファームウェアをコンパイルします
詳細は、Configure ADXL345 With Pi Pico をご参照ください。
下記コマンドを入力し、Klipper Firmware Configurattion画面を開きパラメータを設定します。

cd ~/klipper
make clean
make menuconfig
Klipper Firmware Configuration


ボード上の小さいボタンを押しながらUSB-Cケーブルをさすと、lsusbコマンドで、ID 2e8a:0003 Raspberry Pi RP2 Bootとして認識されます。
make flash FLASH_DEVICE=2e8a:0003 と入力して、コンパイル&ファームウェアをボードに書き込みます。

pi@mainsail:~/klipper $ lsusb
Bus 001 Device 005: ID 2e8a:0003 Raspberry Pi RP2 Boot
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@mainsail:~/klipper $ cd ~/klipper/
pi@mainsail:~/klipper $ make flash FLASH_DEVICE=2e8a:0003

ボードへの書き込み完了後、ls -l /dev/serial/by-id/と入力し、USBのIDを控えておく

pi@mainsail:~ $ ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Feb 19 23:44 usb-Klipper_rp2040_E6625887D387A532-if00 -> ../../ttyACM0
pi@mainsail:~ $ 

■■printer.cfgの編集

■■■ADXL345の場合
下記内容で"adxl.cfg"ファイルを作成する。
・serial: には、前章で控えたUSBのIDを記載
・axes_mapはボードの取り付け向きに合わせてxyzを記載(adxl345と違うので要注意)
・probe_pointsは、測定時のExtruderの位置を指定(ベッドの真ん中くらいで、高さを20mm程度が良いと思います)

USB版ADXL345のxyzの向きの記載
[mcu adxl]
serial: /dev/serial/by-id/usb-Klipper_rp2040_E6625887D387A532-if00

[adxl345]
cs_pin: adxl:gpio9
spi_software_sclk_pin: adxl:gpio10
spi_software_mosi_pin: adxl:gpio11
spi_software_miso_pin: adxl:gpio12
axes_map: x, -y, z

[resonance_tester]
accel_chip: adxl345
probe_points: 40, 40, 20  

あとは、printer.cfgにUSBケーブルを繋いで測定するときだけ下記記載をすれば良いです
※USBケーブル抜選時は、コメントアウトしておく必要があります

[include adxl.cfg] # Comment this out when you disconnect the accelerometer

■■■LIS2DWの場合
下記内容で"lis.cfg"ファイルを作成する。
・serial: には、前章で控えたUSBのIDを記載
・axes_mapはボードの取り付け向きに合わせてxyzを記載(adxl345と違うので要注意)
・probe_pointsは、測定時のExtruderの位置を指定(ベッドの真ん中くらいで、高さを20mm程度が良いと思います)

USB版LIS2DWのxyzの向きの記載
[mcu lis]
serial: /dev/serial/by-id/usb-Klipper_rp2040_E661D4500B7D8639-if00

[lis2dw]
cs_pin: lis:gpio9
spi_software_sclk_pin: lis:gpio10
spi_software_mosi_pin: lis:gpio11
spi_software_miso_pin: lis:gpio12
axes_map: -y, x, z

[resonance_tester]
accel_chip: lis2dw
probe_points: 40, 40, 20

あとは、printer.cfgにUSBケーブルを繋いで測定するときだけ下記記載をすれば良いです
※USBケーブル抜選時は、コメントアウトしておく必要があります

[include lis.cfg] # Comment this out when you disconnect the accelerometer

■動作テスト&自動キャリブレーション

■■動作テスト

mainsail等のコンソールで ACCELEROMETER_QUERY 実行すると下記のようにテストできます。

23:55 accelerometer values (x, y, z): 6809.894666, 1332.370696, 5898.935335
23:55 ACCELEROMETER_QUERY

■■自動キャリブレーション

軸単位での細かな測定方法については、klipperドキュメントをご参照ください。通常は、klipper が用意している自動キャリブレーションで十分と思いますので、ここでは自動キャリブレーションについて記載します。
mainsail等のコンソールでSHAPER_CALIBRATE コマンドを入力すると、自動的に、X,Yの順に測定を実施します。
完了後、SAVE_CONFIG コマンドでキャリブレーション結果をprinter.cfgに保存し反映してくれます。とってもお手軽です。

SHAPER_CALIBRATE

SAVE_CONFIG

◾️最後に

この設定により、大幅にリンギング(ゴースティング)が改善されると思います。
如何だったでしょう?最初、このUSB版のボードが出たとき面倒くさそうと思っていましたが、実際に使ってみるとあまりに設定が楽ちんで、これまでのADXL345ボードには戻れません。
(これまでのADXL345ボードだと、配線が大変だったり、klipper_mcuの設定をしないといけなかったりと、導入がかなり面倒でした)

設定を煮詰めていくには、まだまだ書き足りないことはありますが、あとは公式ドキュメント等を参考にどうぞ。。。

ここから先は

0字

¥ 100

よろしければ、サポートお願いします。今後の活動費に使わせていただきたいと思います!