AI Passport

资产清单 与交付物

所有「可以交付、可以烧写、可以部署」的东西,连同校验哈希和存放位置。

#固件交付物

文件大小SHA-256(前 16 位)用途
FoloToy-AI-Passport-full.bin2,075,696 B3fddd44c8f45848d…交付件,烧到 0x0(含 bootloader + 分区表 + 应用)
debug/FoloToy-AI-Passport.bin2,010,160 B78fdbf1308b226c6…纯应用镜像,烧到 0x10000
debug/FoloToy-AI-Passport.elf13,782,620 Bb2eff064be831e96…调试符号,GDB / 崩溃回溯
debug/FoloToy-AI-Passport.map6,558,671 B59e8293ca1f557db…链接映射表
debug/bootloader.bin20,944 Bd4c46826858656d3…引导程序,烧到 0x0
debug/partition-table.bin3,072 B420931e3f5af072d…分区表,烧到 0x8000
manifest.json——内容寻址归档清单(各文件哈希 + 应用描述符)

完整哈希见 dist/manifest.json。目标芯片 esp32c3,Flash 8 MB,ESP-IDF v5.5.3。

#烧录命令

# 只烧这一个文件,偏移 0x0
python -m esptool --chip esp32c3 -b 460800 --before default_reset --after hard_reset \
  write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m \
  0x0 FoloToy-AI-Passport-full.bin
⚠️ 不要把 debug/FoloToy-AI-Passport.bin 烧到 0x0。 那是纯应用镜像,只有烧到 0x10000 才正确。常规烧录一律用合并镜像 full.bin。

#镜像布局与分区表

Flash 镜像布局

0x000000  bootloader       20,944 B
0x008000  partition-table   3,072 B
0x010000  application    2,010,160 B
          → factory 分区 (0x7f0000 = 8,123,072 B),76% 空闲

分区表(partitions.csv)

nvs       data nvs      0x9000   0x6000
phy_init  data phy      0xf000   0x1000
factory   app  factory  0x10000  0x7f0000

#硬件资产

项值说明
主控芯片ESP32-C3单核 RISC-V,含 Wi-Fi + BLE
Flash8 MB无 PSRAM(外挂内存)
开发框架ESP-IDF 5.5.3FreeRTOS
测试设备wb-c84eMAC 98:c3:77:f4:c8:4e
设备标识wb-0001(可配)锚点房间路由用 deviceId

#配置与凭据资产

资产位置性质保密要求
Wi-Fi 凭据种子列表ai-passport/main/wb_wifi_seed.local.h编译期写入的 SSID + 密码🔴 明文密码,不提交
锚点令牌 / URL / 设备号ai-passport/main/wb_anchor_secrets.local.h编译期写入🔴 令牌,不提交
锚点 DEVICE_TOKEN / GATEWAY_TOKENCloudflare wrangler secret运行期 secret🔴 不写进 wrangler.toml
宿主 API Key(ASR / TTS / 大模型)~/.workbuddy/.env运行期读取🔴 权限 600
凭证红线: 项目规范明确「不得提交凭据、设备二维码密钥、私钥、个人数据、未脱敏日志」。仓库里每个 secrets 文件都有对应的 .example 模板,真实值只留本地。

#部署资产(Cloudflare)

项值
账号 ID67a19f55851c5090d43fdbc8119317d2
锚点 Workercard-anchor → card.jxccwx.com
本网站 Workerpassport-docs → passport.jxccwx.com
主域名jxccwx.com
Durable ObjectSessionRoom(SQLite 后端)

#源码结构总览

ai-passport/               固件(C / ESP-IDF)
  ├─ main/
  │   ├─ wb_app.c          应用主逻辑
  │   ├─ wb_anchor.c       公网锚点链路
  │   ├─ wb_audio.c        音频引擎
  │   ├─ wb_ble.c          蓝牙链路
  │   ├─ wb_link.c         链路抽象
  │   ├─ wb_proto.c        协议编解码
  │   ├─ wb_ui.c           屏幕界面
  │   ├─ wb_ulaw.c         μ-law 编解码
  │   ├─ wb_wifi.c         Wi-Fi 连接
  │   ├─ main.c            入口
  │   └─ *.local.h         凭据(不提交)
  └─ dist/                 交付物 + manifest.json

anchor/                    锚点(Cloudflare Worker + DO)
  └─ src/
      ├─ index.js          路由 / 鉴权
      ├─ session.js        SessionRoom
      ├─ protocol.js       协议常量
      └─ version.js        构建指纹

passport-companion/        宿主(Python)
  └─ passport_companion/
      ├─ bridge.py         HTTP 桥接
      ├─ session.py        会话状态机
      ├─ protocol.py       协议
      ├─ transport/        传输层(base/ble/relay/fake)
      ├─ asr.py / tts.py   语音转换
      ├─ audio.py          音频工具
      └─ mcp_server.py     MCP 接口