ようやく組みあがったPrusaですが、以前所有していたAdventurer3より不便なポイントがひとつ。
データを入れたSDカードを挿さないと印刷ができないのです。
この課題を解決するために、Prusaやほかの3Dプリンタユーザーが使っているのがOctoPrint。
Raspberry PiにOctoPrint(OctoPi)を導入している情報はいくらでも出てくるのですが、現在は高性能なRaspberry Pi 3B+や4を推奨とのこと。
我が家の引き出しをあけてもRaspberry Pi Zero Wしか在庫がありませんでした。
しかも、Raspberry Piは性能の向上に伴って価格も上がっています。SDカード運用をやめるために払う金額じゃないんですよねぇ。
結局、Pythonが動いて、シリアル通信で3Dプリンタと話ができればええんじゃろ?
ということで、どこのご家庭にもある常時稼働のLinuxサーバにOctoPrintを導入し、3Dプリンタと接続することにします。
インストールめも
インストール環境
以下、公式サイトに書いてあるまんまです。
インストールの流れ
インストールするディレクトリを用意する。
$ mkdir ~/path/to/install $ cd ~/path/to/install
OctoPrintをインストールする。
$ python3 -m venv OctoPrint $ OctoPrint/bin/pip install --upgrade pip $ OctoPrint/bin/pip install OctoPrint
実行するユーザーにシリアルコンソールの許可を与える。
# id YOUR_USERNAME uid=1000(YOUR_USERNAME) gid=1000(YOUR_USERNAME) groups=1000(YOUR_USERNAME),986(docker) # usermod -a -G tty YOUR_USERNAME # usermod -a -G dialout YOUR_USERNAME # id YOUR_USERNAME uid=1000(YOUR_USERNAME) gid=1000(YOUR_USERNAME) groups=1000(YOUR_USERNAME),5(tty),18(dialout),986(docker)
octoprint.service
を作成してsystemdで自動起動させる。
[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=exec User=YOUR_USERNAME ExecStart=/path/to/install/OctoPrint/bin/octoprint [Install] WantedBy=multi-user.target
# /etc/systemd/system # systemctl daemon-reload # systemctl start octoprint.service
# firewall-cmd --zone=public --permanent --add-port 5000/tcp # firewall-cmd --reload
あとはプリンタとUSBで接続するだけ。
OctoPrintの設定
公式見ながら雰囲気でやった。