ESP32-S3-N16R8 部署 Mimiclaw 并接入 DeepSeek V4 Flash/Pro 大模型全流程

————————————————


前言

本文旨在教你把 MimiClaw 部署到 ESP32-S3系列开发板上,并对接国内大模型DeepSeek V4 flash,不适合0基础小白,部分步骤参考了Mimiclaw 快速体验指南–还有孙老师 芯电厂和MimiClaw 项目中添加一个新的大语言模型。

一、准备工作

需要的硬件

  • ESP32-S3-N16R8(要求Flash至少16MB,ROM至少8MB)
  • USB-C数据线(插在左边的Type-C接口)
  • Windows系统的电脑+WSL2(Ubuntu子系统)

需要的软件

  • Git
  • DeepSeek开放平台中创建API Key
  • 飞书机器人(如果不会配置机器人,可以参考这个网址中的配置教程:

二、拉取Mimiclaw仓库

1.利用压缩包的方式

仓库名称:memovai / mimiclaw

下载这个包含源代码所有文件的压缩包
下载这个包含源代码所有文件的压缩包在你电脑上的某个位置
在这里插入图片描述
解压缩后打开,你会看到D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1 文件夹下有很多文件。

三、安装ESP-IDF开发环境

3.1 用 VS Code 打开项目并准备环境

Windows 环境+WSL2 (Ubuntu 20.04~Ubuntu 24.04之类的),那我们直接用 Linux 命令行方式 来编译它,因为项目里连脚本都帮你写好了。

打开 VS Code。

点击左下角的绿色双箭头图标(或者按 F1 运行 WSL: Connect to WSL),进入你的 WSL2 (Ubuntu 24.04) 环境。

在 WSL2 环境中,打开源码目录(你的跟我的路径存放位置不同) D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1(在 WSL 里对应的路径通常是 /mnt/d/MiMi/mimiclaw-0.1.1/mimiclaw-0.1.1)。

3.2 安装编译工具箱(ESP-IDF)

在编译之前,我们需要让Ubuntu系统装上乐鑫官方的“翻译官工具箱”。利用项目自带的脚本,在 VS Code 的终端(Terminal)里输入以下两行命令:

  1. 运行项目自带的环境安装脚本(这会自动下载并配置好整个 ESP-IDF 工具链)
./scripts/setup_idf_ubuntu.sh

(如果在运行这个项目自带的安装脚本之后,屏幕上成功打印出了 ESP-IDF v5.x.x(或者类似的版本号)说明成功了)(如果屏幕上提示 idf.py: command not found(找不到命令),这个步骤的关键就是请你想办法安装ESP-IDF**)

避坑提示:如果输入后提示 command not found,说明脚本把工具链装在了独立目录,没有自动写入系统。不要慌,盲敲下面这行官方命令手动引路即可:

. $HOME/esp/esp-idf/export.sh 

(注意最前面有一个点和空格)。
当屏幕打印出 ESP-IDF v5.x.x 时,说明工具箱彻底觉醒!

  1. 刷新环境变量,让当前终端认识 idf.py 这个编译命令
source ~/.bashrc
  1. 验证编译工具链是否就绪
idf.py --version

如果没有报错,说明ESP-IDF环境配置成功

3.3锁定芯片并启动编译

  1. 告诉工具箱,我们要给 ESP32-S3 芯片做固件
idf.py set-target esp32s3
  1. 启动正式编译
idf.py build

执行 idf.py build 时有顺利看到进度条走动吗?
如果没有走动,请把你终端上的报告日志复制粘贴给Ai,让它教你

如果编译成功的话:
在这里插入图片描述
关键会显示:“@flash_args

如果还是没有办法使用命令行的方式安装ESP-IDF的话,那么你可以去看看有个名字是luo_feng_666的博主(他用的是离线包的方式)(这个博主的对于接下来关键的DeepSeek等大模型修改配置文件的方法,它步骤太多,我用的是另一种方法。)

https://blog.csdn.net/qq_45373533/article/details/159695494?spm=1001.2014.3001.5501

四、修改配置文件(核心步骤)

  1. 配置文件 1:main/mimi_config.h
  2. 配置文件 2:main/llm/llm_proxy.c
  3. 配置文件 3:main/mimi_secrets.h

4.1修改main/mimi_config.h

修改目的:这个文件承载了系统的全局宏定义。我们需要借用 OpenAI 的现成协议通道,把终点网址改为 DeepSeek 的服务器。(核心思想)

位置: “D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1\main\mimi_config.h”

// ❌ 修改前:
#define MIMI_OPENAI_API_URL          "https://api.openai.com/v1/chat/completions"
// 🟢 修改后:
#define MIMI_OPENAI_API_URL          "https://api.deepseek.com/v1/chat/completions"

4.2修改main/llm/llm_proxy.c

修改目的:拔除不兼容的“违禁参数”,打通代理 Host 闭环

修改位置 1:大模型参数打包处

/* Build request body (non-streaming) */
cJSON *body = cJSON_CreateObject();
cJSON_AddStringToObject(body, "model", s_model);
if (provider_is_openai()) {
    // ❌ 修改前:使用了 DeepSeek 无法识别的参数,会导致 400 报错
    cJSON_AddNumberToObject(body, "max_completion_tokens", MIMI_LLM_MAX_TOKENS); 
}
/* Build request body (non-streaming) */
cJSON *body = cJSON_CreateObject();
cJSON_AddStringToObject(body, "model", s_model);
if (provider_is_openai()) {
    // 🟢 修改后:替换为全天下通用的标准大模型参数
    cJSON_AddNumberToObject(body, "max_tokens", MIMI_LLM_MAX_TOKENS); 
}

修改位置 2:API 域名返回函数 llm_api_host() 处

//新增
static const char *llm_api_url(void)
{
    // 如果是 openai 协议,直接导流到 deepseek 终点
    return provider_is_openai() ? "https://api.deepseek.com/v1/chat/completions" : MIMI_LLM_API_URL;
}
//新增

/* ── 请将 llm_api_host 修改为以下状态 ── */
static const char *llm_api_host(void)
{
    // 当协议是 openai 时,Host 域名指向 deepseek
    return provider_is_openai() ? "api.deepseek.com" : "api.anthropic.com";
}

4.3修改main/mimi_secrets.h

修改目的:配置认主凭证(密钥、模型与飞书通行证)
这是整个项目最高优先级的私密配置文件,负责给芯片灌入各种核心连接凭证。

修改前(“”符号里面是没有信息的)

/* WiFi:填入你的手机热点,让芯片开机自动盲连(亦可通过 NVS 历史记忆自动读取) */
#define MIMI_SECRET_WIFI_SSID       ""
#define MIMI_SECRET_WIFI_PASS       ""

/* Feishu Bot:填入飞书开发者后台的长连接机器人凭证 */
#define MIMI_SECRET_FEISHU_APP_ID   ""
#define MIMI_SECRET_FEISHU_APP_SECRET ""

/* DeepSeek V4 API:借道 OpenAI 通道,认准最新闪电大脑 */
#define MIMI_SECRET_API_KEY         ""
#define MIMI_SECRET_MODEL           ""
#define MIMI_SECRET_MODEL_PROVIDER  ""

修改后:

/* WiFi:填入你的手机热点,让芯片开机自动盲连(亦可通过 NVS 历史记忆自动读取) */
#define MIMI_SECRET_WIFI_SSID       ""
#define MIMI_SECRET_WIFI_PASS       ""

/* Feishu Bot:填入飞书开发者后台的长连接机器人凭证 */
#define MIMI_SECRET_FEISHU_APP_ID   "你的飞书机器人ID"
#define MIMI_SECRET_FEISHU_APP_SECRET "你的飞书机器人密钥"

/* DeepSeek V4 API:借道 OpenAI 通道,认准最新闪电大脑 */
#define MIMI_SECRET_API_KEY         "你的DeepSeek的APIKEY"
#define MIMI_SECRET_MODEL           "deepseek-v4-flash"//模型名称
#define MIMI_SECRET_MODEL_PROVIDER  "openai"

五、编译烧录

由于 WSL 远程环境与 Windows 本地环境无法同时操作,我们的编译与烧录必须严格分为以下两个阶段进行:

5.1第一阶段:切入 WSL 2 终端(代码编译)

请首先将 VS Code 切换回 WSL: Ubuntu 远程连接状态,唤醒 Linux 子系统终端。

  • 锁定项目根目录
    在 WSL 终端中,切进你的项目源码文件夹:
    命令:
cd /mnt/d/MiMi/mimiclaw-0.1.1/mimiclaw-0.1.1

在这里插入图片描述

  • 激活 ESP-IDF 编译工具链
    由于新开窗口会丢失环境变量,请运行官方脚本来唤醒编译器:
运行官方绝对路径脚本(注意点号后有一个空格):
. /home/liwenzheng/.espressif/esp-idf-v5.5.2/export.sh
  1. 执行编译命令
  • 情况 A:如果你修改了 mimi_config.h 的宏定义
    建议执行一次全清重编,确保宏定义刷新到每一个底层组件中
idf.py fullclean && idf.py set-target esp32s3 && idf.py build
  • 情况 B:如果你后续只修改了 .c 或 .md 尾部的应用层代码
    直接执行增量编译即可,几秒钟就能闪电完成:
idf.py build

5.2第二阶段:切回 Windows 终端(固件烧录)

当 WSL 终端提示 Project build complete 成功后,请完全放下并离开 WSL 窗口,回到你的 Windows 桌面。

  1. 唤醒 Windows 本地 PowerShell
    在 Windows 任务栏搜索并打开普通的 PowerShell(不需要、也别进入 WSL)。

  2. 定位到 Windows 盘符下的 build 目录
    直接在 Windows 命令行里切到编译输出产物文件夹:

PowerShell

cd D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1\build
  1. 调用本地 Python 驱动一键盲刷
    确保你的数据线连接在开发板的左口(应用层原生 USB 口),在设备管理器中看清它的 COM 号,然后闭眼运行这行命令:
PowerShell

# ⚠️ 请将下面的 COM3 替换为你左口在 Windows 下实际识别到的端口号!
python -m esptool --chip esp32s3 -b 460800 --port COM3 write_flash "@flash_args"

烧录完成后的查验:
看到命令行提示

Hard resetting via RTS pin…

在这里插入图片描述

代表烧录大功告成。

保持连接在左口,直接打开 Windows 串口调试助手,连接对应的 COM 口,波特率死守 115200。

按下板子上的 RST 键让芯片重启,你就能在控制台里,静静欣赏 DeepSeek 联网并成功接管飞书长连接的日志啦。

5.3WIFI配置

https://hexchip.com/archives/mimiclaw-quick-guide

去这个网站查看配置命令

5.4测试通信

在这里插入图片描述

总结

如果顺利,那么现在你的 ESP32-S3 已经成功部署了 MimiClaw,并且可以使用接入DeepSeek的 DeepSeek V4 flash大模型了!有什么不懂的可以提问噢
下一步通过飞书机器人给 ESP32 发消息,去试试吧

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