プラグイン(Plugin)
OctoPrintにはプラグイン機能があり、幾つかのプラグインが出ている。 実はOctoPrintで動くCuraEngineもプラグインの一つで、デフォルトで入っているプラグインなのだ。 このなかから、便利なプラグインを探して実装してみようと思う。

AutomaticShutdown
印刷後の自動シャットダウンっぽいのがあったので、これを実装してみる。 自動でシャットダウンしてくれると便利(な時があるかも)。

インストールは、OctoPrintから行う。OctoPrintの上の方にあるスパナのアイコンを押し、設定画面を開く。 そして、左側に「Plugin Manager」があるので、これを選択。

すると、現在入っている(んだと思う)プラグイン一覧が表示されるので、その下にある「Get more…」ボタンを押してやると、 インストール可能なプラグインがたくさん出てくる。

いろいろ多すぎるので、検索窓にshutdownを入力すると絞込されて、AutonomicShutdownのみ表示された。

では、横にあるインストールボタンを押してやると、インストールが開始される。ちなみに印刷中だとインストールボタンが押せなかった。 印刷終わりでラズベリーパイが落ち着いているときにインストールをしよう。すると、 多分ラズベリーパイ上で入力されて表示されているであろうコマンド類が流れて、インストールが進む。

インストールはすぐに終わった。Closeボタンを押そう。

どうやら、このプラグインを入れると再起動が必要な様子。右上に即時再起動のボタンが表示されているので、 これを押してラズベリーパイの再起動を実施する。

すると、一旦ラズベリーパイはリブート処理に入り、OctoPrintは接続が切れる。ラズベリーパイが立ち上がるくらいの時間待機したら、 再接続してみよう。

再接続してみると、左側に新しい項目が増えた。自動シャットダウン機能が装備された。チェックボックスをチェックしておくと、 印刷完了後にラズベリーパイがシャットダウンされるようだ。

これを設定しておけば、印刷完了後はラズベリーパイは停止中。X-ONE2とラズベリーパイは同じコンセントタップに繋いでいて、 一つのスイッチで電源が切れるので、いちいちOctoPrint画面からシャットダウンさせなくても、印刷結果物を取り除いた後、 コンセントタップのボタン一つで全体の電源OFFが可能となった。
実は、設定情報を見ると、印刷後に何かスクリプトを飛ばす機能はあるので、 シャットダウンコマンドを記述しておけば同じことは可能な気がするが、 スクリプトに記述すると、毎回印刷後は勝手にOctoPrintが落ちてしまい、これは不便。 このプラグインなら、必要なときだけシャットダウン終了させることが出来るので、 最後の印刷時にチェックを入れて実行すればOKだ。
なんだか、その後消滅。octoprintのバージョンアップで消えたか?
printHistory
ほかに何かいいものがないか探してみる。履歴を残すプラグインがあったので、これを入れてみよう。

プラグインマネージャで「history」とすると、printhistoryが出てくるので、そのままインストールを行う。

画面でインストールが出来てしまうのはとても楽。本来はコンソールでコマンドを打ち込まなきゃなのだと思う。

インストールでDone!が出たらOK。Closeしよう。

右上には再起動のボタンが出ているので、これを押してラズベリーパイを再起動する。

再起動後の画面を見てみると、上側に「history」タブが出来ている。ここで過去の履歴が見れるのだろう。

現状を見てみると、何もなし。これから印刷をしていくことで、履歴が溜まっていくと思われる。

少し印刷してみて、履歴を見てみると、印刷履歴が出ていた。読み取れる情報としては、 「日付/印刷にかかった時間/使用したフィラメント長」といったところ。まあまあかな。 下にはグラフが出ており、一日何回印刷したか、どれくらい成功した下が出る様子。失敗ってどんな時?途中キャンセル?

Preheat Button
プレヒートボタンというプラグインが合ったので、入れてみたいと思う。 普段印刷時には右側のHotendとBedの温度設定ボタンを押して、手動での温度上昇(プレヒート)をしておき、 良い温度まで上昇したら印刷ボタンを押す作業を行っているので、プレヒートを便利にしてくれそうなプラグインと思われる。

では、インストールを実施してみる。画面情報のスパナボタンを押して、オプション設定モードに入り、 左側のPluginManagerを選択して、プラグイン表示を行う。

すると、検索できるようになるので、検索窓にpreheatを入力。 するとpreheatbuttonが出てきたので、これを選んで「Install」ボタンを押す。

すると、PreheatButtonのプラグインのインストールが実行される。少し待てば完了。これでインストールは終了だ。

