一条命令没敲,一分钱模型费没花,我用 DSH 把 128 元的 ESP32-S3 刷成了 AI 音箱
文章目录
部分视频或图片暂未收录,已在正文保留提示;需要时可查看原文。查看原文 ↗
前几天我在立创商城买了一块实战派 ESP32-S3 开发板,原价 148,用了新人券 128 块到手,带摄像头和一块 2 寸屏。到手以后我截了张商品页丢给 DSH(DeepSeek Harness),只打了一句"我搞了一个这个"。
四十分钟后,这块板子在桌上跟我说话了。其中十二分钟耗在一根线上。
整个过程我没装 ESP-IDF,没编译,终端里一条命令都没自己敲。查固件、校验、烧录、读日志都是 DSH 干的。我负责插线、换线、拿手机配网,最后对着板子喊话。
还有一件事我想先说。这一整轮对话跑的模型是 DeepSeek V4.1 Flash,走 WorkBuddy 海外版的免费额度,倍率标着 x0.00,不扣积分。会话日志里 154 次模型请求全部记在 workbuddy-ai / deepseek-v4.1-flash 名下。壳是国产的 DSH,模型是免费的 Flash,一块开发板从插上电脑到能聊天,模型这边没花一分钱。
先把边界写清楚
我的电脑是 Apple 芯片的 Mac,系统 macOS 26.6。板子型号 LCKFB-SZPI-ESP32-S3-VA,刷的是小智 AI 固件 v2.5.2。Windows 我没测。DSH 能替你跑命令,替不了你换线、收短信验证码和拿手机配网。
零、先把 DSH 接上免费模型
DSH 本身是个桌面端 Agent,模型可以自己选。我用的是一个叫 dsh-workbuddy-connect 的插件,它把 WorkBuddy 国内版和海外版的模型一起塞进了 DSH 的模型列表。模型名后面直接标积分倍率,x0.00 就是免费。我这边 DeepSeek V4.1 Flash 和阶跃星辰的模型都是 x0.00。
配置只有三步。
-
装好 WorkBuddy 桌面端并登录,国内版、海外版都行
-
在 DSH 桌面端的插件管理里装 dsh-workbuddy-connect
-
重启 DSH,在模型列表里找到 WorkBuddy 分组,挑一个 x0.00 的
这一轮用的就是 DeepSeek V4.1 Flash,倍率 x0.00
我之前专门发过一条推特,录了完整的配置过程,不会配的同学照着看就行。
实在配不明白,把插件的 README 丢给 DSH,让它自己装。这个插件走的是非官方接口,自己用没问题,别薅太狠。
有人会担心免费的 Flash 扛不住这种活。我这轮对话里,它查 GitHub 仓库、翻板级源码、比对 SHA256、调 esptool 读芯片、读串口日志定位唤醒词,129 次工具调用一路接下来,没有出现跑着跑着忘了前面在干什么的情况。上下文窗口是 1M,四十轮对话加一堆日志塞进去也够用。
一、这块板子到底能不能跑小智
DSH 认出了板子,给了几个能玩的方向,其中一条是社区里的小智 AI 音箱固件。我挑了这个。
它接着提醒我先别急。商品页的描述只写了"集成了摄像头和液晶屏",一个字没提麦克风,它想让我先翻过板子看看丝印。我觉得立创官方都把它当推荐玩法在卖了,再准备别的没多大意义。
我丢给 DSH 的第一张图,描述里只提了摄像头和液晶屏
DSH 没硬拦,换了个办法确认。它去翻小智的开源仓库 78/xiaozhi-esp32,在 main/boards/lckfb/ 下面找到了 szpi-esp32s3 这个目录,就是这块板子的官方板级配置。配置里写着 ES8311 和 ES7210 两颗音频芯片,前一颗管喇叭,后一颗管麦克风,还专门打开了设备端回声消除 CONFIG_USE_DEVICE_AEC=y。
麦克风是板载的,不用外接模块。后来它又挖到立创产品页的原文,"配备ES7210和ES8311芯片,支持双麦输入及回声消除"。我的判断没错,它这一趟也没白查,后面挑固件靠的就是这里拿到的板子代号 lichuang-dev。
这一步还有个小插曲。DSH 自带的网页抓取打不开 GitHub 和立创 wiki,域名全被我本机代理解析成了 198.18 开头的假地址。它自己改用命令行的 curl 去拉 GitHub API,一下就通了。你要是也开着代理,看到它说抓不到网页,等它换条路就行。
二、它帮我选了一条不用装环境的路
我告诉它我用 Mac。它先看了一眼我的环境,arm64 芯片,Homebrew 已装,Python 是 3.14.6。
然后它去读小智仓库的 README,翻出两条对新手很要紧的信息。
第一条,小智固件现在要求 ESP-IDF v6.0.1 以上,5.x 已经不支持了。 网上不少小智教程是照着 5.x 写的,照抄编译会报一堆错,还很难搜到原因。
第二条,官方建议新手直接烧编好的固件,不用搭开发环境。
它去翻最新的 v2.5.2 Release,里面一共 190 个固件包,名字带"立创"的有两个。v2.5.2_lckfb-lichuang-c3-dev.zip 是 ESP32-C3 版本,v2.5.2_lckfb-lichuang-dev.zip 才是这块 S3。两个名字只差一个 c3,自己下很容易点错。
我选了免编译这条路。
三、十二分钟耗在一根线上
我插上板子,问它能不能识别出来。
DSH 查了一圈串口,只有蓝牙口和系统调试口,USB 设备树里也没有任何 ESP32 的影子。它给了几种可能,插错口、线是只能充电的线、板子没上电。
我换了个 USB 口,跟它说"我换了个接口,你试一下"。结果一样,还是没有。
这一次它注意到一个细节。USB 2.1 Hub 的设备 ID 变了,说明系统确实感知到了插拔,电是通的,板子却没有作为 USB 设备枚举出来。这种表现最像只有电源针脚、没有数据针脚的充电线。
我翻出另一根线直连电脑,跟它说"我换了一根数据线直连 你看下"。
/dev/cu.usbmodem21301
USB JTAG/serial debug unit
认出来了。从我第一次问它能不能识别,到换线成功,正好十二分钟。
换了根线,它马上认出来了
这是全程唯一一处 DSH 帮不上忙的地方。它能从设备树里推断出是线的问题,线还得我自己换。所以开始之前,请直接拿一根确定能传数据的 Type-C 线,平时给手机传照片那种,插在电脑上,别走扩展坞。
四、烧录之前,它先读了一遍芯片
要和芯片通信得用 esptool。DSH 先试着用系统的 pip 装,被 macOS 的 PEP 668 保护挡了回来,报 externally-managed-environment。它自己建了个虚拟环境,在里面装好 esptool 5.6.0,顺便确认了 Python 3.14 能用。
第一次读芯片又碰到 Operation not permitted。DSH 默认跑在沙盒里,碰串口这种设备要我点允许,它弹出的申请理由写的是"需要访问 /dev/cu.usbmodem21301 这个串口设备来验证 ESP32-S3 芯片能否正常通信"。我点了允许,芯片信息全读出来了。
Chip type: ESP32-S3 (QFN56) revision v0.2
Features: Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz
Embedded PSRAM 8MB
Flash: 16MB
USB mode: USB-Serial/JTAG
16MB Flash 加 8MB PSRAM,小智要求的是 8MB Flash 起步,空间很宽裕。USB 模式是芯片原生的 USB-Serial/JTAG,所以我电脑上一个串口驱动都没装,也能直接用。
关于授权弹窗
烧录和读日志都要碰串口,前后我点了四次允许,后来嫌烦,把 DSH 的审批策略从"ask"改成了"never"。新手我建议前几次还是看一眼申请理由再点,确认它要做的就是读写这块板子。
五、烧录花了 35 秒
DSH 接下来的动作我照着日志列一遍。
-
下载 v2.5.2_lckfb-lichuang-dev.zip,2.7MB
-
拿 Release 里官方的 SHA256SUMS 比对,哈希一致
-
解压出一个合并好的 merged-binary.bin,9.7MB,不用管分区表和 bootloader
-
用 esptool image-info 读固件头,Flash size: 16MB,ESP-IDF: v6.1,和板子对得上
-
写入
Wrote 10164192 bytes at 0x00000000 in 26.4 seconds (3079.3 kbit/s)
Hash of data verified.
Hard resetting via RTS pin...
写 Flash 26.4 秒,加上握手和校验一共 34.7 秒,写完自动重启。
第四步是我最放心的地方。它烧之前先确认固件就是给 16MB 板子编的,没有拿到文件就直接往里写。
六、板子自己告诉我该怎么配网
DSH 装了个 pyserial 去读串口日志,板子启动后打印得很清楚。
WifiConfigurationAp: Access Point started with SSID Xiaozhi-B545
WifiBoard: WiFi config mode entered
配网模式: 手机连接热点 Xiaozhi-B545,浏览器访问 http://192.168.4.1
Adev_Codec: Open codec device OK
前三行是配网提示,最后一行说明音频芯片初始化成功。之前从源码推断出来的板载麦克风,到这里有了运行时的证据。
板子屏幕上也显示着同样的提示。
烧完自动进入配网模式
剩下的我用手机完成。
-
手机连上板子的热点 Xiaozhi-B545,你的后缀会不一样,以屏幕为准
-
手机提示"受限无线局域网"是正常的,这个热点本来就不通外网
-
浏览器打开 http://192.168.4.1,选自己家的 Wi-Fi,填密码,点连接
配网页面会自动扫出附近的 Wi-Fi
页面上写着"从下面列表选择 2.4G Wi-Fi"。ESP32 只认 2.4GHz,路由器双频合一时如果死活连不上,先往这个方向查。
看到"配置成功"就可以了
连上网以后,板子屏幕上出现一个 6 位数字。我顺手把它发给了 DSH,它读完日志告诉我方向反了。
激活设备: xiaozhi.me
811139
Activating... 1/10
这个码要拿到 xiaozhi.me 去输入。我登录控制台,点"添加设备",填上 811139,板子那边一直在轮询,几秒钟就激活了。
七、第一次喊它,它没理我
激活完我对着板子说了几句,没反应。
DSH 先看待机日志,只有心跳,没有任何唤醒记录,板子根本没"听到"。它又把板子重启了一遍,抓完整的启动日志,麦克风、回声消除、语音检测和唤醒引擎全部就绪,问题出在唤醒词上。
AFE_CONFIG: Set WakeNet Model: wn9_nihaoxiaozhi_tts
这块板子的唤醒词是「你好小智」,四个字。我照着喊了一遍,它回话了。
答案一直写在日志里,我自己是不会去翻的。所以板子不理你的时候,直接问 DSH 唤醒词是什么,比对着板子换着花样喊快得多。
我用下来的感受是,声音挺清晰,没有回声,也没有断断续续,从说完到它开口延迟很短。屏幕上是一张表情脸,对话时表情会跟着变。麦克风孔一个在侧边,一个在底部,别用手或者壳子挡住。
聊完它自己说"好啦,那我先不打扰你了,拜拜!"
DSH 动手前担心过一件事。这类带喇叭的板子如果回声消除没调好,可能把自己的声音当成新指令,自问自答停不下来。它从日志里看到固件默认开的是 NLP_VERY_AGGRESSIVE,抑制得很狠。我实际用下来没碰到回声。
八、它跑偏的时候,喊一声就行
DSH 很勤快,勤快过头的时候需要人喊一声。
板子能聊天以后,它开始研究板子上的孔。它让我拍侧面、拍底部,猜这个孔是复位键,那个口是 USB-HUB,猜完又让我捂住孔测麦克风。来回拍了三张照片以后,我跟它说:"咱们天天研究这些孔干嘛呀?……能用怎么用?怎么更好的用?"
它回我"你说得对,我跑偏了",马上收住,转去整理这块板子能怎么玩。
Agent 会把每个细节都当成必须搞清楚的事。你要的是能用、好用,就直接告诉它,它不会跟你较劲。
九、换 Wi-Fi 要不要重新绑定
第一次配网时我没截图。第二天早上我想补,问 DSH 还能不能让板子重新进配网模式。
它先试了温和的办法,重启板子,结果板子记得 Wi-Fi,直接连上了。它跟我确认以后,用 esptool 擦掉了存 Wi-Fi 配置的 NVS 区域,没碰固件。板子重启,回到了配网模式,上面那几张配网截图就是这次补拍的。
重新配好网,我有点慌,跑去跟它说没看到设备连接,问是不是要去后台把智能体删了重新添加。它读完日志让我别删。
WifiBoard: Connected to WiFi: TP-LINK_2836
Application: Activation done
StateMachine: State: activating -> idle
板子连上网以后自己就激活了,屏幕上也没再出现配对码,后台还是原来那个智能体。我这台的情况是,清掉 Wi-Fi 重新配网,绑定关系还在。搬家、换路由器、改密码,直接重新配网就行。
后台显示"在线",最近对话 1 分钟前
十、后台能调的东西比我以为的多
板子能聊天以后,DSH 想帮我看看 xiaozhi.me 控制台。它用内置浏览器打开了登录页,卡在短信验证码和图形验证码上,这两样只能我自己来。我当时也觉得控制台没什么可配的,就让它算了。
后来我在手机上登进去一看,能调的东西不少。
角色。 支持普通话、英语、日语、粤语、越南语、法语、阿拉伯语、西班牙语,切成英语就是个口语陪练。音色有 6 种,每个都能先试听。右上角打开"自定义"开关,就能直接改那段用 Markdown 写的角色设定。
模型与记忆。 默认是小智 Lite。下拉列表里写着"GitHub 认证 以下模型免费用",有 Qwen 3.6、DeepSeek V4 和豆包 Seed 2.0,官方自己标了"响应快速""性格丰富""延迟较大"。记忆开着的话,它能跨对话记住你说过的话,我这台已经攒了 2 条。
板子这边也能免费换大模型,要先做 GitHub 认证
扩展能力。 天气、笑话、音乐、新闻、知识库都能勾选,下面还有个 MCP 接入点,可以接外部服务。
扩展能力页
声纹识别和换模型这两项我还没实测,有兴趣可以自己试。
算下来,从电脑到板子全程没花模型费。电脑上 DSH 跑的是 WorkBuddy 免费的 DeepSeek V4.1 Flash,板子上小智做完 GitHub 认证也能免费用 DeepSeek V4。花掉的钱只有那块 128 元的板子。
十一、照着做,可以这样跟 DSH 说
我当时的说法都很随意,下面是整理过的版本,直接复制就能用。
插上板子以后
我买了一块立创实战派 ESP32-S3 开发板,已经用数据线插到 Mac 上了,你看下能不能识别出来。
识别成功以后
帮我把它刷成小智 AI 音箱,用官方编好的固件,不装开发环境。烧之前先读一下芯片信息,确认固件和板子匹配,下载的文件也校验一下。
烧完以后
读一下串口日志,告诉我板子现在是什么状态,下一步我该做什么。
喊它没反应
我对它说话没反应,帮我从日志里看看唤醒词是什么,麦克风有没有正常初始化。
想重新配网
我想重新配网,帮我清掉板子里存的 Wi-Fi 配置,别动固件。
还有一个习惯很管用。每做一个物理动作,就告诉它你做了什么,"我换了个口""我换了根线"。它会重新检测,对比前后两次的结果,我那根充电线就是这么揪出来的。
十二、常见问题速查
-
插上电脑没反应 先换一根确定能传数据的线,直连电脑,不走扩展坞
-
DSH 弹出授权申请 它要访问串口,看清理由是读写这块板子再点允许
-
固件烧进去跑不起来 检查下的是不是 lichuang-c3-dev,那是 ESP32-C3 版本
-
对它说话没反应 唤醒词是「你好小智」,四个字说全,别挡住麦克风孔
-
配网时密码对却连不上 ESP32 只认 2.4G,看看路由器是不是双频合一
-
屏幕上出现 6 位数字 拿到 xiaozhi.me 控制台的"添加设备"里输入
-
重新配网后没出现配对码 绑定还在,板子会自己激活,后台不用删
-
不会给 DSH 配免费模型 看上面插进来的那条推特,或者把插件 README 丢给 DSH
写在最后
这块板子还有摄像头和触摸屏没用上,后面再慢慢折腾。
国产的壳,免费的模型,一块 128 元的板子,四十分钟能聊天。你要是手里也有块吃灰的开发板,先找一根能传数据的线,再把 DSH 接上免费模型,剩下的跟它说就行。遇到卡住的地方欢迎丢在评论区。
用到的链接
-
小智控制台 https://xiaozhi.me
-
立创实战派 S3 文档 https://wiki.lckfb.com/zh-hans/szpi-esp32s3/
-
DSH 接 WorkBuddy 免费模型的配置推特 https://x.com/xiangxiang103/status/2109640515981623333













