## 代码变更 ### main/application.cc 修复 T01 probe 日志 %lld 格式 bug(改用 %lu + unsigned long) ### main/boards/common/esp32_camera.cc - 修复 DVP V4L2 单 buffer 导致 DMA 饥饿:req.count 从 1 改为 2 - 修复 [T01] Probe 日志 elapsed=ldus 显示问题(同上格式修复) ### main/face_tracker.cc 多轮迭代: - 新增 frame debug 诊断日志(打印 top-left/center 16B + zero_bytes 统计) - pix_type 尝试路径:YUYV → RGB565LE → RGB565BE → YUYV → RGB888(手动转换) - 手动实现 BT.601 公式 YUYV→RGB888 转换,绕过 ImagePreprocessor 黑盒 - face_tracker 任务从 Core 0 切换到 Core 1,避让 RMT/LED 死锁 - 新增 INFO 级限频日志(每秒 1 条 face 检测记录) - 修复推理时长日志 %lld 格式 bug - 连续 3 秒无人脸时打印 no face detected ### main/idf_component.yml esp_video 升级 1.3.1 → ~1.4.1(手动 patch 修 xclk_freq bug) ### partitions/v2/16m.csv OTA 分区扩容:3.94MB → 5MB,assets 缩到 5.875MB,支持 4.23MB 固件 ### docs/phase-01-face-tracking/PROGRESS.md 更新 Phase 01 执行日志,记录实机调试细节 ## 文档更新 ### Coglet项目分析与开发指南.md 新增第六点五节 完整记录本轮调试的 23 个踩坑,分为: 1. 编译/配置类(5 个):板级重置、依赖冲突、bootloader 缓存、%lld 格式、xclk_freq bug 2. 摄像头数据链路(5 个):sensor driver 启用、V4L2 buffer 数量、分区扩容、镜头保护膜、光照 3. esp-dl 人脸检测(3 个):MSR letterbox 伪影、ESPDET OOD 默认输出、字节序判断 4. 任务调度(3 个):WDT 崩溃、GDMA ISR 崩溃、弱符号链接 5. RP2040 端(4 个):idle 回中、坐标累加撞限位、mpremote 阻塞、两分支代码差异 6. 硬件(3 个):飞线验证、360° 舵机误用、烧录生效验证 附调试方法论 6 条 + 未解决遗留问题 3 条 ## 已解决问题 - ✅ ESP-IDF 编译链路(依赖/分区/格式) - ✅ ESP32 + RP2040 端到端协议(face:x,y UART) - ✅ WDT 崩溃(face_tracker 切到 Core 1) - ✅ RP2040 眼球回中机制(idle 时回正) - ✅ V4L2 双 buffer(DMA 数据更新正常) ## 遗留问题(待解决) - ❌ face 检测 box 固定伪激活(无论 pix_type / 画面内容 / 模型选择) - ❌ GDMA ISR 每 ~30s 触发 InstrFetchProhibited 崩溃 - ⚠️ 端到端验收:眼球未真正跟随人脸 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
129 lines
3.6 KiB
YAML
129 lines
3.6 KiB
YAML
## IDF Component Manager Manifest File
|
||
dependencies:
|
||
waveshare/esp_lcd_sh8601: 1.0.2
|
||
espressif/esp_lcd_ili9341: ==1.2.0
|
||
espressif/esp_lcd_gc9a01: ==2.0.1
|
||
espressif/esp_lcd_st77916: ^1.0.1
|
||
espressif/esp_lcd_axs15231b: ^1.0.0
|
||
|
||
espressif/esp_lcd_st7701:
|
||
version: ^1.1.4
|
||
rules:
|
||
- if: target in [esp32s3, esp32p4]
|
||
espressif/esp_lcd_st7796:
|
||
version: 1.3.5
|
||
rules:
|
||
- if: target in [esp32, esp32s2, esp32s3, esp32p4]
|
||
espressif/esp_lcd_spd2010: ==1.0.2
|
||
espressif/esp_io_expander_tca9554: ==2.0.0
|
||
espressif/esp_lcd_panel_io_additions: ^1.0.1
|
||
78/esp_lcd_nv3023: ~1.0.0
|
||
78/esp-wifi-connect: ~2.6.2
|
||
78/esp-opus-encoder: ~2.4.1
|
||
78/esp-ml307: ~3.5.1
|
||
78/xiaozhi-fonts: ~1.5.5
|
||
espressif/led_strip: ~3.0.1
|
||
espressif/esp_codec_dev: ~1.5
|
||
# [Phase 01] 2026-04-17 升级:从 ~2.2.0 升到 ~2.3.1 以解决 esp-dsp 版本冲突
|
||
# esp-sr 2.2.x 依赖 esp-dsp==1.6.0,而 esp-dl 3.3.0 依赖 esp-dsp==1.7.0
|
||
# esp-sr 2.3.0+ 已切换到 esp-dsp 1.7.0,与 esp-dl 兼容
|
||
espressif/esp-sr: ~2.3.1
|
||
espressif/button: ~4.1.3
|
||
espressif/knob: ^1.0.0
|
||
# [Phase 01] 2026-04-20 升级:1.3.1 在 S3 DVP 启动时少填 xclk_freq 字段
|
||
# 导致 VIDIOC_STREAMON 报 "xclk_freq is not set"(见 dvp_video_device.c:229-241)
|
||
# 升级到 ~1.4.1 解决,如果需要 API 适配再改 esp32_camera.cc
|
||
espressif/esp_video:
|
||
version: ~1.4.1
|
||
rules:
|
||
- if: target not in [esp32]
|
||
espressif/esp_image_effects:
|
||
version: ^1.0.1
|
||
rules:
|
||
- if: target not in [esp32]
|
||
espressif/esp_lcd_touch_ft5x06: ~1.0.7
|
||
espressif/esp_lcd_touch_gt911: ^1
|
||
espressif/esp_lcd_touch_gt1151: ^1
|
||
waveshare/esp_lcd_touch_cst9217: ^1.0.3
|
||
espressif/esp_lcd_touch_cst816s: ^1.0.6
|
||
lvgl/lvgl: ~9.3.0
|
||
esp_lvgl_port: ~2.6.0
|
||
espressif/esp_io_expander_tca95xx_16bit: ^2.0.0
|
||
espressif2022/image_player: ^1.1.1
|
||
espressif2022/esp_emote_gfx: ^1.1.2
|
||
espressif/adc_mic: ^0.2.1
|
||
espressif/esp_mmap_assets: '>=1.2'
|
||
txp666/otto-emoji-gif-component:
|
||
version: ^1.0.3
|
||
rules:
|
||
- if: target in [esp32s3]
|
||
espressif/adc_battery_estimation: ^0.2.0
|
||
espressif/esp_new_jpeg: ^0.6.1
|
||
|
||
# [Phase 01] esp-dl 人脸检测依赖(仅 S3 目标)
|
||
# 偏差记录 2026-04-17: PLAN 原定 esp-dl==3.2.0,但 human_face_detect 0.4.1
|
||
# 实际依赖 esp-dl ~3.3.0(registry 版本约束),升级到 ~3.3.0 以解决版本冲突
|
||
espressif/esp-dl:
|
||
version: "~3.3.0"
|
||
rules:
|
||
- if: target in [esp32s3, esp32p4]
|
||
espressif/human_face_detect:
|
||
version: "==0.4.1"
|
||
rules:
|
||
- if: target in [esp32s3, esp32p4]
|
||
|
||
# SenseCAP Watcher Board
|
||
wvirgil123/sscma_client:
|
||
version: 1.0.2
|
||
rules:
|
||
- if: target in [esp32s3]
|
||
|
||
tny-robotics/sh1106-esp-idf: ^1.0.0
|
||
waveshare/esp_lcd_jd9365_10_1:
|
||
version: '*'
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
waveshare/esp_lcd_st7703:
|
||
version: '*'
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
espressif/esp32_p4_function_ev_board:
|
||
version: ^5.0.3
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
espressif/esp_lcd_ili9881c:
|
||
version: ^1.0.1
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
espressif/esp_lcd_ek79007:
|
||
version: ^1.0.3
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
espressif/esp_hosted:
|
||
version: 2.0.17
|
||
rules:
|
||
- if: target in [esp32h2, esp32p4]
|
||
espressif/esp_wifi_remote:
|
||
version: '*'
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
espfriends/servo_dog_ctrl:
|
||
version: ^0.1.8
|
||
rules:
|
||
- if: target in [esp32c3]
|
||
|
||
llgok/cpp_bus_driver:
|
||
version: 1.1.0
|
||
rules:
|
||
- if: target in [esp32p4]
|
||
|
||
espressif/bmi270_sensor:
|
||
version: ^0.1.0
|
||
rules:
|
||
- if: target in [esp32s3, esp32c5]
|
||
|
||
## Required IDF version
|
||
idf:
|
||
version: '>=5.4.0'
|
||
espressif/esp_lcd_touch_st7123: ^1.0.0
|