Raspberry Pi OSにOctoPrintを導入する

2023年10月21日技術開発3Dプリンター,Raspberry Pi

概要

Raspberry PiでOctoPrintを使うときはImagerでOctoPiをインストールする方法が主流ですが、CNCフライスの制御も併せてやりたかったのでRaspberry Pi OSに手動でOctoPrintを導入してみました。

実行環境

MCU: Raspberry Pi 3B+
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

参考サイト

https://aose.hatenablog.jp/entry/2021/12/08/213836

事前準備

Raspberry Pi OSのインストール方法は省略します。インストールした後にaptのupgradeまで終わらせてある前提で解説を進めます。

OctoPrintのインストール・初期設定

Pythonの環境構築・OctoPrintのインストール

デフォルト環境を汚さないよう、念のため仮想環境にインストールします。
まずはOctoPrint用の仮想環境を作成します。

cd ~
python -m venv OctoPrint

少し待つとユーザーフォルダに「OctoPrint」というフォルダが追加されます。
このフォルダの中にあるpipを使ってOctoPrintをインストールします。

OctoPrint/bin/pip install OctoPrint

インストールが正常に完了したら起動してみます。

OctoPrint/bin/octoprint

起動したらブラウザで「http://[ラズパイのローカルIP]:5000」にアクセスします。
「Loading OctoPrint UI, please wait…」と表示されれば成功です。

初期設定

「Loading OctoPrint UI, please wait…」と表示された状態でしばらく待つと、初期設定ウィザードが表示されます。
設定方法は↓ここのサイトが説明が丁寧でした。
※現時点ではまだカメラに必要な設定が出来ていないので、参考サイト通りにやっても動きません。

自動起動の設定

次にOctoPrintを自動起動するように設定します。
まずは以下のコマンドで設定ファイルを作成します。

sudo nano /etc/systemd/system/octoprint.service 

開いたファイルに以下の内容をコピペします。ユーザー名をpiから変更した場合はパスを修正してください。
貼り付けたら「Ctrl+S」で保存、「Ctrl+X」で終了します。

[Unit]
Description=The snappy web interface for your 3D printer
After=network-online.target
Wants=network-online.target

[Service]
Environment="LC_ALL=C.UTF-8"
Environment="LANG=C.UTF-8"
Type=simple
User=kokubo
ExecStart=/home/pi/OctoPrint/bin/octoprint

[Install]
WantedBy=multi-user.target

設定ファイルをsystemctlに反映させて自動起動を有効化します。

sudo systemctl daemon-reload
sudo systemctl enable octoprint.service
sudo systemctl start octoprint.service
sudo systemctl status octoprint.service

最後のコマンドで設定状況が表示されます。Loadedが「enable」になっており、Activeが「active(running)」になっていれば成功です。ここまで設定すれば3Dプリントが可能になります。

追加の設定

「コントロール」でWebカメラの映像を見れるようにする(作成中)

コントロールのWebカメラの映像はmjpg-streamerを使っているようですが、本家の開発は終了しており最新OSに対応していないので他のアプリを使います。