見出し画像

Tronxy D01 アップグレード その2

Tronky D01にKlipperをインストール

必要なもの
 プリンタコントロール用マザーボード。 ここではMKS RoBIN Nano V3
  RasberryPI 4B。 3BでもOK。
BANBUS接続の場合は
 EBB36またはEBB42 と U2Cインターフェース
5インチTFT液晶表示器 ラズパイとつながるものなら何でもよい。
 今回は5InchTFT HDMI接続のもの

1.まず、Raspberry Pi ImagerでTFカードに書き込む。
   いつもMainSail OSを入れている。
2.次にKlipperScreenをインストール。
   ここで注意したいのだが、KlipperScreenをインストール後WIFI設定がクリアされるようだ。KlipperScreenの画面から変更及び設定できるので再度SSID、パスワードを入力して接続。

3.マザーボードRobinNanoV3との接続。方法はここを参考に(;^_^A
他のマザーボードを接続するためにコンパイルの設定が必要になるのだが、これはMainSailのConfig Filesのconfig_examplesの中にある, generic-mks-robin-nano-v3.cfgの冒頭に書かれている。

画像
画像
画像

これから、MKS Robin Nano V3の場合、CPUはstm32f407,48KiB bootloader,、USB for communicationに設定しコンパイルすれば大丈夫。
ここで、できたファイル名をklipper.binからRobin_nano_V3.binに変更しカードにコピーして書き込めばOKです。
ls /dev/serial/by-id/*で出てきた
/dev/serial/by-id/usb-Klipper_stm32f407xx_240033000A51363439343739-if00
をprinter.cfgの[mcu]のserial: の後ろに貼り付けます。
これでマザーボードとの接続は出来るはずです。

CANBUS接続

前にここに書いていたCANBUS接続の方法ですが、CanBootの名称がKatapultに変更になったりしたのでいろいろ調べたところ、とても良いサイトが見つかったのでここを参考にインストールしていきます。
ESOTERICALというサイトで個々の通りインストールすればOKです。
では、始めましょう!

1.ネットワークサービス、CAN 速度、送信キューの長さの設定

ここからはGOOGLE先生による翻訳で進めます。
systemd-networkdサービスが有効になっていることを確認するには、以下を実行します。

sudo systemctl enable systemd-networkd

次に、次のコマンドでサービスを開始します。

sudo systemctl start systemd-networkd

次に、次のコマンドを実行して正常に動作しているかどうかを確認します。

systemctl | grep systemd-networkd

「ロード済みアクティブ実行中」と表示されていることを確認します。

画像

残念ながら、これにより systemd-networkd-wait-online サービスも有効になり、ネットワーク インターフェイスがオンラインになるのを待つ間、起動時にシステムが約 2 分間「フリーズ」する可能性があります。問題が CAN インターフェイスだけであれば、これを回避する方法がありますが、待機が依然として発生するエッジ ケースがあるため、次のコマンドを実行して wait-online サービスを完全に無効にするのが最善であることがわかりました。

sudo systemctl disable systemd-networkd-wait-online.service

次に、次のコマンドを実行して、インターフェイスの txqueuelen を設定します (行全体をコピーして SSH セッションに貼り付けます)。

echo -e 'SUBSYSTEM=="net", ACTION=="change|add", KERNEL=="can*"  ATTR{tx_queue_len}="128"' | sudo tee /etc/udev/rules.d/10-can.rules > /dev/null

正しく適用されたことを確認するには、

cat /etc/udev/rules.d/10-can.rules

そして、次のようになります。

画像

最後に、can0 インターフェイスを有効にして速度を設定するには、次のコマンドを実行します。

echo -e "[Match]\nName=can*\n\n[CAN]\nBitRate=1M" | sudo tee /etc/systemd/network/25-can.network > /dev/null

正しく適用されたことを確認するには、

cat /etc/systemd/network/25-can.network

そして、次のようになります。

画像

最後に、次のコマンドで Pi を再起動します (systemd-networkd サービスが構成ファイルから適切に読み取りを開始します)。

sudo reboot now

専用USB CANデバイス BTT U2C

専用の USB CAN デバイスを使用する場合は、USB 経由で Pi に接続するだけです。最初にこの U2C/UTOC/etc デバイスに何かをフラッシュする必要はありません。必要なファームウェアがプリインストールされているはずです。Klipper は実行されません。コマンドを実行することで動作しているかどうかをテストできますlsusb(SSH ターミナルから Pi へ)。ほとんどの一般的な USB CAN デバイスは、正常に動作している場合、「Geschwister Schneider CAN アダプター」として表示されます (ただし、「OpenMoko, Inc」デバイスとして表示される場合もあります)。

lsusb


画像


画像

より良いチェックは、 ip -s -d link show can0を実行することです。すべてが正しければ、次のような表示が出ます。

ip -s -d link show can0


画像

can0インターフェースが表示され、「qlen」は128、ビットレートは1000000になります。

Canbus で使用するためにツールヘッドをフラッシュする手順

いくつかの依存関係をインストールしておくとよいでしょう。これを行うには、Pi で以下を実行します。

sudo apt update
sudo apt upgrade
sudo apt install python3 python3-serial

Katapultのインストール

これにより、Katapult リポジトリがまだない場合はホーム ディレクトリの「katapult」という新しいフォルダーに複製され、すでにある場合は Katapult フォルダーが最新バージョンに更新されます。
Katapult ファームウェアを構成するには、次のコマンドを実行して katapult ディレクトリに移動し、ファームウェア メニューを変更します。

cd ~/katapult
make menuconfig


画像

ファームウェアを でコンパイルします(make)。これで、~/katapult/out/ ディレクトリに katapult.bin (または katapult.uf2) が作成されます。

make

フラッシュするには、ツールヘッド ボードを USB 経由で Pi に接続し、ツールヘッド ボードを DFU/BOOT モードにします (ツールヘッド ボードのユーザー マニュアルにこれを行う手順が記載されているはずです)。
*BTT EBB36の場合、BOOTとRESETを押し、先にRESETを放します。(BOOTは押したまま、1~2秒まってから放す。) 

DFUモードであることを確認するには、lsusbコマンドを実行し、「STMicroelectronics STMデバイスがDFUモード」のエントリを探します。

lsusb


画像

次に、Katapultファームウェアをツールヘッドボードにフラッシュするには、次のコマンドを実行します。

sudo dfu-util -R -a 0 -s 0x08000000:force:mass-erase:leave -D ~/katapult/out/katapult.bin -d 0483:df11

結果に「ダウンロード中のエラー get_status」などが表示されていても、その上に「ファイルのダウンロードに成功しました」と表示されている場合は、まだ正常にフラッシュされているため、そのエラーは無視できます。

画像

これでKatapultがインストールされました。
Pi ( sudo shutdown now) をシャットダウンし、プリンター全体の電源をオフにします。

sudo shutdown now

ツールヘッド上の DFU ジャンパーを取り外し (必要な場合)、ツールヘッドの電源 (24V および gnd) と CAN (CANH/CANL) の配線を接続してから、プリンターの電源を入れ直します。

次のコマンドを実行して、ツールヘッドボードがCANネットワーク上にあり、Katapultモードで待機しているかどうかを確認します。

python3 ~/katapult/scripts/flashtool.py -i can0 -q

「Application: Katapult」の「Found UUID」が表示されます。


画像

Klipperのインストール

次のコマンドを実行して、Pi 上の klipper ディレクトリに移動します。

cd ~/klipper

次に、次のコマンドを実行して、klipper 設定メニューに入ります。

make menuconfig


画像

ファームウェアの設定が完了したら、

make clean

古いファイルが残っていないか確認し、

make

ファームウェアをコンパイルします。ファームウェアは ~/klipper/out/klipper.bin に保存されます。

Katapult を使用して Klipper をフラッシュする

次のコマンドを実行して、Pi 上の Klipper サービスを停止します。

sudo service klipper stop

次のクエリ コマンドを実行し、表示される Katapult デバイスをメモします。

python3 ~/katapult/scripts/flashtool.py -i can0 -q


画像


次に、次のコマンドを実行して、Katapult 経由で klipper ファームウェアをインストールします。上記のクエリで取得した UUID を使用します。

python3 ~/katapult/scripts/flashtool.py -i can0 -f ~/klipper/out/klipper.bin -u youruuid

ここで、「-u」ID は「flashtool.py -i can0 -q」クエリから見つかったものです。

フラッシュが完了したら、

python3 ~/katapult/scripts/flashtool.py -i can0 -q

もう一度コマンドを実行します。今度は同じUUIDが表示されますが、「Application: Katapult」ではなく「Application: Klipper」が表示されます。


画像

Klipper canbus クエリを実行して、ツールヘッド ボードの canbus_uuid を取得できるようになりました。

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0


画像

Klipper (Pi 上) をツールヘッド ボードに接続するには、printer.cfg の [mcu] セクションでこの UUID を使用します。

次のコマンドを実行して、Pi で Klipper サービスを再度開始します。

sudo service klipper start

これで、printer.cfgの[mcu]セクションにcanbusのUUIDを書き込めばCANBUS
は動き始めます。


画像
CANBUS導入前
画像
CANBUS導入後
配線スッキリ!

以上がCANBUSのインストール方法ですが、どうでしょう?上手くインストール出来ましたかねぇ(;^_^A
上手くいかないときはコメントで…

いいなと思ったら応援しよう!