将 Bambu Lab 的 BMCU (AMS 控制器) 集成到 Klipper 3D打印固件的开源项目。
让 Klipper 3D打印机能够使用 Bambu Lab 的 BMCU 硬件进行多色打印,无需依赖原厂固件。
bmcu_klipper/
├── src/ # C语言源代码
│ ├── bmcu_comm.c # 主要通信工具(交互式菜单)
│ ├── test_ams_lite_init.c # AMS Lite 设备初始化测试
│ ├── save_raw_stream.c # 原始数据流抓包工具
│ ├── capture_raw_realtime.c # 实时数据监听
│ └── ... # 其他测试和诊断工具
├── tools/ # Python分析工具
│ ├── analyze_9bit.py # 9位UART编码分析
│ ├── analyze_capture.py # 抓包数据分析
│ └── ... # 其他Python工具
├── scripts/ # Shell脚本
│ ├── capture_a1.sh # A1 mini通信抓包
│ ├── quick_test.sh # 快速测试脚本
│ └── ... # 其他辅助脚本
├── docs/ # 文档
│ ├── TECHNICAL_SUMMARY.md # 技术总结(本文档)
│ ├── DIAGNOSIS_LED_RED.md # LED红灯诊断
│ └── ... # 其他文档
└── data/ # 抓包数据和二进制文件
└── bmcu_raw.bin # A1 mini原始通信数据
cd bmcu_klipper/src
gcc -o bmcu_comm bmcu_comm.c -Wall
gcc -o test_ams_lite_init test_ams_lite_init.c -Wall
gcc -o save_raw_stream save_raw_stream.c -Wall# 确保BMCU通过USB-485连接到 /dev/ttyUSB0
./bmcu_comm./test_ams_lite_init
# 观察BMCU LED颜色变化- 通信协议: BambuBus (基于RS485, 1.25 Mbaud)
- 硬件挑战: 9位UART + 偶校验
- 设备地址:
- AMS:
0x0700 - AMS Lite:
0x1200(A1 mini使用)
- AMS:
- CRC校验: CRC8 (poly=0x39, init=0x66) + CRC16 (poly=0x1021, init=0x913D)
详见 技术总结文档
- ✓ 成功接收BMCU广播数据(100% CRC16验证通过)
- ✓ 完整解析BambuBus协议包结构
- ✓ 从A1 mini抓取真实通信数据
- ✓ 识别AMS Lite设备初始化序列
- ✓ 理解9位UART编码方式
- ❌ BMCU不识别我们发送的命令(LED保持红色)
- ❌ 9位UART发送问题(接收工作,发送不工作)
- ❌ 需要验证完整初始化流程
详见 待办事项
本项目尚在开发初期,欢迎贡献:
- 硬件测试和数据抓包
- 9位UART发送方案(可能需要Arduino等硬件)
- 协议逆向分析
- Klipper模块开发
待定(建议使用 GPL-3.0 或 MIT)
GitHub Issues: (待创建仓库)
- BMCU370 - 开源BMCU固件,提供了协议参考
- Bambu Lab - 原始硬件设计
- Klipper 社区