如何自制NFC耗材扫描仪:Bambuddy配套SpoolBuddy硬件开发实战指南(树莓派+PN5180)
如何自制NFC耗材扫描仪Bambuddy配套SpoolBuddy硬件开发实战指南树莓派PN5180【免费下载链接】bambuddyYour Bambu Lab. No Cloud. Your Rules. Self-hosted command center for Bambu Lab — from one A1 to an entire print farm.项目地址: https://gitcode.com/gh_mirrors/ba/bambuddyBambuddy 是一款自托管的 Bambu Lab 3D 打印指挥中心从一台 A1 到整个打印农场都能统一管理。而它开源的SpoolBuddy模块让你用一块树莓派加一片 PN5180 NFC 读卡器就能自制一台NFC 耗材扫描仪把耗材卷往扫描区一放材料、颜色、剩余重量自动识别入库告别手动填表。本文带你从零接线、配置系统到读懂源码里的通信原理完整走完硬件开发流程。为什么需要一台NFC耗材扫描仪 ️手工管理耗材是打印农场最大的痛点之一卷号记不住Bambu Lab 原装耗材卷自带 MIFARE 标签里面藏着材料类型、颜色和卷托盘 UUID但打印机屏幕之外的工具读不到它剩余量靠猜没有称重只能凭感觉判断还能打多久多卷混插易错换卷、换盘时人工登记极易出错SpoolBuddy 的思路很直接树莓派读标签 称重模块实时读数 → 事件推给 Bambuddy 后端 → 前端自动更新库存。支持三类标签标签类型SAK用途MIFARE Classic 1K0x08Bambu Lab 原装耗材标签MIFARE Classic 4K0x18Bambu Lab 原装耗材标签NTAG (213/215/216)0x00/0x04SpoolEase / OpenPrintTag 社区标签硬件清单如下可选模块不装也能跑模块作用接口树莓派 4 / 5主控—PN5180 NFC 读卡模块读取/写入耗材标签SPINAU7802 称重模块可选实时称量耗材卷重量I2C 总线1小屏幕可选Kiosk 显示界面DSI/HDMISpoolBuddy 软件架构三个异步循环SpoolBuddy 的核心是一个 Python 守护进程入口在 spoolbuddy/daemon/main.py它用 asyncio 同时跑三个循环NFC 轮询循环持续扫描标签检测到标签放上/取下事件就推送给后端后端下发的写标签指令也会在这里执行称重轮询循环每 100ms 读一次 NAU7802重量变化超过 2g 才上报避免无效数据刷屏心跳循环定期上报设备状态并接收后端指令去皮、校准、远程重启、运行诊断脚本等模块划分非常清晰方便你按需阅读spoolbuddy/daemon/pn5180.py — PN5180 底层 SPI 驱动注册、RF 配置、MIFARE 认证全在这里spoolbuddy/daemon/nfc_reader.py — 标签存在性状态机带连续丢失 3 次判定取下的去抖逻辑spoolbuddy/daemon/scale_reader.py — 称重封装与稳定性检测spoolbuddy/daemon/tag_parser.py — 把 Bambu 标签原始块解析成结构化元数据spoolbuddy/daemon/api_client.py — HTTP 客户端断网时事件进缓冲队列恢复后自动补发对应地Bambuddy 后端在 backend/app/api/routes/spoolbuddy.py 提供了设备注册、心跳、标签扫描、称重上报等整套 API前缀/api/v1/spoolbuddy扫描到的标签会经由 backend/app/services/spool_tag_matcher.py 自动匹配到已有耗材卷。PN5180 接线一张表搞定 9 根线 这是最容易出错的环节。PN5180 走 SPI 接口接线对照表如下引自 spoolbuddy/README.mdPN5180 引脚树莓派引脚GPIO线色建议3V3Pin 1—红5VPin 2—红GNDPin 20—黑SCKPin 23GPIO11黄MISOPin 21GPIO9蓝MOSIPin 19GPIO10绿NSS (CS)Pin 16GPIO23橙BUSYPin 22GPIO25白RSTPin 18GPIO24棕三个高频踩坑点⚡3V3 和 5V 都要接5V 给天线放大电路供电能显著扩展读取距离但千万别把 5V 接到 3V3 脚会直接烧坏读卡器️NSS 用 GPIO23 手动控制片选内核 SPI 驱动的自动 CS 时序不满足 PN5180 的 5µs 建立/100µs 保持要求所以代码里用 GPIO 手动切换片选全部焊接别用杜邦线SPI 对信号完整性很敏感接触不良会导致射频场闪烁、幽灵报错等玄学问题NAU7802 称重模块更简单4 根线VCC→Pin 1、SDA→Pin 3 (GPIO2)、SCL→Pin 5 (GPIO3)、GND→Pin 30。系统配置三步走开启 SPI 和 I2C树莓派新装系统后SPI 和 I2C 默认是关闭的。第一步raspi-config 开启接口sudo raspi-config # Interface Options - SPI - Enable # Interface Options - I2C - Enable sudo reboot第二步修改/boot/firmware/config.txt在[all]段追加两行dtparami2c_armon dtoverlayspi0-0cs前者启用 I2C 总线 1 给称重模块用后者禁用 SPI 自动片选配合 GPIO23 手动 CS。第三步安装依赖包sudo apt install python3-spidev python3-libgpiod gpiod libgpiod3 i2c-tools pip install spidev gpiod smbus2重启后用ls /dev/spidev0.*和i2cdetect -y 1验证看到0x2ANAU7802说明硬件已就绪。首次点亮诊断脚本 标签读取测试 仓库自带了三个诊断脚本装在spoolbuddy/scripts/目录下sudo python3 spoolbuddy/scripts/pn5180_diag.py # 验证 PN5180 通信应显示固件版本 sudo python3 spoolbuddy/scripts/read_tag.py # 放标签上读卡验证 UID 读取 sudo python3 spoolbuddy/scripts/scale_diag.py # 读 10 次称重采样验证 NAU7802遇到怪现象时官方排障表同样在 spoolbuddy/README.md 中非常好用症状原因修复SPI 读回全 0SPI 未开启raspi-config 启用 SPI 后重启SEND_DATA 报 GENERAL_ERROR自动 CS 时序太快用 GPIO23 手动 CS spi0-0csoverlayBUSY 超时接线问题或 RST 未接检查 RST、BUSY 引脚射频场闪烁电源接触不良全部焊接固定两个关键参数别动SPI 速率 500kHz再高就通信出错、SPI 模式 0CPOL0, CPHA0。硬核看点Bambu 标签是怎么被解锁的 这是整个项目最有意思的部分。Bambu Lab 原装耗材标签是加密的 MIFARE Classic 卡密钥不是固定的而是根据每张卡的 UID 动态推导出来的spoolbuddy/daemon/pn5180.py 中的hkdf_derive_keys()使用 HKDF-SHA256 算法以 Bambu 主密钥为盐、标签 UID 为输入密钥材料派生出 16 个扇区各 6 字节的密钥再逐扇区认证、读取 Block 1/2/4/5 —— 材料类型、颜色、温度参数和 32 位托盘 UUID 就都拿到了。认证本身由 PN5180 硬件代劳mfc_authenticate()发送MFC_AUTHENTICATE主机命令后Crypto1 加解密在硬件内完成Python 侧只需要读数据块。NTAG 社区标签则无需认证直接读 NDEF 数据区即可。SpoolBuddy 还支持做一台带屏小终端Kiosk 屏幕上放上标签或卷重量变化会唤醒显示空闲自动熄屏背光亮度都能从 Bambuddy 前端远程调整实现逻辑在 spoolbuddy/daemon/display_control.py。与 Bambuddy 后端联动扫描即入库 安装完成后SpoolBuddy 守护进程启动时会向后端注册设备上报 IP、固件版本、NFC/称重能力之后三个循环持续上报事件。前端的联动效果扫到标签 → 自动匹配或创建耗材卷AMS 槽位同步更新称重数据实时显示在耗材页预测还能打多久支持从前端远程触发写 NTAG 标签、设备去皮校准、运行诊断脚本甚至重启统计页面上能看到完整的耗材消耗曲线数据都在你自己服务器上不经过任何第三方云。快速开始一键安装脚本不想手动折腾的话官方安装脚本 spoolbuddy/install/install.sh 支持两种模式--mode spoolbuddy树莓派只做扫描仪伴侣连接远程 Bambuddy 实例需提供服务端地址和 API Key--mode full同一台树莓派上同时装 Bambuddy SpoolBuddy脚本会自动装系统包、建 venv、部署 systemd 服务并配置开机自启。也可以先克隆仓库自行研究源码git clone https://gitcode.com/gh_mirrors/ba/bambuddy核心代码都在spoolbuddy/目录测试用例在 spoolbuddy/tests/ 下比如test_tag_parser.py就覆盖了标签解析的各种边界情况是理解数据格式的绝佳材料。写在最后从 9 根杜邦线到自动入库的完整链路SpoolBuddy 展示了低成本硬件 自托管软件的典型玩法✅ 硬件成本极低PN5180 模块 可选称重模块百元级搞定✅ 协议逆向有惊喜HKDF 密钥派生让 Bambu 加密标签变得可读✅ 软件全链路开源驱动、状态机、诊断工具、后端 API 一应俱全✅ 打印农场越大规模收益越明显动手试试吧——扫一卷耗材看它自己报出姓名的那一刻是这套系统最有魔性的瞬间。✨【免费下载链接】bambuddyYour Bambu Lab. No Cloud. Your Rules. Self-hosted command center for Bambu Lab — from one A1 to an entire print farm.项目地址: https://gitcode.com/gh_mirrors/ba/bambuddy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

