USBメモリ印刷機能の使い方
FLYOS-FASTはUSBメモリを自動マウントし、Webファイルマネージャーまたは本体画面でG-codeファイルを閲覧・印刷できます。本記事の内容は、H3、H5、H618のv1.3.10正式イメージおよびH618 v1.4.0テストイメージで確認済みです。
動作原理
USBメモリのパーティションは、U_で始まるフォルダとしてG-codeディレクトリにマウントされます。その中のファイルを選択して印刷を開始すると、システムはまず完全なファイルをローカルにコピーします:
/usr/share/printer_data/gcodes/.UDISK/tmp.gcode
コピーが完了した後、Klipperはこのローカル一時ファイルから印刷を実行します。次回のUSBメモリ印刷を開始すると、一時ファイルは上書きされます。
コピー開始直後、Web画面にはすでに「印刷中」と表示される場合がありますが、この状態はファイルのコピーが完了したことを意味しません。コンソールに以下の表示が出てからUSBメモリを抜いてください:
Copy files from removable disk completed
または、プリンタが加熱や動作を開始したことを確認してから抜くこともできます。コピー中にUSBメモリを抜くとコピーが失敗し、現在の印刷を正常に開始できません。
USBメモリとファイルの要件
| 項目 | 対応範囲 | 推奨 |
|---|---|---|
| ファイルシステム | FAT32、exFAT、NTFS | FAT32またはexFATを優先 |
| ファイル形式 | .gcode、.g、.gco | .gcodeを優先 |
| ファイル配置 | USBメモリのルートまたは複数階層のフォルダ | モデルごとに分類して配置 |
| USBメモリ容量 | 固定の最低容量制限なし | 十分な空き容量を確保し、ファイルの完全性を確認 |
| ファイル名 | UTF-8、スペース、日本語に対応 | クロスプラットフォーム互換性のため、短いファイル名を推奨 |
.stl、.objなどのモデルファイルやスライス工程ファイルは直接印刷できません。必ずスライスソフトウェアでG-codeを生成してください。
Windowsは既知のファイルの拡張子を非表示にすることがあります。エクスプローラーでファイル拡張子にチェックを入れ、ファイルの最終拡張子が確かに.gcode、.g、.gcoであることを確認してください。モデル.gcode.txtとなるのを避けてください。
使用方法
- スライスで生成したG-codeファイルをUSBメモリのルートまたはフォルダにコピーします。
- USBメモリを上位機のUSBポートに挿入します。
- Fluidd、Mainsailまたは本体画面のファイルリストを開きます。
U_で始まるフォルダを探します。すぐに表示されない場合は、ファイルリストを更新してください。- USBメモリのフォルダを開き、印刷したいG-codeファイルを選択します。
- ファイルとプレビュー情報を確認後、「印刷開始」を一度だけクリックします。
- コンソールにコピー完了の表示が出るのを待ちます。その後、システムは自動的にローカル一時ファイルの実行を開始します。
コピー中に「印刷開始」を繰り返しクリックしたり、2つ目のUSBメモリファイルを選択したりしないでください。現在のバージョンでは、すべてのUSBメモリ印刷タスクが同じtmp.gcodeを共有するため、同時コピーがファイルを上書きし、印刷異常を引き起こす可能性があります。
USBメモリの取り外し
- ファイルのコピー完了を確認した後、通常のUSBメモリは抜いても問題ありません。現在のタスクはローカル一時ファイルの読み取りを継続します。
- コンソールにまだ
Copying fileと表示されている場合は、USBメモリを抜かないでください。 - コピーの進行状況や完了の表示がない場合は、印刷中に抜かないでください。一部のUSBハードディスクケースやUSB SSDはシステムがリムーバブルデバイスとして認識しない場合があり、その場合Klipperは外部ファイルを直接読み取る可能性があります。
- Web画面でUSBメモリに対してアップロード、削除、名前変更を実行した場合は、操作が完了してから抜いてください。
既知の制限
- 自動マウントは通常のパーティションを持つUSBストレージデバイスのみを処理します。パーティションテーブルのないUSBメモリは表示されない場合があります。PCでパーティションを再作成し、フォーマットしてください。
- メーカー、モデル、容量、パーティション構造が完全に同一のUSBメモリを同時に挿入しないでください。同じマウントディレクトリが生成され、競合が発生する可能性があります。
- 現在の自動認識ルールは、
/dev/sda1のような一般的な単一数字パーティションのみをカバーしています。特殊な複数パーティションのストレージデバイスでは、すべてのパーティションを自動マウントできない場合があります。 - USBメモリ印刷はローカルの空き容量に依存します。G-codeファイルが大きいほど、印刷開始前にコピーを待つ時間が長くなります。
ファイルは表示されるが印刷を開始できない
-
拡張子が
.gcode、.g、.gcoであることを確認します。 -
G-codeファイルがスライスソフトウェアで正常にプレビューできることを確認します。
-
上位機のローカル空き容量を確認します:
df -h /usr/share/printer_data/gcodes -
Klipperのログでファイルコピーまたはオープンエラーを確認します:
tail -n 100 /usr/share/printer_data/logs/klippy.log
ローカルアップロードは正常だが、USBメモリ印刷が開始できない
一部のスライスソフトウェアは、GBK、ANSIなどの非UTF-8エンコーディングで日本語コメントを保存します:
- Web画面からローカルのG-codeディレクトリにアップロードした場合、Klipperはデコードできない文字を無視するため、ファイルは正常に印刷される可能性があります。
- USBメモリからファイルを選択する場合、システムはまず
.UDISK/tmp.gcodeにコピーし、その後厳密にUTF-8で読み取ります。非UTF-8バイトが含まれると印刷を開始できない場合があります。
Klipperのログに以下のようなエラーが表示される可能性があります:
UnicodeDecodeError: 'utf-8' codec can't decode byte
日本語、アンダースコア、ハイフンはファイル名に正常に使用できます。ファイル名を英語に変更するだけではファイル内部のエンコーディングは変わらず、この問題も解決できません。
以下のいずれかの方法で対応してください:
- スライスソフトウェアで再エクスポートし、G-codeのテキストエンコーディングをUTF-8に設定します。
- エンコーディング変換に対応したテキストエディタを使用して、G-codeファイル全体をUTF-8に変換して保存します。拡張子を変更するだけでは不十分です。
- スライスソフトウェアでエンコーディングを選択できない場合は、ファイルヘッダの非UTF-8の日本語コメントを削除して再保存します。実際の動作、温度、押出指令は変更しないでください。
- 一時的な対応として、Web画面からファイルをローカルのG-codeディレクトリにアップロードしてから印刷します。
容量の大きいG-codeの場合は、再スライスまたは専用のテキスト変換ツールを使用し、ブラウザでファイル全体を直接編集しないことをお勧めします。
コピー失敗後も「印刷中」と表示され続ける
まずプリンタが加熱、動作、その他の印刷操作を実行していないことを確認し、その後Klipperを再起動します:
systemctl restart klipper
USBメモリを挿し直して再度印刷します。問題が繰り返し発生する場合は、USBメモリを交換し、サポートに以下の2つのログを提供してください:
/var/log/flyos-auto-mount.log
/usr/share/printer_data/logs/klippy.log