PR

Fraxinus 03 – 標準状態のKP3SにKlipperを導入する(GD32F303+3Dtouch+IP固定)

3Dプリンタ

Fraxinus – フラクシネスはKINGROON製のKP3Sをベースに制作しますが、ハードウェアのみならずソフトウェア面での改造も必要となってきます。

具体的にはRaspberry Piと組み合わせてKlipperと呼ばれるソフトウエアを導入する必要がありますが、機械いじりは得意だけどPCは苦手という方には若干敷居が高い箇所でもあります。
そのあたりを極力分かりやすくという構成で記事を書いてみました。

今回はKP3S(GigaDevice製のGD32F303VET6搭載モデル)を対象として実際に導入した手順を紹介したいと思います。

スポンサーリンク

事前に準備しておくハードウェア

KP3S
3D Touch
MicroSDカード (16GB程度を推奨します)
Raspberry Pi3B 以降
Raspberry Piを操作できる環境(ディスプレイ、電源、キーボード、LANケーブルなど)

スポンサーリンク

事前に準備しておくソフトウェア

今回はWindows10パソコンを対象とした手順となります。
まずは以下のソフトウェアをダウンロードして準備しておきます。

・MainsailOS

このソフトウェアをRaspberry PiにインストールしてKlipperの動作環境を構築します。
MainsailOSは以下のリンクからダウンロード可能です。
https://github.com/mainsail-crew/MainsailOS/releases
記事作成にはMainsailOS-buster-lite-0.6.1.zipを利用しました。

・WinSCP

このソフトウェアはSSHクライアントやファイル転送などに利用するツールです。
WinSCPは以下のリンクからダウンロード可能です。
https://winscp.net/eng/download.php
記事作成にはWinSCP-5.19.6-Setup.exeを利用しました。

・balenaEtcher

このソフトウェアはMicroSDカードやUSBメモリにディスクイメージを書き込む際に利用します。
balenaEtcherは以下のリンクからダウンロード可能です。
https://www.balena.io/etcher/ (2022/03/17 リンク先訂正しました)
記事作成にはbalenaEtcher-Setup-1.7.7.exeを利用しました。

まずは上記の3ソフトをダウンロードして準備しておいてください。

スポンサーリンク

今回の前提条件

今回の作業における前提条件です。
基本的には記載通りに作業すれば設定できる状態となっていますが、以下のような基本的な知識は必要となります。
・Windowsの基本的な操作が可能であること
・Raspberry Piをディスプレイ、キーボードに接続して操作が可能であること
・Raspberry Piをルーターを有線LANにてルータへの接続が可能であること
(ご自身でWi-Fi接続ができる方は有線LANは不要です)

スポンサーリンク

KP3Sに3D Touchを導入する

Amazonにて購入した3D Touchモジュールです。
これはベッドとの間隔を自動調整してくれるものですが、Fraxinus – フラクシネスでも構成に組み込まれているため、今回は必須とさせていただきました。(設定変更で未使用とすることも可能です)

本体には3D Touchの文字が印字されています。

裏面には5ピンコネクタが装備されています。

付属のケーブルを接続します。
コネクタ部に書かれたシルクとケーブル色を覚えておきましょう。

続いてKP3Sの裏蓋を外します。

KP3Sのメイン基板が見えました。
この場所にBLTOUCH G 5V S と書かれた3ピンのヘッダーがあります。

先ほどの3D Touchのケーブルを差し込みます。
3D Touch本体の基板に書かれた記号とケーブル色が一致することを確認しましょう。

続いて写真中央の緑のコネクタを探します。

こちらにも S G 5Vの文字が書かれています。

緑のコネクタは3ピンですが、実際に接続するケーブルは白黒の2ピンとなります。
Gに黒ケーブル、Sに白ケーブルが接続されるようにしましょう。
5Vのピンは使用しないので誤って接続しないように注意!

3D Touchを仮固定して完了です。
(仮固定の際はノズルよりも低い位置となるようにしておきます。動作不良の際にヘッド激突を避けるため)
(2022/03/26追記 Klipper+3D Touchテストのための仮設置です。実際にオートレベリングを利用する際は固定ブラケットの作成なども必要になります)

続いてソフトウェアの準備に進みましょう。

スポンサーリンク

Raspberry Pi用のMicroSDカードを作成する

まずはベースとなるMicroSDカードの作成から始めましょう。
ここで実施する内容はbalenaEtcherを利用して、MainsailOSをMicroSDカードに書き込む作業となります。

まずはbalenaEtcherを起動し、Flash from fileをクリックします。