从read()到系统调用:操作系统接口设计与实现深度拆解

从read()到系统调用:操作系统接口设计与实现深度拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 14:05:43 阅读更多 →
管理统计学期末不挂科实战指南:Excel手算+高频失分点突破

管理统计学期末不挂科实战指南:Excel手算+高频失分点突破

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 14:05:43 阅读更多 →
双缝干涉:把两条缝的图样叠起来,光为什么自己跟自己打架

双缝干涉:把两条缝的图样叠起来,光为什么自己跟自己打架

一块挡板上开两条平行细缝,单色光打过去,屏幕上映出的不是两条亮线,而是一排等间距的明暗条纹。把其中一条缝遮住,条纹立刻消失、只剩一团中间亮两边暗的光斑——同一束光,只因「知道不知道它走了哪条缝」,…

2026/9/30 14:04:42 阅读更多 →

最新新闻

公共云平台资源申请审批表:管住云账单的第一道闸门

公共云平台资源申请审批表:管住云账单的第一道闸门

简介:公共云平台资源申请审批表.doc 是一份面向组织信息化管理场景的标准公文模板,适用于需要申请、审批和统筹公共云资源的行政人员、处室负责人及分管领导。审批表涵盖申请人信息、所在处室、具体需求内容、处室负责人意见、规划发展与信息化处意见、分…