インストール後はOctoPrintの再起動が必要なので、右上に出ているRestartNowボタンで再起動を実行。

再起動後にPluginManagerを見てみると、2ページめにPreheatButtonが増えていた。問題なく追加されたようだ。

プラグインの効果はというと、印刷対象を選択すると、今までprintボタンだった箇所が、Preheatボタンとなり、 Printボタンはその上で大きくなっていた。では、プレヒートボタンを押してみる。

すると、設定温度が設定されて、ノズルとベッドの温度上昇が開始された。 普段は右側のHotendとBedのそれぞれを設定しているが、このプラグインだと、印刷対象データ側にある設定温度情報を読み取り、 その温度を設定するらしい。なので、PLAやABSなどで温度が違っていても、印刷対象のデータ側の温度を見るので、 きちんとした温度を設定してくれるようだ。

2設定が必要だった操作が、1ボタンで出来るようになったので、多少は楽になった気がするが、 大きく楽になったわけではないので微妙。使っていくうちにありがたみが出てくるかもしれない。
では、このプラグインのアンインストールを行ってみる。設定メニューからプラグインマネージャを開くと、 TouchUIがあるので、この右側にあるゴミ箱ボタンを押してみる。

すると、アンインストール開始。インストールも簡単だったが、アンインストールも簡単。

インストール時同様、Doneとなったら、リブート実施。右上に出てくるメッセージ内のボタンを押せばすぐリブートしてくれる。

再起動後はプレヒートボタンが消えた状態で起動した。あっさりとアンインストール完了。
Touch UI
3Dプリンタと操作PCは別の部屋にあり、OctoPrintにて遠隔操作としているのだが、3Dプリンタの場所で作業しているときに、 操作をしたい場面がある。その場合にはわざわざPCの場所まで移動する必要があるので面倒。手元で何か操作したいと思っていたが、 ラスパイのタッチパネルがあるので、これを操作用端末として3Dプリンタ脇に配置してみる。
しかしタッチパネルの画面は800×480と少々狭く、この画面でOctoPrintのWeb画面を開いて操作するのは、かなり難儀。 そこで、プラグインのTouchUIを入れてみる。これであれば、タッチパネル向けのUIとなるはずなので、操作が楽なはず。

では、OctoPrint画面から、設定画面のPluginManagerを開く。下の方にある「Get More…」ボタンでプラグインを検索。

touchで検索してTouchUIが見つかったら、インストール実行。

Webからインストールできるのは便利。Doneがでるまで少し待つ。

完了したら、自動で右上にリブートボタンを表示してくれるので、これを押してOctoPrintをリブートする。

セッションが一度切れるが暫く待つと、リロード表示になるので、リロードボタンを押してやるとまた繋がる。

TouchUI側の画面。800×480だとやはり狭いが、ボタンは大きくなんとか押せる。主に緊急停止時に押すことになるはず。 上の青い帯がメニュー。ちなみにPreHeatのプラグインが入っていたらボタンが一つ増えるために、 実行中の横棒グラフがボタンに隠れてしまった。 プレヒートボタンはそんなに必須ではないのでアンインストールした。

温度表示にすると、いつものグラフが出てくる。あまりこちらの画面で見ることはないが、 スクロールすれば下には温度設定ボタンがあるので、こちらからプレヒートさせることも出来て便利。

右側のメニューを見ると、通常のWeb画面のトップの帯にある処理が表示される。OctoPrintにちゃんとログインしておけば、 シャットダウンも可能なので、なかなか便利。でも表示量が足りなくスクロール必須なのでちょっと不便。

その他コントロールメニューなども有り、一通りOctoPrintの操作は可能。画面のデザインが今ひとつな感じはあるが、 とりあえずプリンタの脇でも各種操作可能になったので、よかった。
LayerDisplay
印刷物の総レイヤー数と現在のレイヤー位置を表示してくれるプラグインがあったので入れてみる。

設定画面のプラグインマネージャからプラグインを検索して、インストールを実施。 インストールが終わると再起動を促されるので、そのまま再起動する。インストールは簡単で助かる。

再起動後に、画面を見てみるとあまり違いが判らないが、印刷するファイルの情報欄にlayer欄が追加された。 プリンタ本体には、現在のヘッドの位置がリアルタイムに表示されるので、あと何層で終わりかが、総レイヤー数がわかるとありがたい。 プリンタ側の表示はmm表示なのだが、通常は1層0.2mmで印刷を行っているので、換算してみればすぐにわかる。

小さな対応だが、地味にありがたいプラグインだ。