Bambu 打印机控制
概述
通过 FTPS 协议控制 Bambu P1S 3D打印机的文件操作。
⚠️ 技术说明
本 Skill 使用 curl(FTPS)+ Perl(MQTT 探测)实现,而非 bambu-cli npm 包。
原因:macOS 上 Homebrew 安装的 Node.js/Python 被网络限制,无法 TCP 连接局域网设备,
只有苹果签名的系统工具(curl、nc、perl、ruby)可以正常连接。
打印机信息
- 型号: Bambu P1S
- 序列号: 0109C4A2200171
- IP: 192.168.1.68
- Access Code: 31713703
可用功能
1. 状态检查
检查打印机是否在线、FTPS/MQTT/摄像头端口连通性。
/usr/bin/perl scripts/status.pl
返回 JSON:{"status":"online","ftps":"ok","mqtt_auth":"ok","camera_port":"open","ping":"ok",...}
2. 文件列表
列出打印机上的文件和目录。
bash scripts/ftp.sh list [path]
- 根目录:
bash scripts/ftp.sh list / - 延时摄影:
bash scripts/ftp.sh list /timelapse/ - 打印缓存:
bash scripts/ftp.sh list /cache/
打印机目录结构:
/- 根目录/cache/- 打印文件缓存/timelapse/- 延时摄影视频/recorder/- 打印记录(.bin)/image/- 图片/model/- 模型文件
3. 上传文件
上传 gcode 或 3mf 文件到打印机。
bash scripts/ftp.sh upload <本地文件> [远程目录]
默认上传到 /cache/。
示例: bash scripts/ftp.sh upload my_model.gcode.3mf
4. 下载文件
从打印机下载文件(如延时摄影视频)。
bash scripts/ftp.sh download <远程路径> [本地路径]
示例: bash scripts/ftp.sh download /timelapse/video_2025-01-05_18-36-09.avi ./
5. 删除文件
删除打印机上的远程文件。
bash scripts/ftp.sh delete <远程路径>
6. 文件统计
统计指定目录的文件数量和总大小。
bash scripts/ftp.sh size [path]
⏳ 暂不可用功能
以下功能因 MQTT SUBSCRIBE 兼容性问题暂不可用:
- ❌ 实时打印状态(温度、进度、剩余时间)
- ❌ 发送打印命令
- ❌ 暂停/恢复/停止打印
- ❌ 摄像头快照
- ❌ 归位/移动等控制命令
原因: Perl/Ruby 的 SSL 实现与 Bambu MQTT broker 不完全兼容,
SUBSCRIBE 报文被静默忽略。如需完整 MQTT 功能,建议在有 Node.js 网络权限的环境中使用 bambu-cli。
使用建议
- 查看最近的打印记录:
bash scripts/ftp.sh list /timelapse/ - 下载延时视频分享:
bash scripts/ftp.sh download /timelapse/xxx.avi ./ - 检查打印机是否在线:
/usr/bin/perl scripts/status.pl - 上传打印文件: 先用 Bambu Studio 切片,然后用 upload 命令上传
脚本路径
- 状态检查:
scripts/status.pl - FTPS 操作:
scripts/ftp.sh - 配置文件:
config.json
