Prusa i3 MK3S+ (以降、Prusa MK3S+) はキレイな仕上がりと高い寸法精度で評判の高い3Dプリンタです。しかしWi-Fi機能が無いため、印刷する度にSDカードを抜いてgcodeを保存する必要があって面倒です。
そのような3Dプリンタに対して、Wi-Fi機能があるRaspberry Piを用意して3Dプリンタ向けツールOctoPrintを導入すると、ブラウザ上でデータ転送や温度管理などが可能になります。プラグインやカメラを追加すれば遠隔監視やタイムラプス撮影の機能も追加できます。
そこで本記事では、2022年6月下旬より国内販売が開始したRaspberry Pi Zero 2 W (以降、RasPi Z2W) を使い、Prusa MK3S+にOctoPiを導入する手順を解説します。記事内容を実施すれば、SDカードを抜き差しすることなく、Prusa MK3S+にデータを転送できるようになります。
OctoPrint導入には、RasPi Z2Wを含む追加部品の購入、はんだ付け、OSのインストールと設定、3Dプリント部品の事前印刷などが必要です。実施される前に一度必要な部品や作業内容を確認することをオススメします。
導入までの手順と必要なもの
OctoPrintを導入するまでの手順を以降で解説します。順番は3D印刷やインストールなどの時間を考慮した並びですが、入れ替えても問題ないです。2022年現在は部品の調達状況が不安定なので、出来る作業から進めていきましょう。
この記事では以下のものを使います。
- 3Dプリンタ Prusa i3 MK3S+
- PETGフィラメント
- Raspberry Pi Zero 2 W
- microSDカード (最低8GB、推奨16GB以上)
- microSDカードリーダー (手持ちPCのUSBタイプに注意)
- PC (OS書込に使用、本記事ではmacOSで説明します)
- 7×2列ピンヘッダ
- はんだごて+はんだ
1. 3Dプリントパーツを事前に印刷
RasPi Z2WをPrusa MK3S+の制御ボード (Einsy Rambo) に取り付けるため、2種類のパーツを3Dプリントする必要があります。同時印刷でも40分ほどかかるので事前に準備します。
1つ目はRasPi Z2Wのフレームです。基板上の素子が干渉しないためのスペーサーのようなもので、Printablesよりダウンロード可能です。
→ Raspberry Pi Zero 2 W frame for Einsy Rambo by Shay (licensed under a CC 4.0)
2つ目はRasPi Z2Wのカバーです。RasPi Z2Wを取り付けるために、のちの作業で制御ボードのケースに穴を開けるのですが、その穴を塞ぐためのカバーです。こちらもPrintablesでダウンロードできます。
→ Raspberry Pi Zero frame for Einsy Rambo by Prusa Research (licensed under a GNU General Public License v2.0)
【注意】上記2つ目のリンク先にもRasPi Zero用のフレームはありますが、こちらはRasPi Zero W専用であり、Zero 2 Wには使えません。印刷する際はカバーの3Dデータのみダウンロードしてください。
上記2種類のパーツは制御ボード周辺で使用するため、フィラメントの素材は熱に強いPETGがおすすめです。画像のものはSainSmartのPETGフィラメントで印刷しました。
2. microSDカードにOctoPiをインストール
次にRasPi Z2Wに使うmicroSDカードを用意して、OctoPrintを使うためのOSであるOctoPiをインストールするまでの手順や注意点を解説します。
ここではPrusa Researchの解説記事(日本語訳あり)に基づいており、Window/Mac/Linuxで異なる場合についても説明されているので、必要に応じて参照してください。
microSDカードの容量・相性に注意
まずRasPi Z2WのためにmicroSDを用意しますが、購入時は2点に注意してください。
- OctoPiをインストールするmicroSDの推奨メモリ容量は8GB以上
- 機器とmicroSDの相性によって動作しない可能性あり
microSDとRasPi Z2Wの相性は実際に使ってみないと分かりませんが、容量については多い方がもちろん良いです。著者はサンディスクのmicroSD 32GBをAmazonで購入して使ってみましたが、動作上問題ありませんでした。相性が心配な方はぜひ参考にしてください。
Raspberry Pi ImagerでOSをインストール
microSDを用意できたOctoPiをインストールします。ここではソフトウェア Raspberry Pi Imager を使います。これを使えばOSのダウンロードとmicroSDへの書込みをまとめて行えます。
Raspberry Pi公式ページからImagerをダウンロードし、インストールが完了したら起動します。また用意したmicroSDはUSBハブ等を使ってPCに接続してください。
→ https://www.raspberrypi.com/software/
また以降の解説では、私のPC環境であるmacOSで説明します。Raspberry Pi Imagerを起動したらインストールするOSを選択します。今回はOctoPiなので、以下の順に選択していきます。
OSを選ぶ → Other specific-purpose OS → 3D printing → OctoPi → OctoPi (stable)
次にストレージの項目にて、自分で用意したmicroSDカードを選択します。
次に右下の歯車アイコンを選択して、ユーザー情報やWi-Fi情報などの詳細設定を行います。もし忘れても後でPC上で設定できますが、複雑なためここで設定するのがオススメです。
ホスト名、ユーザー名など多くの項目はデフォルトのままで、変更や注意が必要な箇所についてのみ説明します。
- [SSHを有効化する]は必ずチェック
Wi-Fi経由でRasPi Z2Wにアクセスするには有効化が必要です。 - [Wi-Fiを設定する]では周波数帯が2.4GHzのSSIDを登録
RasPi Z2Wは5GHzのWi-Fiには対応していません。2.4GHz帯のものしか対応していないので、設定するSSIDが2.4GHzと5GHzのどちらであるかを必ず確認してください。 - [Wifiを使う国]ではJP (日本) を選択
デフォルトのGB (イギリス) を変更してください。
[保存]を押して詳細設定を完了した後、[書き込む]を選択すればインストールが開始されます。5〜10分ほど経つと次のような完了画面が表示され、microSDは自動的に取り出されます。これでインストール完了です!
念のためにPC上で設定内容を確認
OSのインストールやWi-Fi設定は完了しましたが、念のためmicroSDを再度PCに接続して、詳細設定が問題なく反映されているかを確認します。
このまま進めてPrusaにRasPi Z2Wを取り付けてもいいですが、取付後にWi-Fiに繋がらないことが分かると厄介です。現に著者も歯車アイコンで設定したWi-Fi情報が反映されないという問題で苦戦したので、今のうちに確認するのがオススメです。
PC上でmicroSD (boot) を開き、次の2点を確認します。
- SSHが有効になっているか?
- Wi-FiのSSIDとパスワードが設定されているか?
以上2点の確認方法については次のQiita記事を参照しました。
SSH有効化の確認方法
SSHについては、bootディレクトリ (/boot) に「ssh」という名前のファイルがあるか確認してください。もしあれば、SSHが有効になっている証拠です。
逆にファイルが無ければ有効化されていません。Macの場合、ターミナルを起動して次のコマンドを入力すると、/boot にsshが生成されてSSHを有効化することができます。
touch /Volumes/boot/ssh
Wi-Fi設定の確認方法
次にWi-Fiの確認ですが、sshと同じディレクトリに「octopi-wpa-supplicant.txt」があるので、テキストエディタやVSCodeなどで開きます。txtファイル内の27〜30行目と51行目に注目し、以下のようにWi-FiのSSIDやパスワード、国の設定が反映されていない場合は再度設定します。
#network={
# ssid="put SSID here"
# psk="put password here"
#}
country=GB # United Kingdom
画像も参考にしつつ、次のように修正します。27〜30行目はコメントアウトされているので、アンコメントするのも忘れずに。
network={
ssid="SSIDを入力 (ただしPi Zeroシリーズは2.4GHz帯のみ対応)"
psk="パスワードを入力"
}
country=JP # Japan
SSH有効化とWi-Fi設定の確認手順は以上です。
3. RasPi Zero 2 Wにピンヘッダをはんだづけ
次に、Prusa MK3S+の制御ボートにRasPi Z2Wを接続するために、ピンヘッダをはんだ付けで取り付けます。手順は以下のPrusa Researchの解説記事に基づいています。
RasPi Z2W用のピンヘッダを用意
RasPi Z2Wには2×20のGPIO端子があり、そこにピンヘッダを取り付けます。ただし、今回取り付けるのは2×7のピンヘッダで、ペンチなどで抜いて5本だけ残します。
Prusa Researchの記事ではピンの全体の長さは18mm、上部の長さが12.5mmとの記載がありましたが、同じ長さにする必要はありません。私が使ったピンヘッダは画像のように上部が13mmと若干長くても問題なく使えました。
ピンヘッダをはんだ付け
ピンヘッダを用意できたら、いよいよ基板にはんだ付けします。ここでは注意点を2つ紹介します。
- ピンヘッダの取付位置は端から2番目
ピンヘッダをGPIOに取り付けるときは端に詰めず、1列ずらした位置でピンヘッダを取り付けます(著者は「端に詰めればいいのか」とパッと見で判断した結果、位置を間違えてしまってはんだ付けをやり直す羽目になりました)。 - はんだ付けの作業中はmicroSDをセットしない
先ほどmicroSDを準備しましたが、まだカードスロットには挿さないでください。はんだ付けをする箇所がスロットに近いため、はんだごての熱が伝わってmicroSDが壊れる可能性があります。
補足:RasPi Z2Wの技適マークと梱包管理
2022年6月下旬より販売されているRasPi Z2Wには、技適取得の証明である技適マークが付いてきます。このマークはBluetoothやWi-Fiなどの無線機能がある機器を日本国内で使う際に必要で、通常は基板のどこかに記載されています。
しかし、2022年7月9日現在ではRasPi Z2Wの基板上に技適マークはなく、パッケージにマークが記載されています。販売開始したスイッチサイエンスとKSYはいずれもパッケージ上に記載しているとの説明があり、スイッチサイエンスではパッケージを捨てずに保管するよう注意書きがあります。RasPi Z2Wを購入する場合はこの点に注意してください。
2022年6月21日より工事設計認証(いわゆる技適)表示のある製品の販売を開始します。表示はパッケージ上になされているため、パッケージは捨てずに保管してください。
スイッチサイエンス Raspberry Pi Zero 2 W 商品説明より (閲覧日:2022年7月9日)
4. RasPi Z2Wを制御ボードに取り付け
2種類の3Dプリント部品、OctoPiインストール済みのmicroSD、ピンヘッダをはんだ付けしたRasPi Z2Wを用意できたら、いよいよPrusa MK3S+にRasPi Z2Wを取り付けます。
microSDと3Dプリント部品をRasPi Z2Wに装着
まずはmicroSDカードをRasPi Z2WのSDカードスロットに挿入します。その後3Dプリントしたフレームを取り付けます。取り付ける際は向きに注意して、5本のピンが穴を通るようにします。
制御ボードにRasPi Z2Wを外付け
microSDとフレームの取付が完了したら、Prusa MK3S+の制御ボードであるEinsy RamboにRasPi Z2Wを接続します。
まずは安全のためにPrusa MK3S+の電源を切ります。Einsyボードの入ったケースにRasPi Z2Wを追加するために、ケース側面の一部をニッパーでカットします。するとRasPi Z2Wが収まりそうな穴が出来ます。
その後、RasPi Z2Wに追加したGPIOピンを、Einsyボード背面の2×7の穴に合わせて挿し込みます。挿込が甘いと接触不良でRasPiが起動しない可能性があるので、奥までしっかり挿し込んでください。あとはケースの穴を埋めるように、3Dプリントしたカバーを嵌め込んでRasPi Z2Wを保護します。
最後にPrusa MK3S+の電源を入れて、液晶ディスプレイ上で[RPi port]の設定をONに変更すれば作業完了です。
Info screen → Settings → RPi port:OFF → ONに切替
PCからRasPi Z2Wにログイン & IPアドレス特定
RasPi Z2WをPrusa MK3S+にセットしたので、PCからRasPi側にログインしてIPアドレスを調べます。
Macの方はターミナルを起動して、次のコマンドを入力してください。質問への回答(yes)やパスワード入力を終えると、IPアドレス (192.168.x.x) が表示されます。ユーザー名、ホスト名、パスワードは詳細設定時に登録したものです。
ssh ユーザー名@ホスト名
RasPi Z2Wが立ち上がるために少し時間がかかるので、上記コマンドの入力は取付後少し時間をおいてみてください。またmacOSでない方は方法が異なるのでPrusa Researchの記事 (Using SSH) を参照してください。
5. OctoPrintの初期設定
Google ChromeやSafariなどのブラウザで、取得したIPアドレス (http://192.168.x.x) またはホスト名 (http://ホスト名) に接続するとOctoPrintが表示されます。
セットアップウィザード
初回接続時は設定画面が表示されるので、各項目を設定していきます。
Start:ここはただの挨拶なので画面右下の[Next]で先に進みます。
Restore Backup?:ここではバックアップファイルを使うか選択しますが、初回なのでファイル選択は行わず[Next]を選択します。
Access Control:ここではOctoPrint用のアカウントを新規作成します。
Online Connectivity Check:ここはのちに設定を変更できるのでどちらでもOKです。著者は[Enable Connectivity Check]を選択した後に[Next]で進みました。
Anonymous Usage Tracking:匿名利用データを取得してよいかの設定なのでどちらでもOKです(後で変更可能です)。著者は[Enable Anonymous Usage Tracking]を選択した後に[Next]で進みました。
Plugin Blacklist:導入すると不具合が起きかねないプラグインのローディングを防ぐプラグインです。著者は[Enable Plugin Blacklist Processing]で有効化した後に[Next]で進みました。
Default Printer Profile:使う3Dプリンタの情報を登録します。ここではPrusa i3 MK3S+の情報を入力しています。ビルドプレートのサイズや座標軸の範囲はPrusa Researchの記事 (Launching and configuring Octoprint) に記載されています。
Finish:設定は以上で、[Next]で進みます。
これがOctoPrintのホーム画面です。右側にUpdate Availableと出てくる場合はアップデートが必要なので、[Update now]でアップデート&再起動を行ってください。
RasPi Z2WとOctoPrintの追加設定
「セットアップウィザードが完了したからOctoPrintが使える!」というわけではなく、もう少し設定が必要です。以降の設定内容はPrusa Researchの記事 (Using SSH) を参考にしています。設定の詳細や目的について、ここでは省略するので知りたい方は元記事を確認してください(知らなくても大丈夫です)。
GPIOとBluetoothチップで使っているポートを交換
まずはIPアドレスを調べたとき同様、ターミナル上でsshコマンドを入力し、PCからRasPi Z2Wにログインします。
ssh ユーザー名@ホスト名
その後、次の2つのコマンドを入力することでGPIOとBluetoothチップで使っているポートを交換することができます。
sudo systemctl disable hciuart.service
sudo systemctl disable bluetooth.service
シリアルコンソールの無効化
つづいてbootディレクトリ内のファイルcmdline.txtをターミナル上で編集し、シリアルコンソールを無効化します。前述のssh
コマンドでRasPiにログインした状態で、次のコマンドを入力します。
sudo nano /boot/cmdline.txt
そのファイルの中で次の文字列を探し、削除することでシリアルコンソールの無効化が完了します。
console=serial0,115200
RasPi Z2Wを再起動
ポートの交換とシリアルコンソール無効化を終えたら、変更を有効にするためにRasPi Z2Wを再起動します。再起動が完了したら、ブラウザにてOctoPrintのページをリロードしてください。
sudo reboot
OctoPrintにシリアルポートを追加
OctoPrintのホーム画面では「No serial port found」と赤色のメッセージが表示されます。RasPi Z2WとPrusa MK3S+が接続できていない状態なので、解決する必要があります。
画面最上部の設定アイコンをクリックし、[General]を確認します。そして項目[Additional serial ports]に次のテキストを入力します。入力を終えたら[Save]を押してホーム画面に戻ります。
/dev/ttyAMA0
ホーム画面左側の[Connection]にて、追加したシリアルポートを選択して[Connect]を押すと、エラーメッセージが消えて接続状態になります。[Connection]の下にある項目[State]で”Operational (操作可能)”と表示されればデータ転送や温度、XYZ軸の調整が可能となります。画面右側の温度表示が0℃でなければ、情報を取得できている証拠です。
OctoPrint導入完了 & 使ってみた感想
OctoPrintの導入作業は以上となります。
まだ使い始めたばかりなので現時点では使い方については省略します。ただ、スライサーソフトで生成したgcodeをWi-Fiで3Dプリンタに直接転送できるのはとても便利です。部品の準備やOctoPrintの設定などで手間が必要になりますが、これでSDカードの煩雑さから解放されると思うと、導入してよかったです。
今後についてはプラグインOctolapseを追加し、ラズパイカメラでタイムラプス撮影を考えています。
OctoPrintで快適3DPライフを送ろう
本記事ではRaspberry Pi Zero 2 Wを使い、Prusa MK3S+にOctoPiを導入する手順を解説しました。これでSDカードの抜き差しは不要となり、Wi-Fi経由でPrusa i3 MK3S+にデータ転送をすることできます。
OctoPrintでは温度のモニタリングやXYZ軸移動、ファンのON/OFFなどの機能が標準であります。さらにプラグインを追加すれば、カメラでタイムラプスを撮影したり、外出時にネットを介して印刷状況を監視したりすることができます。
「Wi-Fi経由でPrusa MK3S+にデータを送りたい」「OctoPrintを使ってみたい」という方は、本記事を参考にしてみてください。
コメント