ファイルをの場所を聞いてくるので、先ほどダウンロードしたMainsailOSを解凍したファイルを選択します。

続けてSelect targetをクリックします。

MainsailOSを書き込むMicroSDカードをパソコンに挿入して、そのディスクを選択します。

Flash!をクリックし、完了まで数分間待ちましょう。

今回は公称書き込み45MB/sのMicroSDカードを使ったので速度は上々です。

書き込みが完了したら次の作業に進みましょう。

スポンサーリンク

Raspberry Piを起動してIPアドレスを変更する

では早速ですが、Raspberry PiでMainsailOSを起動してみましょう。
先ほど作成したMircoSDカードを挿入します。

必要なケーブル類を接続しましょう。
今回はMicroUSB電源、ディスプレイHDMI、キーボード、有線LANを接続しました。

ではRaspberry Piの電源を投入してみましょう。
ディスプレイに色々な文字が表示されますが、完全に起動するまで待ちましょう。

すると写真赤枠で囲った箇所にMy IP address is 192.168.1.20と記載された項目が見つかりました。
これが実際に割り当てられたIPアドレスになります。
(実際のアドレスは皆さんの環境によって異なりますが192.168.1.20として話を進めます)

このアドレスはルーターのDHCPサーバにより自動割り当てされたもので、時として違うIPに変更されることがあります。そのままでは使いにくいのでIPアドレスを固定しましょう。
(IPアドレスの設定よくわからない方は、起動するたびにこのIPアドレスを確認してもらえればIPアドレスを設定する必要はありません。)

今回は最初にダウンロードしていただいたWinSCPを利用する手順でIPアドレスを変更(固定化)したいと思います。

まずWinSCPを起動し、先ほど表示されたIPアドレスを入力します。
ユーザ名に「pi」、パスワードに「raspberry」と入力し、ログインをクリックします。

すると以下のようなダイアログが表示され接続が実行されます。

うまく接続できるとファイル一覧が表示されます。

赤枠部をクリックしてルートを選択します。その後、下に表示されるファイル一覧から「etc」を開きます。

etcを開くとその中に「dhcpcd.conf」というファイルが見つかります。
このファイルがIPアドレスを管理しているファイルになります。

dhcpcd.confを右クリックし、編集、編集の順にクリックしていきます。

するとWinSCP内蔵のエディタが起動し、dhcpcd.confの中身が表示されました。

写真赤枠の個所を探しましょう。
この中身がIPアドレス設定に関する項目ですが、行頭に「#」が記載されており、設定が無効化されています。

以下のように設定を書き換えてIPアドレスを設定してみます。
今回はIP 192.168.1.120、GW 192.168.1.1、DNS 192.168.1.1と各項目を変更しました。

すべての設定が完了したら、画面右上の×をクリックします。

編集したdhcpcd.confの内容を保存するので、「はい」をクリックします。

するとパーミションエラーが発生しますが、保存自体は完了しているので「スキップ」を押して画面を進めます。

続いて画面左上の「コンソールを開く」をクリックします。

新しいシェルセッションを開きますか?と聞いてくるので「OK」をクリックします。

IPアドレス変更後はRaspberry Piの再起動が必要となりますので、以下の通り操作して再起動を実行します。
コマンドの入力欄に「reboot」と入力して「実行」をクリックします。

するとすぐに再起動が開始されエラーが発生します。

再起動するRaspberry Piのディスプレイをチェックしてみましょう。
先ほど設定したIPアドレス、192.168.1.120が表示されました。

これにより、いつでも192.168.1.120のIPでアクセスが可能となります。
この手順を飛ばしても利用は可能ですが、IPアドレスが勝手に変わる場合もあり利便性は低下します。

スポンサーリンク

ブラウザから接続してみる

今回はWindows標準のEDGEを利用して接続してみました。
EDGEブラウザを起動したら、先ほど設定したIPアドレスを入力してアクセスしてみましょう。
IPアドレス設定を実施しない方は、起動時に表示されたIPアドレスを入力してアクセスします。

画面左上の「三マーク」をクリックし、「MACHINE」をクリックします。

画面右下にUpdate Managerという画面が表示されます。
新バージョンが表示されている場合は、「UPDATE ALL COMPONENTS」をクリックします。

するとMainsailOSで利用されているモジュールのアップデートが開始されました。
完了まで数分間待機しましょう。

完了すると「Connection failed」と表示されるので、30秒ほど待ってから「TRY AGAIN」をクリックします。