2026/9/30 14:49:49 阅读更多 →
计算机网络实验全攻略:静态路由、ARP抓包与Socket编程实战

计算机网络实验全攻略:静态路由、ARP抓包与Socket编程实战

简介:面向计算机网络课程综合实验与课程设计场景,资源以华北电力大学《互联网综合设计与网络协议分析》实验报告为主体,内容覆盖交换机与路由器基本配置、VLAN划分及VLAN间通信、OSPF/RIP v2/静态路由配置、静态NAT与动态NAT/NAPT地址转换&am…

2026/9/30 14:49:49 阅读更多 →
DeepSeek提示词工程落地指南:从模型选择到RAG与Agent避坑

DeepSeek提示词工程落地指南:从模型选择到RAG与Agent避坑

简介:北京大学DeepSeek系列《提示词工程和落地场景》PPT课件,聚焦如何通过自然语言交互充分释放DeepSeek潜能,适合零技术背景的普通用户、职场人士及教育从业者。内容覆盖DeepSeek-R1核心优势、火爆原因分析、提示词技巧、直接使用三种方法与…

2026/9/30 14:49:49 阅读更多 →
云计算资源分配算法实战:建模、调度器实现与避坑指南

云计算资源分配算法实战:建模、调度器实现与避坑指南

简介:云计算资源分配算法是集群调度系统的核心,解决的不是单纯压榨硬件,而是让不同优先级的任务在公共算力池中有序排队与抢占。其本质是一个多目标优化问题,需要在吞吐、时延、能耗之间寻找平衡,并通过权重系数将业务…

2026/9/30 14:49:49 阅读更多 →
Cursor 把 C 盘吃掉 20GB?我写了个开源清理工具 cursor-clean

Cursor 把 C 盘吃掉 20GB?我写了个开源清理工具 cursor-clean

用 Cursor 写代码越久,C 盘越慌。 有一天我用磁盘分析工具扫了一眼,发现: C:\Users\...\AppData\Roaming\Cursor 居然将近 20GB。 第一反应:是不是缓存炸了?项目索引?扩展? 点进去一看&#xff…

2026/9/30 14:49:49 阅读更多 →
月薪三万的Python开发者,每天都在用什么库

月薪三万的Python开发者,每天都在用什么库

打开招聘网站,Python高级开发工程师的月薪普遍在2.5万到3万之间,AI应用方向甚至更高。高薪背后,不是会写更多语法,而是技术选型比别人更精准。月薪三万的Python开发者,每天都在用这些库。AI应用开发:LangCh…

2026/9/30 14:48:47 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →