Creality K1のfluidd開放とタイムラプス設定
How to setup Fluidd and timelapse component @Creality K1 !
はじめに
こんにちは,孔明です.引き続きCreality K1ネタです. 今回は内蔵fluiddのWEB UIを利用可能にする手順と,そのfluiddにタイムラプスコンポーネントを追加&利用可能にする手順の備忘録をお送りします.
!注意!
あくまでこの手順は私の備忘録であり,メーカや公式が推奨している方法ではありません. また,この手順を真似した際に引き起こされる不具合や不利益について私は一切の責任を持ちません.自己責任でお願いしますね!
環境
- exploit用ブラウザ: Edge @Windows11
- SSH用端末: GitBash @Windows11
- K1のファームウェア: V1.2.9.15(最新版だとこの手順は使えないとの噂です)
- K1用純正カメラ(タイムラプスを行う場合)
1. Exploit for SSH
例によってSSHパスフレーズのハッシュを上書きし,SSHログインできるようにexploitします.済んでいる方はこの節は飛ばして問題ありません. 私はこのページの手順をEdgeで行いました.chromeは警告が出てダメでした.
2. Setup Fluidd
この動画の概要欄にある手順に従えばOKです.
ちなみにこの動画はTwitterで教えていただきました.感謝しかない…
自分はYoutubeを参考にしましたよ👌
— Kazuya Goto (@MeganezaruDev) June 30, 2023
Root解放後の作業は、概要欄に操作手順が載ってるのでわかりやすかったです。https://t.co/ZIP58HMdob
VIエディタを使ったことがあれば、スムーズに終わると思います
概要欄の手順はわかりにくいポイントもあったので一応解説を添えて手順を転記しておきます.
-
SSHでK1に接続.
-
以下のコマンドで設定ファイルをコピー.
cp /usr/share/moonraker/moonraker.conf /usr/data/printer_data/config/
- 以下のコマンドで設定ファイルを開く.viは初見さんに優しくないエディタなので,使い方をご存知ない方は「vi 使い方」でググってください…
vi /etc/init.d/S50nginx
- 以下の記述を検索して,#を削除してコメントアウト解除.
これを,
# mkdir -p /var/log/nginx /var/tmp/nginx # start-stop-daemon -S -x "$NGINX" -p "$PIDFILE”
こう!
mkdir -p /var/log/nginx /var/tmp/nginx start-stop-daemon -S -x "$NGINX" -p "$PIDFILE”
- 以下のコマンドで別の設定ファイルを開きます.
vi /etc/init.d/S56moonraker_service
-
「start」でファイル内を検索して,#でコメントアウトされたものがあればそれを解除しまs.私のときは37行目あたりに
#start
があった記憶です.これをstart
にすればOK. -
K1本体の電源を入れ直します.
- K1と同じネットワークにあるブラウザから,
K1のIPアドレス:4408
に接続できたらOK!例えば,K1のIPアドレスが192.168.1.100
であれば,192.168.1.100:4408
に接続します.
Setup Timelapse
せっかくFluiddが使えるようになったので,タイムラプス機能を追加します. これでCreality Cloudのスマホアプリから脱却できます.
-
K1にSSHで接続.
-
以下のコマンドでtimelapseコンポーネントを取得.
cd ~ git clone https://github.com/mainsail-crew/moonraker-timelapse.git
- 以下のコマンドで設定ファイルをコピー.
cd ~ cp moonraker-timelapse/klipper_macro/timelapse.cfg /usr/data/printer_data/config/timelapse.cfg
- 以下のコマンドでタイムラプスコンポーネントのPythonスクリプトをコピー.
cp moonraker-timelapse/component/timelapse.py /usr/share/moonraker/moonraker/components/timelapse.py
- 以下のコマンドでコピーしたスクリプトを開きます.
vi /usr/share/moonraker/moonraker/components/timelapse.py
- ffmpegのコマンドを修正します.672~682行目にある以下の箇所を,
cmd = self.ffmpeg_binary_path \ + " -r " + str(fps) \ + " -i '" + inputfiles + "'" \ + filterParam \ + " -threads 2 -g 5" \ + " -crf " + str(self.config['constant_rate_factor']) \ + " -vcodec libx264" \ + " -pix_fmt " + self.config['pixelformat'] \ + " -an" \ + " " + self.config['extraoutputparams'] \ + " '" + self.temp_dir + outfile + ".mp4' -y"
このように編集します↓
cmd = self.ffmpeg_binary_path \ + " -r " + str(fps) \ + " -i '" + inputfiles + "'" \ + filterParam \ + " -threads 2 -g 5" \ + " -vcodec h264_v4l2m2m" \ + " -pix_fmt " + self.config['pixelformat'] \ + " -an" \ + " " + self.config['extraoutputparams'] \ + " '" + self.temp_dir + outfile + ".mp4' -y"
これはK1のボードにインストールされているffmpegが
libx264
を持っておらず,-crf
オプションのパースもできないためです. -
編集が面倒な方は,私のリポジトリに編集済みのものを公開しているのでこちらを使ってもOKです.
cd ~ git clone https://github.com/kim-xps12/fluidd_timelapse_k1 cp fluidd_timelapse_k1/timelapse.py /usr/share/moonraker/moonraker/components/timelapse.py
- ブラウザからFluiddのWeb UIへ接続し
moonraker.conf
を開いて,以下を追記します.[timelapse] ## Following basic configuration is default to most images and don't need ## to be changed in most scenarios. Only uncomment and change it if your ## Image differ from standart installations. In most common scenarios ## a User only need [timelapse] in there configuration. #output_path: ~/timelapse/ ## Directory where the generated video will be saved #frame_path: /tmp/timelapse/ ## Directory where the temporary frames are saved #ffmpeg_binary_path: /usr/bin/ffmpeg ## Directory where ffmpeg is installed
- ブラウザからFluiddのWeb UIへ接続し
printer.cfg
を開いて,以下を追記します.[include timelapse.cfg]
-
K1本体の電源を入れ直します.
- Fluiddの左バーにTimelapseの項目が追加されたらOK. 印刷開始で自動的に撮影開始,印刷終了で画像からレンダリングしてmp4ファイルが作成されるはずです.細かな設定は公式ドキュメントを参照してください.
関連記事
おわりに
いかがでしたか?本記事の手順でCreality K1のポテンシャルを引き出せたら嬉しいです. それでは.