什么情况需要自己烧录
固件用 Arduino IDE 烧录。Distro Board V3 与 V2 套件出厂已预刷固件,只有想自定义或更新版本时才需要动手;DIY 的 Lolin S2 Mini 路线与 Distro Board V1 路线必须自己烧。烧录前把 sesame-firmware-main.ino 连同全部 .h 头文件放进与主文件同名的文件夹再打开,缺头文件编译不过。
环境与版本要求
先装 Arduino IDE 2.0 或更高版本,在 File → Preferences 的 Additional Board Manager URLs 填入 ESP32 板支持包地址,再到 Tools → Board → Boards Manager 搜索 ESP32 安装板支持包:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
| 组件 | 版本要求 |
|---|---|
| Arduino IDE | 2.0 或更高 |
| ESP32 by Espressif Systems | v2.0.0 或更高 |
| ESP32Servo | 锁定 v3.0.9 |
| Adafruit SSD1306 | 官方未指定版本 |
| Adafruit GFX | 官方未指定版本 |
ESP32Servo 必须锁 v3.0.9。官方明确说明新版存在已知问题:写一个舵机会影响多个通道(madhephaestus/ESP32Servo issue #103)。装最新版会出现多路舵机互相串动,按「装最新版即可」的思路装这个库会直接翻车。
板型与菜单选项对照
Tools → Board 按板型选择,再核对选项:
| 板型 | Board 选择 | 关键选项 |
|---|---|---|
| Lolin S2 Mini | LOLIN S2 Mini | Upload Speed 921600;USB CDC On Boot Enabled;Partition Scheme Default 4MB with spiffs |
| Distro Board V1 | ESP32 Dev Module | 官方文档未单列额外选项 |
| Distro Board V2 / V3 | ESP32S3 Dev Module | USB CDC On Boot Enabled;Flash Mode QIO 80MHz;Partition Scheme Default 4MB with spiffs |
V2/V3 用的 S3 板卡复位后串口还能不能出现,关键就在 USB CDC On Boot 是否 Enabled,烧完找不到端口先查这一项。
引脚组与网络配置对照
sesame-firmware-main.ino 顶部默认激活 Lolin S2 Mini 引脚组,另外三组被注释。换板必须把不用的一组注释掉、取消自己板型那组的注释,官方文档把这一步列为烧录流程的固定环节。各组数值逐字如下:
| 板型 | servoPins[8] | I2C_SDA / I2C_SCL |
|---|---|---|
| Lolin S2 Mini(默认激活) | {1, 2, 4, 6, 8, 10, 13, 14} |
33 / 35 |
| Distro Board V3 | {4, 5, 6, 7, 10, 11, 12, 13} |
8 / 9 |
| Distro Board V2 | {4, 5, 6, 7, 15, 16, 17, 18} |
8 / 9 |
| Distro Board V1 | {15, 2, 23, 19, 4, 16, 17, 18} |
21 / 22 |
OLED 字段各板一致,不用改:
| 字段 | 值 |
|---|---|
| OLED_I2C_ADDR | 0x3C |
| SCREEN_WIDTH / SCREEN_HEIGHT | 128 / 64 |
网络配置在源码第 17–23 行,默认 ENABLE_NETWORK_MODE 为 false,固件以纯 AP 模式运行,不主动连家庭路由器:
#define NETWORK_SSID "" // 家庭 WiFi 名
#define NETWORK_PASS "" // 家庭 WiFi 密码
#define ENABLE_NETWORK_MODE false // 改成 true 启用网络模式
烧录全程
- 配环境:装 Arduino IDE 2.0+,按上文 URL 添加板支持包地址并安装 ESP32 by Espressif Systems v2.0.0+,再装三个库。预期:Library Manager 里 ESP32Servo 显示 3.0.9。
- 选板型:按上表在 Tools → Board 选择并核对选项。预期:菜单栏显示自己板型的名字。
- 改引脚组:打开 sesame-firmware-main.ino,注释掉不用的 servoPins 与 I2C_SDA / I2C_SCL 组,取消自己板型那组;要开机自动连网再改第 17–23 行的网络字段。预期:源码里只有自己板型的一组引脚未被注释。
- USB 连板,Tools → Port 选出现的串口。
- 点上传按钮。预期:编译无报错,写入完成时 IDE 提示上传结束。
- 验证:打开 Tools → Serial Monitor 设 115200,按一次复位。预期:串口打印启动信息与网络信息;纯 AP 模式下手机连热点、浏览器开任意网址即进 captive portal;网络模式下看到 Connected! IP: 字样后访问 http://sesame-robot.local(源码 deviceHostname = "sesame-robot")或串口显示的 IP,打开控制页。
中文教程常见误区对照
| 错误说法 | 官方事实 | 出处 |
|---|---|---|
| 改 config.h 填 WiFi | WiFi 配置写在 sesame-firmware-main.ino 第 17–23 行,字段为 NETWORK_SSID、NETWORK_PASS、ENABLE_NETWORK_MODE | Sesame 官方固件文档、固件源码 |