Raspberry Pi ImagerからOctoPiをSDカードにインストールして使って、数時間経つとフリーズする不具合(自分だけかな?)が頻繁に起きたので他の3Dプリンター用のOSを使ってみることにします。
候補はMainsailかOctoKlipperPiですが、両方ともEnder 3 S1本体にファームウェア書き込まないといけないKlipperを使うOSなので面倒なんですよねぇ、


ということで、重い腰を上げてKlipperを使えるようにするためにEnder 3 S1にファームウェアをフラッシュしてみますが、結果・・・うまくフラッシュできずOctoKlipperPiでOctoKlipperプラグインをオフにした状態でMarlinのノーマルで使うようにしました。
原因は自分のEnder 3 S1が最新ボードのSTM32F401チップ搭載だったこと、STM32F103チップ搭載だとKlipper使えるようなので非常に残念。(ただ、STM32F401チップでもできた人もいたようです?)
今のところKlipperで高速プリントはできませんが、後日リベンジしたいのでそのメモとして作業内容を書いておきます。
ついでにCREALITY純正で遠隔操作できるBOXのCREALITY 3D WifiBoxを簡単にレビューしてみましたが、オススメできないガジェットです。買おうと思っている方はまずはチェックしてみてくださいね。
Klipper メリット・デメリット
3Dプリンターはボードからの司令でプリントできますが、ファームウェアのMarlinからKlipperに変更することによってラズパイから司令することによって高速・高品質にプリントできるというもの。
こちらの動画を見るとかなり高速にプリントしている様子がわかります。
このページでEnder 3 S1とMaisailOSでKlipperでプリントする方法が解説されています。

自分もこの通り↓やりましたが・・・チップがSTM32F401なのでうまくできませんでした(泣)

Klipperを使うと3Dプリンターのボードではなく命令系統がラズパイから司令を出すので高速かつ造形もリギング(プリンタの振動・波紋)が抑えられて造形品質がアップします。
- プリントの高速化(未体験)
- 造形品質向上
デメリットは付属の3Dプリンターについている操作パネルは使えなくなること。
- 操作パネルは使えなくなる
OctoKlipper インストール
ノーマルのOptoPrintがフリーズしたりして調子悪いので新しくインストールしましたが同様の症状が出るので、OctoKlipperをインストールしてみました。
OctoKlipperインストール
インストールはRaspberry Pi imagerを使えばかなり簡単にできます。
OSを選ぶ > Other specific-purpose OS >3D printing > OctoKlipperPi > OctoKlipperPi(stable)をインストールしました。

設定
Raspberry Pi imagerはあらかじめSSHやパスワード・Wifiを設定しておけるのでOSを書き込んだらディスプレイやキーボードなしでSSH接続して操作できるのでかなり便利です。
↓右下のほうにある歯車アイコンを押して設定します。

項目は以下の5項目でこれをやるだけで、すぐにラズパイを使い始められる。
- ホスト名:ブラウザでアクセスするときの名前
- SSHを有効化する
- ユーザー名とパスワード:ユーザー名はpiのままにパスワードだけ設定する
- Wi-Fiを設定する:自宅のWi-Fiを設定・Wifiを使う国 JP
- ロケールを設定する:タイムゾーン Asia/Tokyo
Wifiのアクセスポイントなど決まっている設定がある場合は↓「いつも使う設定にする」にして保存しておくと、次回から設定する必要がないのもかなり便利ですね。

そのままだとOption ‘serial’ in section ‘mcu’ must be specifiedエラーになる
OctoPrintだとインストール後にすぐに使えるようになりますが、OctoKlipperだと未設定なので当たり前ですが色々とエラーになります。

このようなエラーになるので、Klipperを使わない方法はOptoKilpperをオフにしたらOctoprint単体として3Dプリンターに接続して使えます。
ここからの道のりは長いのですが、まずはOctoprint+Klipperを使えるようにしてみます。
Ender 3 S1のボードにKlipperファームウェアを書き込む
この項目ではEnder 3 S1のボードに直接ファームウェアを書き込む作業なので、3Dプリンターが使えなくなる可能性もあります。

記事の内容は参考程度にとどめていただいて自己責任で改造してくださいね。
Ender 3 S1 ボードのチップを確認
まずは3Dプリンターの機種にあうファームウェアを生成する設定をしていきますが、Ender 3 S1はチップがSTM32F401とSTM32F103の2種類あるらしく、ファームウェアを生成する設定に違いがあります。