すると、「Updating full done!」と表示されアップデート完了を確認できました。
「CLOSE」をクリックします。

スポンサーリンク

KIAUHのインストール

今回はKlipper導入に伴いKIAUHというツールをします。
このツールのインストールはRaspberry Pi上での操作にてインストールが可能です。

Raspberry Piに接続されたディスプレイを確認します。
先ほどの再起動でログイン画面が表示されるので、ログイン情報を入力します。
ユーザ名に「pi」と入力しエンター、パスワードに「raspberry」と入力しエンターを押します。

すると画面下にpi@mainsailos:~ &と表示され入力待ち状態となっています。

以下の順にコマンドを入力します。
「git clone https://github.com/th33xitus/kiauh.git」と入力 → エンターを押す。

「cd kiauh」と入力 → エンターを押す。

「chmod +x kiauh.sh scripts/*」と入力 → エンターを押す。

スポンサーリンク

「./kiauh.sh」と入力 → エンターを押す。

すると以下のような画面が起動します。

この画面でKIAUHが起動するところまで確認できました。
続けて次項ではファームウェアのビルドについて解説していきます。

スポンサーリンク

KIAUHを利用してファームウェアをビルドする

KIAUHが起動したらメイン基板の設定に合わせて項目を選択するだけで、自動的にファームウェアを生成してくれます。

まずは4 [Advanced]を選択します。
ここではキーボードから「4」を入力し、エンターを押します。

続いて 3 [Build Only]を実行します。
キーボードの「3」を入力して、エンターを押します。

以下の画面が表示されたら、メイン基板に合わせた設定を実施しましょう。

スペースを押して[ ]Enable extra low-level configuration optionsにチェックを入れます。

Micro-controller Architecture (Atmega AVR) —> を選択してスペースを押します。

STMicroelectronics STM32 を選択してスペースを押します。

表示がMicro-controller Architecture (STMicroelectronics STM32) —> に変わった事を確認します。

続けてProcessor model (STM32F103) を選択します。

表示がProcessor model (STM32F103) —> に変わった事を確認します。

[ ] Disable SWD at startup (for GigaDevice stm32f103 clones) にチェックを入れます。
GigaDevice製のGD32F303VET6搭載モデル)のみ対象となる操作です。

Bootloader offset (28KiB bootloader) を選択します。

表示がBootloader offset (28KiB bootloader) —> に変わった事を確認します。

Clock Reference (8 MHz crystal) を選択します。

表示がClock Reference (8 MHz crystal) —> に変わった事を確認します。

Communication interface (Serial (on USART3 PB11/PB10)) を選択します。

表示がCommunication interface (Serial (on USART3 PB11/PB10))  —> に変わった事を確認します。

(250000) Baud rate for serial port であることを確認します。違う場合は250000を入力します。

() GPIO pins to set at mirco-controller startup を選択しスペースを押します。

!PC6,!PD13と入力しエンターを押します。

これで設定が完了しました。
下記画面と相違がないことを確認してください。

間違いがなければキーボードの「Q」を押します。

Save configuration? と確認されるので、再度内容を確認します。誤りがあった場合は、キーボードの「C」を押して再設定してください。
間違いがなければキーボードの「Y」を押します。

画面上で処理が始まるのでしばらく待ちます。

>>>>>> Firmware built! と表示されれば作業は成功です。

キーボードの「B」を入力して、エンターを押して前の画面に戻ります。

キーボードの「Q」を入力して、エンターを押して前の画面に戻ります。

pi@mainsailos:~/kiauh $と表示されるのを確認し、「cd ~/klipper」と入力しエンターを押します。

カレントディレクトが変更されpi@mainsailos:~/klipper $と表示されます。

「./scripts/update_mks_robin.py ./out/klipper.bin ./out/Robin_nano.bin」と入力し、エンターを押します。

これでRobin_nano.binというファームウェアが生成されました。

スポンサーリンク

KP3SにKlipperファームウェアを書き込む

ここまでの操作でRobin_nano.binというファームウェアファイルが生成されましたが、Raspberry Piの内部に保存された状態となっています。
これをKP3Sに転送するには、このファイルを一度PCに転送する必要が出てきます。

そこで、最初に使用したWinSCPを再度利用してファイルを抽出してみましょう。
今回の説明ではIPアドレスを192.168.1.20 → 192.168.1.120に変更していますので、今回は変更後のIPアドレスである192.168.1.120に接続します。

WinSCPで/home/pi/klipper/out のフォルダを確認してみましょう。
するとRobin_nano.binというファイルが生成されています。

Robin_nano.binを右クリックし、ダウンロード→ダウンロードの順にクリックします。

これで任意の場所にファイルが保存できますので、フォルダを選んで「OK」をクリックします。
ダウンロード完了したファイルはKP3S付属のMicroSDカードにコピーしておきます。

KP3Sの電源を入れると、最初はこのような画面が表示されます。
これはKINGROONの標準的なファームウェア画面です。

各種アイコンが並んだ見慣れた画面です。

ここで一度KP3Sの電源をOFFにします。

先ほどのRobin_nano.binをコピーしたMicroSDカードをKP3Sに挿入します。

電源を入れると、すぐにファームウェアの転送が始まりました。
時間にして数秒程度です。

ファームウェアの転送が完了したので、MicroSDカードを抜いて、電源を再投入してみました。
画面が全く表示されませんが、これで正常な状態なので安心してくださいね。

今まではKP3S単体で動作が可能でしたが、今後はUSBケーブルでRaspberry Piと接続して運用する形となります。さらばスタンドアローン!

スポンサーリンク

KlipperでKP3Sを操作してみる

ここまで大変長い手順でしたが、Klipperを利用するまであと少しです。
頑張って作業しましょう。

Klipperを導入したことにより、KP3Sはスタンドアローン動作の機能を失いました。
今後の操作はWebページ上で実施する事になります。

再びWindows標準のEDGEを利用して接続してみました。
接続先IPアドレスは先ほど固定化設定した192.168.1.120としています。
IPアドレス設定を実施しない方は、起動時に表示されたIPアドレスを入力してアクセスします。

Klipperの管理画面が表示されました。
しかし、Klippy-State: errorの文字が表示されています。
エラーの内容は「Unable to open config file /home/pi/klipper_config/printer.cfg」です。
これは3Dプリンタの設定ファイルが存在しないというエラーになります。

設定ファイルは以下のリンクからダウンロード可能です。
こちらの設定ファイルをダウンロードして解凍しておいてください。
printer_kp3s30_3dtouch (fukumayさん、ご提供ありがとうございました。)
(2022/03/17追記 オートレベリングを使用する際にはconfigファイルの調整が必要です)

画面左上の「三マーク」をクリックし、「MACHINE」をクリックします。

「Upload File」をクリックします。

先ほどダウンロードしたファイルを解凍して生成された「printer.cfg」を選択します。

すると、ファイル一覧にprinter.cfgが追加されました。
画面右の「RESTART」をクリックします。

すると今度はprinter.cfgファイルがロードされ、KP3Sとの通信がオンラインになりました。

画面左上の「三マーク」をクリックすると、今まで無かった項目が表示されています。
今回は「DASHBOARD」をクリックします。

すると3Dプリンタの操作画面が表示されました。
今後はこの画面からKP3Sを操作することになります。
まずは各軸の原点出しを実施してみましょう。
「🏠ALL」のボタンをクリックします。

X軸、Y軸、Z軸の各軸が初期動作を開始します。
ちなみにPrinter.cfgの設定内容に誤りがあると、動作範囲を超えて激突したりする可能性もあります。
初めて実行する際は、念のためにすぐ電源を切れる状態にしておきましょう。

すべて各軸の動作が正常に完了すれば、各ボタンがブルーに変わります。

ここまででKP3SへのKlipper導入作業は完了です。
お疲れさまでした。

スポンサーリンク

KP3SへのKlipper導入まとめ

今回は自分自身が初めてのKlipper導入作業だったという事もあり、HDMIキャプチャで画面を録画しながら作業し、その記録をまとめてみました。

実際にはSSH接続で各種サイトからコマンドをコピペして実行される方が多いとは思います。
しかし広く解説するにあたり、SSH接続という言葉を聞いても意味が分からないといった方も居られると思い、最もシンプルな方法ということで、有線LANを使う、物理環境での作業という流れを紹介させていただきました。
また、実際にUSBキーボードでコマンドを物理的に入力していくことで、コマンドを覚える事にも繋がります。

初めてRaspberry Piを購入された方に向けて、特にネットワーク周りの解説をどうすれば簡単に進められるかという点については、悩んだ結果今回の流れとしてみました。
必ず需要があるWi-Fi接続などについては、まず有線LANで確実に動作する環境を作ってからでも遅くは無いと考えています。

まずは、KP3Sを解体する前にKlipper化してKlipper自体の操作に慣れておく。
そうする事でKP3SをFraxinus – フラクシネス化した際にのトラブルシューティングなどにも役立つと思います。

コメント