Ender3はスタンドアローンでMicroSDに格納したgcodeデータを出力できるのですが、あちこちググっているとOctoPrintというソフトウェアでネットワークに接続して遠隔で状態を監視したりしている人が多いことに気が付きます。
そこで、このOctoPrintを導入してみました。
用意したものは以下の通りです。
- Raspberry Pi Model B+(公式サイトではRaspberry Pi3推奨という表現もありましたが、手持ちの関係で・・・。WiFiで接続する場合には、Pi Zero Wだとパフォーマンス上かなり問題があるようですので、今回は有線LANでの接続としています。)
- MicroSDカード8GB
- 電源供給用のACアダプタと、USBタイプA-MicroBケーブル
- Raspberry PiとEnder3を接続するためのUSBタイプA-MiniBケーブル
- 余っていたUVC接続可能なUSBカメラ
- 適当なLANケーブル
セットアップの手順は以下の通りでした。
- OctoPrintのサイトからOctoPi(OctoPrint組込済のRaspbianイメージ)をダウンロード。MD5SUMをチェックして、ファイルを展開します。
- ホストのWindows10のUDPポート5353(mDNS)を解放。通常はWindowsファイアウォールの設定ですが、自分はカスペルスキーインターネットセキュリティを導入しているので、カスペルスキーで設定します。
- USBイメージライタ(LinuxMintの場合)で展開したイメージファイルをMicroSDカードに書き込み。書き込み完了後、Raspberry Piに取り付け。その他のケーブル、カメラも適宜取り付けます。
- Raspberry PiとEnder3の電源を投入します。電源は連動して投入できるよう工夫するのがいいようです。Edner3の電源(+24V)から+5Vを得るような改造を結構見かけますが、今回はスイッチ付きのテーブルタップで連動するにとどめます。
電源投入後、Raspberry Piが起動している様子は見えないですが、初回はディスク領域の拡張等を行うはずなので、10分くらい適当に放置します。 - Webブラウザ(自分はChromeを利用)にて、アドレスバーに「octopi.local」と入れて、しばらく待つと・・・OctoPrintの画面にアクセスできるはず・・・なのですが、アクセスできず。しかし、そのまま10分くらい、放置して置いたら画面が更新されてSetup Wizardとなっていました。
- Wizardに従って初期設定を行います。
Access Controlのところで、OctoPrintにアクセスするためのユーザー名とパスワードを入力して、Keep Access Control Enabledをクリックした後、Nextをクリックします。パスワードを設定しておかないと、誰かが勝手にプリンタの温度を変えたりして火災などの原因になるかもしれません。 - Online Connectivity Checkはインターネットへの接続性をGoogleのDNSサーバ(8.8.8.8)にアクセスして確認するようです。Test host & port をクリックしてテストした後、Enable Connectivity Checkをクリック、さらにNextをクリック。
- Configure plugin blacklist processingはそのままEnable Plugin Blacklist Processingをクリックして、Nextをクリック。
- CureEngineのところは、Profileをインポートするスライス処理をRaspberry Pi側で行えるようですが、ググってもあまり情報が見つかりません。よくわからないので、そのままNextをクリック。
- Default Printer Profileはプリンタが1台の場合は名前は気にしなくても大丈夫そう。Print bed & build volumeのところは、Form FactorはRectangular、OrigineはLower Left、Heated Bedはチェックが入ったまま、Print volumeはXとYは220、Zは250を入力、Axesは軸の移動速度ですが、マニュアルでの移動速度にのみ関係するので放置、Hotend & extruder もそのままで、Nextをクリック。
- 最後に注意事項を読んで、Finishをクリック。
- しばらく(1分くらい)放置すると画面が変わりますが、さらに少しすると、Updateがあるという表示が出ましたので、Update Nowをクリックすると警告が表示されるのでProceedをクリックして先に進めます。アップデートの経過がゆっくり表示されるのを眺めながら待ちます。5分か10分か経過してアップデートが終わると、勝手に再起動しました。再起動後、勝手に画面が更新される旨、表示されているのですが、5分くらい待っても一向に変わらないので、Reloadを押してみましたが、更新されず。そのまま待ちます。
- その間に、TeraTermでsshでログインして、デフォルトユーザー(ユーザー名pi/パスワードraspberry)のパスワードを変更しておきます。
- しばらくすると、画面が更新されました。
完了すると、以下のような画面となりました。
引き続き、プリンタに接続しますが、特に設定することなく、左上のConnectを押すとしばらくして接続されました。現在の状況(ベッドやノズルの温度)が表示されるのですが、Controlをクリックするとグラフの部分がUSBカメラの画像に切り替わります。TimelapseをクリックするとTimelapse録画のパラメータが設定できるようです。
温度の画面でTargerのところのチェックマークをクリックすると、PLAやABSにあわせたプレヒートができます。
プレヒートしたら、gcodeファイルをWeb画面上の左半分にドロップするとファイルをアップロードできます。(右半分にドロップするとSDカードにアップロードできようなのですが、きわめて遅いです)
アップロードすると、左下のFileの部分にアップロードしたファイルが表示されるので、プリンタのアイコンをクリックすると、出力が始まります。
使用したのがRaspberry Pi(2でも3でもなく)のためか、全体に動きがもっさりです。
実際にgcodeファイルを出力してみると、Curaでスライスした際には12分と出たデータが30分以上かかるケースもあります。どうやら、内部でのArduinoベースのコントローラとのUART接続がボトルネックになっている気がします。Ender3単体で出力した時よりも細かい動きがある(≒大量のgcodeデータのやり取りがある)ところでテーブルの動きが遅くなっていて、出力品質にも現れています。