Ender 3 S1の裏のフタのビスを数本取って開けます。↑左下がボードで右側の銀色が電源アダプター

自分のボードに付いているチップは、画像を撮って拡大してみるとSTM32F401のチップでした。
ファームウェアの設定:make menuconfig
ここからは3Dプリンターに接続用のラズパイにPuttyでSSH接続して操作します。
64KiB bootloaderの行を編集
64KiB bootloaderを選べないようでしたので追加しました。
vi ~/klipper/src/stm32/Kconfig
config STM32_FLASH_START_10000
bool "64KiB bootloader" if MACH_STM32F103 || MACH_STM32F446 || MACH_STM32F401
行の最後に「 || MACH_STM32F401」を追加して保存します。

設定(make menuconfig)
make menuconfigを実行して設定していきましょう。
cd ~/klipper
make menuconfig
Ender 3 S1関連の情報をもとに設定はこのようにしました。

先ほどファイルに追加したので「64KiB bootloader」を選べるようになった↓

設定した項目は以下の4項目
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32F401) --->
Bootloader offset (64KiB bootloader) --->
Communication interface (Serial (on USART1 PA10/PA9)) --->
最後に「q」を押して「Y」を選んでセーブします。
makeしてファームウェアを生成
設定が終わったらmakeしてファームウェアをビルドしていきます。
make
ビルドしたファームウェアは/home/pi/klipper/outに生成されました。

これでEnder 3 S1用のファームウェアがビルドできました。
パスを取得
3Dプリンターの電源を付けて、ラズパイと3Dプリンターを接続しておきます。
PuttyなどのSSHでラズパイに接続して「ls /dev/serial/by-id/*」を実行すると以下のようにシリアルのパスが表示されるので控えておきます。

Ender 3 S1は以下のように表示されました。
ls /dev/serial/by-id/*
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
フラッシュ(Ender 3 S1本体のボードにファームウェアを書き込む作業)
Ender 3 S1はラズパイから直接フラッシュできない仕様なのでPuttyで以下を実行してもフラッシュできませんでした。
sudo service klipper stop
make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
sudo service klipper start
Ender 3 S1はSDカードにビルドしたklipper.binファイルをコピーして、SDカードを差してから3Dプリンターを起動すると自動的にファームウェアを書き込んでくれます。
WinSCPでラズパイに接続後、「/home/pi/klipper/out」に移動してklipper.binをパソコンにコピーします。
フォーマットした空のSDカードにSTM32F4_UPDATEフォルダを作ってその中にファームウェアをコピーします。

以下のようにWinSCPでラズパイにアクセスして/home/pi/klipper/outに生成されたファームウェアのklipper.binをSDカードのSTM32F4_UPDATEフォルダにコピーする。

Ender 3 S1にSDカードを差して起動
起動すると自動的にファームウェアを書き込んでくれます。1回だけ成功しました。
1・2分したら一回電源を落としてSDカードを取り除いて再度起動しましょう。
1回だけ成功してKlipperで接続できなかったので、純正ファームウェアに一度直してから、設定を変えて再度作り直して起動しましたが、書き込んでくれませんでした??
OctoKlipper Ender 3 S1の設定
続いてラズパイ側の設定、ラズパイのOctoPrintのページを開いて操作していきます。
シリアルポートを/tmp/printerにする
OctoKlipperプラグインがオンになっていると、シリアルポートの問題で接続できないので、スパナアイコン > Serial Connectionで以下のように/tmp/printerを設定します。
最初に追加のシリアルポートに「/tmp/printer」を入力して保存、続いてシリアルポートで「/tmp/printer」を選び保存する。

3Dプリンター固有の設定ファイル(Ender 3 S1の設定をダウンロード)
Ender 3 S1に接続する設定ファイルprinter.cfgを/home/piに置きます。
以下のパスにも各種3Dプリンター用の設定ファイルがいくつかありますが、Ender 3 S1の設定ファイルはありませんでした。
/home/pi/klipper/config
Ender 3 S1やサンプル設定ファイルがない場合は以下から探してダウンロードします。
Ender 3 S1は↓ありました。

ページにアクセスすると設定が表示されます。これをコピペしてファイルに貼り付けて保存しても大丈夫ですが、

Rawを押して右クリックで名前を付けて保存すればコピペしなくてもファイル保存できます。
ダウンロードした「printer-creality-ender3-s1-2021.cfg.txt」ファイルをWinSCPで/home/piにアップロードして名前をprinter.cfg(すでにファイルはあるので削除しても大丈夫)に変更します。

結果:うまく接続できない
1回だけファームウェアのアップデートがうまくいきましたが、OctoKlipper側で設定して接続してもうまくいかず・・・なんで?
Shutdown due to M112 command
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
STM32F401チップ搭載の最新Ender 3 S1はKlipperファームウェアを適用できないみたい・・・
どうやらSTM32F401のチップを積んだボードはフラッシュできないみたい・・・
でも、1回だけフラッシュできたけどKlipperで接続できなかったので元のファームウェアに戻した。
その後、もう一度フラッシュしようとして何回もSDカードを抜き差ししましたが・・・今度は何回やってもフラッシュ不可、
SDカードをフォーマットして「STM32F4_UPDATE」フォルダを作ってそこにビルドしたbinファイルを入れる。
binファイルはEnder 3 S1のSTM32F401チップを使っている方の情報をもとに以下のように毎回ファイル名を変更しました。
- 50文字
- 1回使ったファイル名はもう使えないみたいなので毎回変更
何回やってもファームウェア書き込めずダメでした・・・
Mainsail OSも試してみるが
こちらも同じようにKlipperを使うタイプで、3Dプリンター本体のボードにファームウェアを書き込んで使用するOS。
Raspberry Pi imagerでOSを選ぶ > Other specific-purpose OS >3D printing > Mainsail OS > Mainsail OS v0.6.1を選びました。

Mainsailのインストール方法などはこちらのページにあります。
ファームウェア書き込めないので動かない
いろいろといじくってみましたが・・・同様にファームウェアを書き込めなかったのでFIRMWARE RESTARTしても3Dプリンターと接続できない。

MainsailはKlipperを使うタイプのOSなのでOptoKlipperプラグインをオフにすることができず、今のところ使えない。

残念ながらこれ以上進めませんでした。
Ender 3 S1のデフォルト ファームウェアをもとに戻す
今のところKlipperは自分のEnder 3 S1では使えない(泣)と判断してファームウェアをもとに戻します。
ファームウェア ダウンロード
まずは純正のファームウェアの置き場所は2つありました。日本語用のファームウェアもあるようなのですが、今回は最新の英語バージョンにしました。
Creality のサイト
Creality Cloudのサイト

ファームウェアの書き込み方法が説明されていますので、この通りに作業すればもとに戻りそう。

日本語に訳してみましたので参考にしてください。(やっぱりSDカードでファームウェアアップデートしかできないようですね。ラズパイからファームウェア書き込みできるようにしてほしい。)
ファームウェアアップデート:
1.SDカードのルートディレクトリの下に「STM32F4_UPDATE」という名前の新しいフォルダを作成します。
2.メインボードの更新と手順:
1)「Ender-3s1_hw24s1_301_V3.0.3_F401_20220104.bin」ファイルを「STM32F4_UPDATE」フォルダに移動します。
2)SDカードをプリンターカードスロットに挿入します。
3)3Dプリンターを再起動し、更新が完了するまで待ちます。
ちなみに画面のアップデートでprivateフォルダをSDカードにコピーする項目がありますが、ファームウェアと画面アップデート両方(つまりprivateフォルダとSTM32F4_UPDATEがSDカードにある)あるとうまくファームウェアをアップデートできませんのでご注意ください。
USB Type-Cケーブルが接続されていたら抜いておいてファームウェアアップデートしましょう。
ということでOptoPrintでOptoKlipperプラグインを停止して、普通に純正のファームウェアを使ってプリントします。
OctoKlipperプラグイン停止して使うとノーマルのOctoPrintになりますが、こちらのほうが安定してフリーズしないのでしばらく使ってみます。
CREALITY 3D WifiBox レビュー
ついでにCreality Boxという3Dプリンターに接続するとスマホアプリやPCブラウザから操作できるオプションツールがCREALITYからでていますので試してみました。


結論から言いますと、ダメですね・・・というよりOptoPrintなどのラズパイから操作するタイプとちがって、CREALITYの宣伝やポイントなどのノイズがあってゴチャゴチャしていて純粋に3Dプリンターでプリントしたい場合には邪魔をするのが好きではない。
なによりもGcodeファイルをアップロードする操作が分かりづらくて、アップロード場所もわからずに途中で放置しました・・・
開封
オススメはできませんが、Banggoodからやってきたので一応中身と設定などをみていきましょう。

このBOXが古いようで(今はCREALITY BOX2なるものが出ている。)MicroUSBケーブルが同梱
MicroUSBケーブル2本とUSB Mini B変換アダプターも付属されていました。

取説はアプリインストールと3Dプリンターの接続までを英語・中国語で書いてある。

筐体と各種ポート

LEDが4つ状態によって点滅しますが、いやになってあまり調べてないので色の意味は分かりませんでした。


裏面ポート

- 有線LANポート
- USB A 1:3Dプリンターと接続
- USB A 2:Webカメラ用
- MicroUSB:電源用
左側面

TFはMicroSDカードスロット、リセットボタンもある。
3Dプリンターと接続して電源を入れると前面のLEDがチカチカと光る。
CREALITY Cloudのサイトかアプリから3Dプリンターを操作可能
CREALITY Cloudという専用サイトが用意されていて、スマホアプリもダウンロードできる。

CREALITY Cloud アプリ
PlayストアなどからもCreality Cloudと検索すると出てくる。

CREALITY3DプリンターとBOXをつなげて接続


Wi-Fi接続
Wifiや有線LANか接続方法を選べる。

Wifiを選ぶとスマホのWi-Fi設定で「CXSWBox-XXXXXXX」が表示されるので選んで、パスワード「12345678」を入力する。

しばらく経つとWifi接続完了する。↓

3Dプリンターと接続完了
Wifiが接続できたら3Dプリンターも接続完了する。


トップ・デバイス画面
トップ画面でレベルやショップでCREALITY製品を買うことができる。2GB以上のCloudストレージは有料になる。


基本的な操作がアプリでできる
スマホ画面に合うレスポンシブデザイン(スマホ・タブレット・パソコンそれぞれの画面サイズに応じて表示を最適化するデザイン)で操作しやすいのが便利です。



ラズパイ+OctoPrintだとパソコンのWebブラウザ用で、レスポンシブデザインではないのでコレだけが便利なところ。
Webカメラは表示しない
BOXのUSB2にWebカメラを接続しましたが、カメラ映像が表示されませんでした。

設定は簡易的なもののみ
設定は特にカスタマイズする項目などはなかった。

PCでログイン
スマホアプリでも操作できますが、Gcodeファイルを生成するのはたいていがパソコンからなので、Gcodeをアップロードするのにパソコンでもログインしておきます。

スマホでログインしている場合はアプリからQRコードをかざすとログインできる。


公開アップロード
ログインすると右上のほうに↓「Upload 3D Models」とあるので、STLファイルをアップロードしてみた。

アップロードは公開設定などがあって?後で気づきましたが公開するためのファイルのようです。

普通に3Dプリンターでプリントしたい場合はどこからアップロードするのだろうか?
ファイルがアップロードできない
一応、STLファイルを公開アップロードからアップしましたが、モデルをプリントできない??

どういう意図でGcodeのアップロードが「できない」「しにくく」したの分かりませんが、回りくどいサイトでちょっとイラッときたので使わずお蔵入りにしました。

自分はアップロード方法が分かりませんでした。STLファイルは公開アップロード可能ですが、Creality BoxのSDカードにGcodeをアップロードしてプリントしたい時にどこにファイルを置いても認識されず、
SDカードのどこに置いてもGcodeファイルが認識されない
仕方がなくMicroSDカードにGcodeをコピーしてCreality BOXに刺して確認しようとしましたが・・・どこにGcodeファイルを置いても認識しない!なんで?
MicroSDカードトップにGcodeを置いてもだめ。

crealityフォルダにGcodeファイルを置いてもダメ

いろんなとこにGcodeファイルを置きましたが、認識しませんでした。

ということで、Raspberry PiにインストールしたOptoPrintやAstroPrintよりも使いにくい上に、Gcodeファイルをアップロードできるページが見つからなかったので使うのをやめました。
また気が向いたら接続してみますが、今のところOctoPrintのほうがかなり使いやすいのでこのままCREALITY Boxは使わないで押入れにしまっておきます。
コメント