CABadge 是为计算机协会设计的可自定义电子徽章。项目希望将传统吧唧的身份表达与电子屏幕的可变内容结合,让佩戴者通过壁纸、图案和协会名片展示个人喜好与社团归属。
它以日常佩戴和内容展示为核心:平时展示喜欢的画面,需要时通过触摸操作切换内容,通过无线连接或电脑工具更新壁纸、管理设备。界面尽量简洁,让展示内容本身成为主角。
这里收录硬件设计、固件源码、配套电脑工具和实板测试记录,供复刻、改进和协作开发使用。
当前正式版本:v1.2.0 / 内部固件 7.9.16-eaf-transition。 包含统一缓存位图转场、Direct Compositor 和内存优化。已完成编译、烧录及基本功能检查;长期稳定性与完整人工验收仍在完善。
最新测试版本:v1.3.0-rc.1 / 7.9.23-timetiles-fix。 新增 TimeTiles、FluidBox、标准 BLE 心率和动作控制更新;已确认烧录与启动,最新手势、画面及长期稳定性仍待实屏验收。对应开发源码现已同步到 main,构建方法见 BUILD。
当前最新板卡: V2.1 GEK100(2026-10-20)。 已同时上传完整的 KiCad 工程和嘉立创EDA专业版工程,包括 GEK100 按键电源、R40 连接器抽屉避让,以及当前优化后的 EDA 原理图。EDA 已更新为 2026-10-20 16:04 的人工优化原理图导出,PCB 设计记录与上一快照一致;新版原理图 DRC 和跨格式网表待复核,新增电源与机械适配仍待实板验证。固件与板卡修订分别编号。
当前正式外壳:V11 一体杯壳,配套 V2.1 GEK100。 提供三个打印件、STEP / SolidWorks 装配模型、装配图 PDF及装配说明。PCB 采用板边先入、壳内转平,屏幕最后落座;正式配套发布不改写尚待完成的实物装配验证。
下载 v1.2.0 · 发布与升级说明 · 已知问题 · 实板测试记录
当前 main 源码版本为 7.9.23-timetiles-fix,已同步本地最新的 TimeTiles 时钟、FluidBox 五模式流体、标准 BLE 心率及 SC7A20 动作控制,保留 BlueMap、统一壁纸库、EAF Direct 与逐资源 timing。源码包含所需资源、测试及第三方来源说明;构建方法见 BUILD,功能与验证范围见 APPS 和 HANDOFF。v1.2.0 正式固件仍为 7.9.16,最新测试附件为 v1.3.0-rc.1 / 7.9.23。
- 展示与切换壁纸:圆形触摸屏展示静态图片,支持浏览、选择和保存上传的壁纸。
- 展示协会名片:内置计协风格名片页面。
- 连接与管理设备:Wi-Fi、BLE 连接管理,通过 USB 或本地 HTTP 上传壁纸。
- 基础交互:触摸操作、亮度设置、息屏后摇晃唤醒,以及可选 FPS 显示。
- 小应用:Grok 表情、MC 二维地图、奶蛙矿工、重力小球、FluidBox 和 TimeTiles;使用说明见 应用。
- 电脑端调试:Windows 原生 NBTCA Badge TOOL 提供固件安装与设备联调入口。
当前源码支持在电脑上将 GIF/视频转换为 EAF 动态壁纸,设备不直接播放 GIF/视频。BLE 传图和 OTA 尚未提供。完整的异常场景和长期稳定性测试仍在完善中。
| 部分 | 当前方案 |
|---|---|
| 主控 | ESP32-S3R8,8 MB Octal PSRAM |
| 外部 Flash | W25Q128JVSIQ,16 MB |
| 显示与输入 | 360×360 圆形 ST77916 屏幕、触摸输入 |
| 运动传感器 | SC7A20 |
| 主电源 | SGM62117 升降压至 3.3 V |
| 充电 | TP4056-MS,配合外围供电分配与充电使能电路 |
| PCB | 直径 50 mm、四层板、名义板厚 1.6 mm |
最新板卡设计为 V2.1 GEK100,源文件与检查结果见最新版板卡目录。已完成首板实测的硬件基线仍为 JXBadge_EVT_20260909_c7c59dff;BOM 与采购表已列出两版用量及新旧独有器件,详见用料差异。交互式 BOM 与旧冻结生产包仍属于首板资料,V2.1 新增电源与机构仍待实板验收。
复刻需要自行采购、焊接和调试。板上包含 QFN 主控和细间距 FPC 连接器,建议具备贴片焊接与万用表排查经验,并准备放大观察工具及合适的焊接设备。
流程:下载配套资料 → 核对采购 → PCB 打样 → 分阶段焊接与上电 → 烧录 → 功能检查。 已有装配完成的同版硬件,可以从第 5 步开始。
固件与板卡分别选择版本:最新测试固件为 v1.3.0-rc.1 / 7.9.23,正式固件仍为 v1.2.0 / 7.9.16;当前最新板卡为 V2.1 GEK100。测试版的新功能和 V2.1 新增电源、机构适配仍待实物验收,固件版本与 PCB 修订独立编号。
| 文件 | 用途 |
|---|---|
CABadge-v1.3.0-rc.1-firmware.zip |
最新测试版三个 BIN、安装说明、验证记录及校验值 |
CABadge-v1.2.0-firmware.zip |
正式版三个 BIN、安装说明及校验值 |
所选 Release 的 debug.zip |
与该版固件匹配的 ELF、有效构建配置,仅排查问题时需要 |
| V2.1 KiCad 工程 | KiCad 10 项目入口,需连同该目录的原理图、PCB、库和模型一起下载 |
| V2.1 嘉立创EDA工程 | 专业版 V4 原生工程,包含人工优化后的原理图和 PCB |
| V11 正式配套外壳 | 三个打印 STL、装配模型、爆炸图及剖面图,与 V2.1 PCB 配套 |
| v1.0 的硬件附件 | 仅用于复刻旧首板 c7c59dff,不作为 V2.1 生产包 |
V2.1 KiCad 资料请从 main 分支的 Code → Download ZIP 下载整套仓库并保留目录结构;EDA 用户可下载上述 .epro2,在专业版“导入专业版”入口导入。两种格式不自动同步,最新 EDA 原理图重新优化过(kicad未变)方便阅读,具体范围见板卡说明。
首次点亮直接使用所选 Release 的固件附件,无需先搭建编译环境,下载后核对 SHA256SUMS.txt。自行编译 7.9.23 请下载 main 分支源码,并按 BUILD恢复依赖。v1.3.0-rc.1 标签自动生成的 Source code (zip) 仍是该标签发布时的旧源码快照;最新源码此次同步到 main,没有移动既有标签。
先选定板卡版本,再从 BOM 与采购料号表筛选对应版本数量大于 0 的器件;两表均标明共用、旧版独有、新版独有与用量变化,采购表原“数量”列默认表示 V2.1。新版新增 U7 GEK100_13、C32,SW1 由拨动开关改成轻触按键,R40 仅移位;具体型号与每板数量见两版用料差异。交互式 BOM仍是旧首板快照,下载后用浏览器打开,不用于核对新版完整用料。
查看当前电路时,用 KiCad 10 打开 CABadge_V2_1.kicad_pro,或导入对应 EDA 工程。只有复刻旧首板时才使用 JXBadge_V1.kicad_pro及其整套资料。
采购时重点核对屏幕完整型号、排线引脚定义、FPC 座的接触方向与封装,不能仅凭“360×360”或“18 针”判断兼容。电池也需核对极性、保护、尺寸与安装空间。BOM 文件保留 DRAFT 名称,采购前应结合原理图和 首板测试记录 复核,不能当作已验证的即买即装套件清单。
复刻 V2.1 时,从实际选用的 V2.1 PCB 工程导出四层 Gerber、板框及 PTH/NPTH 钻孔,检查后打包交给板厂。当前公开的 V2.1 目录提供设计源文件与验证记录,尚未附配套制造 ZIP;不要用 v1.0 首板包替代。
按最新版板卡说明核对四层、名义 1.6 mm 板厚和直径 50 mm 圆板。项目实际试制沿用华秋普通打样:10 片、黑油白字、有铅喷锡、过孔盖油;叠层、孔工艺及局部间距仍需板厂按实际 Gerber 审核。需要钢网时,从同一版 PCB 的锡膏层另行导出。
只有复刻 旧首板 c7c59dff 时,才使用 v1.0 硬件附件中的 JXBadge_EVT_20260909_c7c59dff_PCB.zip;原下单说明保留历史参考含义。交给板厂的是 PCB 制造 ZIP,不是仓库源码 ZIP、整套资料外层 ZIP 或钢网包。
外壳使用 V11 正式配套包,按装配图与顺序准备杯壳、按帽和隐藏限位件,电路调试完成后再合屏固定。
按 焊接与分阶段上电检查 分组完成:USB 输入 → 3.3 V 电源 → 主控与 USB 下载 → 屏幕与触摸 → 电池与充电。
该检查表来自首板;V2.1 还需核对 GEK100 按键电源、USB/电池供电切换与充电联锁,不能用首板成功开机代替新增电路验收。
首次排查可以只用 USB 供电、不接电池。每增加一组先断电检查焊接与短路,再上电测量;不要带电插拔屏幕排线。确认主电源和主控正常后再接入屏幕。
首板换装的 J1 规格为 FFC/FPC 0.5 mm、18P、抽屉式上接触,换座后已成功显示。当前 BOM 与 采购表 已按截图更正;厂家型号和尺寸图仍未提供,采购前须核对封装与接触方向。v1.0 旧源码、原理图和交互式 BOM 中仍有原 J1 条目,采购请以 J1 连接器更正 为准。
解压所选固件包,按包内 README.md 操作;安装与构建说明对应公开源码及 v1.2.0 正式版。烧录前核对校验值和硬件版本,使用支持数据传输的 USB 线,并释放被其他程序占用的串口。
| 文件 | 烧录地址 |
|---|---|
bootloader.bin |
0x0 |
partitions.bin |
0x8000 |
firmware.bin |
0x10000 |
安装 Python 与 esptool 5.x,在解压后的 BIN 目录执行命令,COMx 换为实际串口。已使用相同分区布局的 7.9.x 设备只更新应用:
python -m esptool --chip esp32s3 --port COMx --baud 115200 write-flash 0x10000 firmware.bin首次安装或从旧 v1.0 分区布局升级时,写入同一个固件包的三个 BIN:
python -m esptool --chip esp32s3 --port COMx --baud 115200 write-flash 0x0 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin当前壁纸分区从 0x710000 开始、大小 0x8f0000;旧布局升级前保留壁纸原文件及需要的设备备份。v7 工作台仍默认安装 v1.2.0,将正式包解压到 outputs/cabadge-v7.9.16-eaf-transition/;安装测试版使用上述 esptool 命令,具体依赖见所选 Release 的说明。
烧录完成后 RESET,确认启动版本与所选包一致:测试版为 7.9.23-timetiles-fix,正式版为 7.9.16-eaf-transition。不要为了普通升级额外执行全片擦除,以免清掉已有设置和壁纸。
依次检查开机显示、触摸与翻页、壁纸切换、Wi-Fi/BLE 基本连接,再检查上传壁纸及重启后的保留情况。遇到问题时记录固件版本、触发步骤和现象,附上照片或串口日志,方便复现与修复。
使用 7.9.23 测试版时,还需检查 TimeTiles 手势/主题/计时提醒、FluidBox 运动输入和 BLE 心率连接;操作及已知限制见 v1.3.0-rc.1 说明。已有烧录与软件检查不代替这些新功能或 V2.1 整机的实物验收。
当前背光已使用平方曲线调节实际 PWM,旧 5% 测试上限已取消;CHG_ALLOW 仍保持 LOW。成功开机不代表充电、电流温升或长期运行已完整验收。显示 TE 未连接,动态画面仍需观察是否撕裂;具体待办见 已知问题。
完成首次点亮后,再按 安装与构建说明 恢复开发环境。当前工程使用 LVGL 9.4.0;桌面预览基于 SDL2,板端使用 ESP-IDF / PlatformIO。构建脚本仍有 Windows 和 F 盘路径限制,尚未整理成跨平台的一键构建流程。
| 目录 | 内容 |
|---|---|
firmware-v7/ |
当前固件、UI、工作台、协议与测试 |
hardware/ |
KiCad 工程、项目库、BOM 与生产文件 |
tools/flasher/ |
共用烧录工具 |
docs/ |
安装、构建、发布与已知问题说明 |
历史实验固件、原始日志和本地备份没有全部随仓库上传,旧文档中的部分研究链接仅保留为历史出处。v1.0、v1.2.0 标签固定各次发布快照;主分支继续更新。文档分类见 仓库索引。
感谢 嘉立创 和 华秋 提供的免费打板支持,也感谢组织成员 m1ngsama 提供的 Pro 账号。这些支持为本项目的开发提供了极大的帮助。
本项目原创内容采用 MIT License。第三方字体、库、模型和素材仍遵循各自许可,不因本项目采用 MIT 而改变;字体许可见 FONT-LICENSE.txt。