ESP32-C6 是乐鑫首颗集成 WiFi 6 + 802.15.4(Thread/Zigbee/Matter)的 RISC-V 芯片,做智能家居边缘设备、Matter bridge 很主流。整理 4 个公开社区真实踩坑点(ESP-IDF GitHub Issue)。
本文整理自公开社区记录(ESP-IDF GitHub Issue、ESP-Matter 社区),不代表平台观点。如有出入以原帖为准。
坑 1:Thread ICD 低功耗被 1Hz 唤醒拖垮
- 现象:作为 Thread ICD 运行,芯片每 1 秒唤醒一次约 11ms、27mA,单次唤醒耗 290-325μC,平均电流约 300μA——远超浅睡眠的 50μA,1Hz 唤醒成了功耗大头。
- 触发条件:esp-matter 默认配置
CONFIG_LWIP_IPV4=y,lwIP 的etharp_tmr和dhcp_coarse_tmr周期性唤醒。 - 解决方案:
- 把
CONFIG_LWIP_IPV4设为n,移除etharp_tmr和dhcp_coarse_tmr定时器 - 针对
nd6_tmr,按 OpenThread netif 情况单独处理 - 实测平均电流可压回几十微安级别
- 把
- 来源:ESP-IDF GitHub Issue(社区记录)
坑 2:Zigbee Time Cluster 读不出时间
- 现象:Arduino esp32 3.3.10 下,ESP32-C6 的 Zigbee Time Cluster 异常:终端设备读属性报错,UTC 和本地时间显示为空值。
- 触发条件:Arduino IDE 2.3.8 + esp32 核心 3.3.10(3.3.10 版本引入回归)。
- 解决方案:回退到 Arduino esp32 3.3.7(该版本 Time Cluster 正常),或等官方修复后升级。
- 来源:ESP-IDF GitHub Issue(社区记录)
坑 3:USB-Serial-JTAG 在 macOS 下间歇性掉线
- 现象:ESP32-C6 的 USB-Serial-JTAG 外设间歇性从 macOS USB 总线掉线,要断电重启才恢复;掉线期间固件运行正常(RS-485、OLED 都正常),但
/dev/cu.usbmodem*消失。 - 触发条件:Mac Studio 前面板或 Thunderbolt 集线器连接时,两个 ESP32-C6 同时枚举可能失败。
- 解决方案:按"固件问题 / macOS 驱动 / 电气因素"三层隔离排查:最小化测试代码 + 总线监视器复现,调整 sdkconfig 或更新核心,必要时换直连口对比。
- 来源:ESP-IDF GitHub Issue(社区记录)
坑 4:WebSocket 多订阅者扇出饿死
- 现象:单核 ESP32-C6 上,一个 WS 会话订阅 4 个值,生产者 4Hz 连续发布,结果只有 3 个接收端约半速率交付、第 4 个直接为 0(25 秒内预期 100 次,实际 3 端各约 53 次、1 端 0 次)。
- 触发条件:生产者是非 httpd 任务、单次传递不放弃;扇出宽度等于
kTxPoolSlots,等待路径每轮只释放一个槽位。 - 解决方案:核查 #1216 变更里"保留槽位"对非 httpd 任务同程传递预算的影响,验证等待路径释放逻辑,跑候选补丁回归。
- 来源:ESP-IDF GitHub Issue(社区记录)
小结
ESP32-C6 的坑集中在Thread/Matter 低功耗配置、Zigbee 协议栈版本回归、USB-JTAG 平台差异、httpd 同程传递调度四块。做 Matter 设备先搞定功耗配置,能省一大半后续调优时间。
如果你也在用 ESP32-C6 做智能家居/Matter,推荐一个工具叫洛溯驹,专门把散落 GitHub/官方论坛的乐鑫 RISC-V 芯片踩坑记录整理成结构化笔记,现在在做首批工具内测,想试的评论区扣 1。