U 盘打印功能使用指南
FLYOS-FAST 会自动挂载 U 盘,可在网页文件管理器或本机屏幕中浏览并打印其中的 G-code。本文按 H3、H5、H618 的 v1.3.10 镜像与 H618 v1.4.0 镜像核对。
工作原理
U 盘分区会作为以 U_ 开头的文件夹挂载到 G-code 目录。开始打印时,系统先把完整文件复制到本地:
/usr/share/printer_data/gcodes/.UDISK/tmp.gcode
复制完成后 Klipper 才从该临时文件执行打印,下一次 U 盘打印会覆盖它。
网页显示“打印中”不代表文件已复制完。请等到控制台出现 Copy files from removable disk completed,或打印机已开始加热、运动后再拔出。复制过程中拔盘会导致本次打印无法开始。
文件要求
| 项目 | 支持范围 | 建议 |
|---|---|---|
| 文件系统 | FAT32、exFAT、NTFS | 优先 FAT32 或 exFAT |
| 文件格式 | .gcode、.g、.gco | 优先 .gcode |
| 文件位置 | 根目录或多级文件夹 | 按模型分类存放 |
| 文件名 | 支持 UTF-8、空格和中文 | 建议简短,便于跨平台 |
不支持 .stl、.obj 等模型文件或切片工程文件,需先用切片软件导出 G-code。
本功能不支持 USB 3.0。请将 U 盘插在 USB 2.0 接口上,也不要使用 USB 3.0 的 U 盘;使用 3.0 时传输速度会变得非常慢,复制等待时间明显拉长。
请在资源管理器中勾选 文件扩展名,确认后缀确实是 .gcode、.g 或 .gco,避免出现 模型.gcode.txt。
使用步骤
- 将切片生成的 G-code 复制到 U 盘。
- 把 U 盘插入上位机 USB 接口。
- 打开 Fluidd、Mainsail 或本机屏幕的文件列表,找到以
U_开头的文件夹;没有立即出现时刷新列表。 - 进入该文件夹选择 G-code 文件,确认预览信息后只点击一次“开始打印”。
- 等待控制台提示复制完成,系统随后自动开始打印。
复制期间不要重复点击“开始打印”,也不要改选第二个 U 盘文件:所有 U 盘打印共用同一个 tmp.gcode,并发复制会互相覆盖。
拔盘与限制
- 确认复制完成后可以拔出 U 盘,打印会继续读取本地临时文件;控制台仍在显示
Copying file时不要拔。 - 完全没有复制进度提示时不要拔盘:部分 USB 硬盘盒或 SSD 可能未被识别为可移动设备,Klipper 会直接读取外部文件。
- 网页正在对 U 盘执行上传、删除或重命名时,等待操作完成后再拔。
- 没有分区表的 U 盘可能不显示,可重新分区并格式化;两只厂商、型号、容量和分区结构完全相同的 U 盘可能挂载到同一目录而冲突。
- 自动识别只覆盖常见单数字分区(如
/dev/sda1),特殊的多分区设备可能挂载不全。 - 文件越大,开始打印前的复制等待越久,并依赖上位机本地剩余空间。
常见问题
文件能看到但无法开始打印
确认扩展名是 .gcode、.g 或 .gco,且文件能在切片软件中正常预览;检查本地剩余空间:
df -h /usr/share/printer_data/gcodes
再查看 Klipper 日志中的复制或打开错误:
tail -n 100 /usr/share/printer_data/logs/klippy.log
网页上传能打印,U 盘不能
部分切片软件用 GBK、ANSI 保存中文注释,而 U 盘文件会先复制到 .UDISK/tmp.gcode 再严格按 UTF-8 读取,遇到非 UTF-8 字节可能报错:
UnicodeDecodeError: 'utf-8' codec can't decode byte
中文文件名通常不是原因,改成英文也不会改变文件内部编码。按以下任一方式处理:
- 在切片软件中重新导出,将编码设为 UTF-8。
- 用支持编码转换的编辑器把整个文件存为 UTF-8,不要只改扩展名。
- 无法选择编码时,删除文件头部的非 UTF-8 中文注释后保存,不要改动运动、温度和挤出指令。
- 临时可先从网页上传到本地 G-code 目录再打印。
复制失败后一直显示“打印中”
确认打印机没有在执行加热或运动,然后重启 Klipper:
systemctl restart klipper
重新插入 U 盘再试;若反复出现,请更换 U 盘并向技术支持提供以下两个日志:
/var/log/flyos-auto-mount.log
/usr/share/printer_data/logs/klippy.log