首次安装 / 无法正常启动
Factory + USB
使用数据线和电脑,从 0x0 写入包含离线语音模型的完整固件。此方式会清除设备中保存的 Wi-Fi 配置。
本教程面向微雪 ESP32-S3-RLCD-4.2 用户,涵盖安装、天气、环境记录、市场看板、计时、对话、闹钟、图片、音乐与日常升级。
开始之前
| 文件 | 类型 | 适用情况 | 安装方式 |
|---|---|---|---|
-factory.bin | 完整固件 | 首次安装、旧版迁移、故障恢复 | USB 从 0x0 写入;清除配置 |
-ota.bin | 应用固件 | 已安装 v0.7.0 或更新版本 | 在线更新或设置门户;保留配置 |
-model.bin | 语音模型附件 | 旧设备首次启用离线语音 | 与同版本 OTA 通过项目 USB 脚本写入 |
三类文件用途不同:不要把 OTA 或模型写入 0x0,也不要在设置门户上传 Factory 或模型。Factory 已经包含同版本语音模型。
需要长按的操作会在按住 1 秒后显示动作、剩余时间和 RELEASE TO CANCEL。达到原有的 2 秒或 3 秒门槛前松开只会取消,不会误触发短按切页。
确保文件完整
(Get-FileHash .\esp32-rlcd-firmware-v0.34.0-factory.bin -Algorithm SHA256).Hash.ToLower()
sha256sum esp32-rlcd-firmware-v0.34.0-factory.bin
shasum -a 256 esp32-rlcd-firmware-v0.34.0-factory.bin
如果文件名或版本不同,请替换命令中的名称。校验结果不一致时不要继续安装,重新下载固件。
电脑安装
下面以 Windows 为例。准备一根支持数据传输的 Type-C 线,并保持设备稳定供电。v0.34.0 Factory 已包含应用与离线语音模型。
安装 Python 3,然后在 PowerShell 执行:
py -m pip install "esptool==5.3.1"
py -m esptool --help
连接 Type-C 后,在 Windows 设备管理器中找到 USB JTAG/serial debug unit,记下对应的 COM 号。也可以在 PowerShell 执行:
Get-CimInstance Win32_SerialPort |
Where-Object PNPDeviceID -Match 'VID_303A&PID_1001' |
Select-Object DeviceID, Name
在固件所在文件夹打开 PowerShell,将示例中的 COM5 和文件名替换为实际端口和固件文件名:
py -m esptool --chip esp32s3 --port COM5 --baud 460800 `
--before no-reset --after no-reset write-flash `
--flash-mode dio --flash-freq 80m --flash-size 16MB `
0x0 .\esp32-rlcd-firmware-v0.34.0-factory.bin
出现 Hash of data verified. 表示写入和回读校验成功。然后长按 PWR 关机,不要按 BOOT,短按 PWR 正常启动。
不要额外执行全片擦除。Factory 固件已经包含 Bootloader、分区表、应用和语音模型,并会覆盖本项目的网络配置。
第一次开机
WI-FI SETUP、热点名称、随机密码和二维码。http://192.168.4.1。暂时没有网络时,可以按屏幕提示离线进入首屏。已经校准且装有正常 RTC 备用电池的设备,断网后仍可继续显示时间、日历和传感器信息。
RTC 尚未校时或日期超出支持范围时,月历页显示校时提示,不显示示例日期。可在网页“常用 → 日期与时间”用手机或电脑校准。
页面底部显示各按键对应的目标页面:BOOT 按保存的顺序切换日常页面,新装默认依次为时钟、天气、环境、市场、月历、计时、图片、音乐与 CHAT,不可用或隐藏的页面自动跳过;系统中心依次前往 SETTINGS、ONLINE UPDATE 和 STATUS。
普通页面同时短按 BOOT 和 KEY,全部松开后返回时钟,音乐与计时继续运行。网页设置、升级、对话和提醒等操作期间不响应此快捷键,请按屏幕提示结束当前操作。PWR 仍只负责开关机。
v0.26.0 起,日常页和系统页保持当前选择,直到手动切换或返回;正常开机仍进入时钟,不需要另设常驻页。
可选功能
天气功能需配置 QWeather API Host 和 API Key,设备通过 HTTPS 直接获取所选城市的实时天气和三日预报。
abc123.xy.qweatherapi.com 的主机名,不要填写 https:// 或路径。已有 Key 后,开关天气、修改地点和官方 API Host 都可在同一 Wi-Fi 的授权网页中完成。天气设置与 Key 分开保存,不会互相覆盖未保存内容;只有填写或更换 Key 需要设备热点。
天气页顶栏显示 RTC 当前日期和星期,底部单独显示数据获取的月日与时间;断网时仍能区分今天与旧缓存。在天气页按住 KEY 2 秒即可立即刷新,不必重新进入设置门户。
v0.29.0 及更早版本的按钮为“保存并获取天气”,保存后会关闭门户并打开天气页。
实时天气约每 30 分钟刷新,三日预报约每 6 小时刷新;成功数据会保存在设备中,短时断网或刷新失败时继续显示最近缓存。天气不依赖 microSD,也不会替换首屏的室内温湿度。
SAVING 不为天气定期联网,但允许按键手动刷新;完成后按省电规则关闭网络。
Key 不会在设置页中回显。获取方式见 QWeather 的身份认证与API Host说明;请求计入对应 QWeather 账号的用量。
设备提供省电开关、音乐音量与计时时长选择。时区、温标、闹钟、计时自定义值、Wi-Fi、天气、市场看板和 AI 等配置放在网页,不提供多级设备菜单。
SETTINGS 按住 BOOT 2 秒切换手动提前省电;自动低电保护始终生效。SETTINGS,按住 KEY 2 秒直接打开网页设置。http://192.168.4.1。网页分为常用、联网、媒体、维护四区。每项独立保存,切换分区保留未保存内容;浏览设置或歌单不会打断音乐。
在“常用 → 显示页面”选择保留天气、环境、市场看板、月历、计时、图片、音乐或对话,并用上下按钮调整顺序。时钟固定第一位;隐藏或暂不可用的页面会跳过,但仍保留排序位置。隐藏页面不删除配置与文件,也不关闭后台服务;天气、市场仍需先开启,图片与音乐仍需存储卡中有可用内容。
从 v0.33.0 升级时保留原有七页的显隐与相对顺序,环境页追加在末尾;此前全部隐藏则仍保持全部隐藏。新装或恢复默认时,环境位于天气之后,计时位于月历之后。
读取失败时可点“重试读取”,只重新读取失败的部分,其他草稿保留。保存时断线则先重新读取、核对设备实际结果,再决定是否保存;网页不会自动重复提交。
局域网访问仅限可信家庭网络,可管理普通偏好、RTC、天气地点与官方 Host、AI 开关与普通设置、市场看板、图片和歌曲。修改 Wi-Fi、填写或更换天气与 AI 的 API Key,以及本地 OTA 必须切到设备热点;不要将访问码、二维码公开或做端口映射。刷新网页后需重新扫码或输入访问码。
门户闲置 5 分钟关闭,有操作可续期,一次最多 30 分钟;已开始的上传最多 10 分钟。短按 BOOT 可关闭空闲门户,写入期间不可中断。
旧版 v0.26.0 / v0.27.0 先长按进入快捷菜单,再选择 WEB SETTINGS;进入菜单分别需 3 秒 / 2 秒。v0.25.0 及更早版本,以及启动恢复模式,仍在 SETTINGS 按住 KEY 3 秒直接打开热点。
在“维护 → 偏好备份”下载 JSON;恢复时选择文件,先检查预览,再确认导入。同 Wi-Fi 授权门户与设备热点均可操作,无需存储卡,导入后不重启。
备份包含时区、温标、音量、页面顺序、计时、音乐播放方式与闹钟规则,不含 Wi-Fi、API Key、外部服务配置或媒体文件,也不改变省电、Beta 和 SD 保存开关。导入前请核对闹钟;未保存的网页草稿会保留,断线时应重新读取确认结果。
市场看板 Beta 默认关闭。设备通过 HTTPS 直连新浪财经,无需 API Key 或 microSD。
MARKET。表格显示指数点位与涨跌幅,每行下方是该指数的北京时间(UTC+8)报价日期和时间;顶栏显示设备当前时间。没有数据时显示 --,刷新失败时保留本次开机内的旧值并以 * 标记。
正常模式仅停留市场页时约每 2 分钟刷新,离开后停止自动请求。省电模式不自动获取;在市场页按住 KEY 2 秒可临时联网刷新,完成后恢复原省电状态。
预设覆盖 A 股、港股、美股及部分亚洲市场,不支持任意股票代码。报价可能延迟或暂时缺失,仅供参考;关机不会保存行情缓存,但会保留已选指数与顺序。
TIMER 是可选日常页,无需联网、RTC 校时或 microSD。按住 BOOT 2 秒切换倒计时与 STOPWATCH 秒表;两者独立运行,切换模式、离开或隐藏页面不会停止计时。
99:59:59。网页“常用 → 计时设置”可独立保存 1—180 分钟的自定义时长,默认 5 分钟;与四个标准档不重复时追加为第五档。保存只更新候选档位,不改变当前选择、正在进行的计时或秒表,也不自动开始。设备端选档不保存,重启后回到 5 分钟选择态,秒表归零。
倒计时完成时使用独立闹钟音量,提示声最多 3 秒、屏幕提醒最多 10 秒,短按任一键关闭;音量为 0% 时仅屏幕提醒。有声提醒会停止音乐,结束后不自动恢复。RTC 闹钟及语音、门户、写卡、更新等事务优先,超过 60 秒仍无法提醒就不再补响。计时不能在物理关机后继续,也不会唤醒设备。
短按 BOOT 切到 ENVIRONMENT,查看室内温湿度趋势和最低、最高值。正常模式每 30 秒采样,省电模式每 60 秒,每 5 分钟汇总;保留最近 24 小时,新记录从左向右增长,未采集和关机时段留空。
没有网络、存储卡或有效 RTC 时,仍可记录本次开机的数据。在网页“常用 → 环境趋势”查看曲线并下载当前窗口 CSV;展开或点击刷新才读取设备数据,不自动上传服务器。
SD 保存默认关闭,可选择“最近 24 小时恢复”,或“长期历史(含 24 小时恢复)”。两者均需可用的 FAT32 卡与有效 RTC;长期历史按 UTC 月份保存 CSV,可在网页按月下载,不按年限自动删除。
空间不足时停止新增历史并提示,不自动删除旧记录;关闭保存也不删除文件。关机可能丢失尚未写卡的数据,忙碌时保存会延后;没有卡或保存失败时仍继续内存记录。重要记录请另行备份,不要运行中插拔卡。
采样、文件格式与存储限制见环境记录说明。
本地与云端
CHAT 页会根据当前状态选择一种模式:AI 已开启、配置有效且网络可用时显示 AI CHAT 和提问提示;其他情况显示 OFFLINE COMMANDS 和设备指令提示,直接在设备上识别固定指令。
CHAT。RELEASE KEY 后松开。看到 OFFLINE COMMANDS 和 Hold KEY 2s for a command 时,在最长 5 秒内说出“回到主页”“打开日历”“查看状态”“打开图片”“打开设置”或“取消”。
识别完全在设备本地完成,不使用唤醒词,也不会保存、记录或上传原始语音。图片页不可用时,“打开图片”指令不会执行页面切换。
从 v0.16.0 或更早版本仅通过在线更新或设置门户升级到当前版本时,设备只更新应用,对话页会显示模型不可用。离线语音模型自 v0.18.0 起提供,任选下面一种方式完成一次模型安装:
保留配置的方式需要 WSL、项目源码和已经进入 ROM 下载模式的设备:
git clone https://github.com/taifuer/esp32-rlcd-firmware.git
cd esp32-rlcd-firmware
./scripts/update-app.sh --port COM5 \
--firmware /path/to/esp32-rlcd-firmware-v0.34.0-ota.bin \
--model /path/to/esp32-rlcd-firmware-v0.34.0-model.bin \
--confirm
模型不是固件。不要单独写入 0x0,也不要上传到设置门户。脚本固定把应用和模型写入各自区域,并保留 NVS 中的 Wi-Fi 与设备设置。
AI 对话是默认关闭的 Beta 功能。开启后可在同一会话中进行最多 5 轮中英文问答;每轮语音输入最长 10 秒,未配置、断网或处于省电模式时,设备仍使用离线指令识别。
qwen-audio-3.0-realtime-flash。若限制了可调用模型,需要把新模型加入授权范围;旧模型可用不代表新模型已获授权。CHAT 页面发起对话。首次配置不需要 Workspace ID、App ID,也不需要创建百炼应用。五种官方音色可直接选择;“日常简洁”沿用一至三个短句的默认体验,“英语练习”优先使用简单英语,也可要求中文解释。保存不会自动试听或发起收费请求,从下一次对话生效。
已有 Key 后,AI 开关、音色、回答风格、受支持模型和官方 API Host 都可在同一 Wi-Fi 的授权网页中修改。普通设置与 Key 分开保存,只有填写或更换 Key 需要设备热点。
v0.32.0 起提供音色与回答风格设置。升级会保留已保存的 API Key、API Host 与开关,不会自动发起对话;仍需在百炼确认 Audio 3 的调用权限。
保存成功不代表服务已连接。门户会分别显示当前模型和最近对话结果;结果仅保留到重启或重新保存配置,不会保存对话内容。失败时先按提示检查模型权限、API Key、地域和网络。
FOLLOW-UP。在 30 秒内短按 KEY 即可续问,不需要再次长按;短按 BOOT 结束会话。NEXT TURN 后进入下一轮;这不是全双工语音打断。AI 默认用一至三个短句回答;问题较复杂时会先给结论和重点,方便继续追问。回复文字会跟着扬声器的实际播放进度逐步显示,超过 4 行后滚动覆盖最早的内容。
云端对话失败后,等待屏幕显示 KEY: RETRY | BOOT: BACK,可短按 KEY 重新开始一次对话,或短按 BOOT 返回。重试需要重新说话;设备不会自动重连,也不会重复发送上一段录音。
正常接收或播放的回答没有固定的总倒计时,不会仅因内容稍长而中途结束;服务端迟迟没有返回声音,或传输长时间没有进展时,设备仍会退出本轮并恢复操作。
多轮对话在同一条加密连接中保留本次上下文;会话结束后不跨次保存。设备仍采用按键触发的半双工交互,没有唤醒词,也不会在空闲时持续监听。
详细获取步骤见阿里云官方文档;调用会产生按量费用,建议使用可单独轮换的项目 Key 并设置费用提醒,不再使用时可在同一设置页停用并确认清除 Key。
日常提醒
响铃时:短按 BOOT 停止;首次响铃可短按 KEY 延后 5 分钟。每次提醒最长持续 60 秒。
闹钟由 RTC 本地时间驱动,断网和省电模式不影响触发。物理关机期间不会唤醒设备或补发已经错过的提醒;闹钟音量为 0% 时只显示提醒界面,媒体播放音量不控制闹钟。
离线图片
图片功能使用 FAT32 格式的 microSD,存储卡完全可选。无卡或没有有效图片时,图片页自动隐藏,不影响时钟和其他功能。固件最多缓存 32 张有效图片;不会格式化存储卡,当前也不支持 exFAT 和热插拔。
原始 JPEG 或 PNG 不会离开手机,只有预览中生成的 400 × 300 PBM 会在确认后发给设备。导入完成后立即选中该图片,设备不会重启,网页保持连接。
两种布局均保持比例,裁剪不超出原图。主要内容位于顶部 400 × 250 区域,底部 50 像素保留给设备操作提示。支持最大 32 MiB、4000 万像素的原图。
也可以选择“安装演示图集”。设备会在确认后关闭设置热点,使用已保存的家庭 Wi-Fi 从本站下载并校验 6 张演示图;网页断开属于正常的网络切换,设备不会重启。无可用家庭 Wi-Fi 时,请先完成配网或改用手机本地导入。
选择和删除立即生效,不会重启设备。删除当前图片后会自动选择相邻图片;删除最后一张后图片页立即隐藏。
rlcd\images。rlcd\images 目录。在 Windows PowerShell 中,下面的示例会下载工具、安装 Pillow,并把 photo.jpg 转为 00-photo.pbm:
git clone https://github.com/taifuer/esp32-rlcd-firmware.git
cd esp32-rlcd-firmware
py -m pip install Pillow
py tools/rlcd-image.py convert C:\path\to\photo.jpg 00-photo.pbm
py tools/rlcd-image.py check 00-photo.pbm
New-Item -ItemType Directory -Force E:\rlcd\images
Copy-Item .\00-photo.pbm E:\rlcd\images\
示例中的 E: 需要替换为 microSD 的实际盘符。转换工具会保持原图比例,将内容放入顶部 400 × 250 可见区;屏幕底部 50 像素由固件保留给按键提示。
复制完成后,从电脑安全弹出 microSD,确认设备仍处于物理关机状态,再插卡并正常开机。
插入、取出或更换存储卡前必须物理关机。运行中插卡不会重新扫描,热插拔可能损坏文件系统。
目录固定为 /rlcd/images/。普通展示期间固件保持存储卡只读;只有用户确认的图片导入或单张删除会临时写卡,固件不会自动覆盖、清理或批量删除已有图片。
支持 MP3 与 16 位 PCM WAV,歌曲存放在 FAT32 卡的 rlcd/music/。无需互联网,无卡或没有有效歌曲时隐藏音乐页。
歌曲直接从手机或电脑传入 SD 卡,不经过项目服务器。同名文件不覆盖,上传和删除后立即生效,无需重启。写卡会先停止音乐;上传期间保持连接与供电,不关闭页面或取卡。
在“媒体 → 播放设置”选择顺序播放、单曲循环或列表循环,重启后会保留。保存不打断当前歌曲,新的循环方式从歌曲自然结束时生效;手动切换下一首不受单曲循环限制。
播放或暂停期间,可设置 15/30/60/90 分钟后停止,也可随时取消。暂停期间继续计时;停止、播放结束或其他功能打断音乐后取消定时,重启后不恢复。
大于 32 MB 的歌曲可关机后用读卡器复制,单个文件上限 256 MiB;不支持热插拔。门户按用户活动计算闲置时间,上传有独立时限。断线或超时后的结果可能不确定,页面会要求先核对完整歌单;遇到同名文件时由用户决定保留并跳过,不会自动覆盖或重新上传。
上传队列只保留在当前网页中。刷新、关闭或重新打开页面后,请先刷新设备歌单,再选择尚未上传的文件。
推荐的日常方式
在线更新需要设备已经保存可用的 Wi-Fi,并能访问互联网。设备只会检查更新,不会静默下载或自动安装。
ONLINE UPDATE。下载并写入开始后不要断电。检查、连接和确认阶段可以短按 BOOT 取消,开始写入后按键不会中断操作。
在线更新只更新应用。从 v0.16.0 或更早版本升级后,其他功能可正常使用;如需离线语音,请按第 5.2 节另行安装模型。
没有互联网也能更新
本地更新通过设备临时热点上传 OTA 固件,不依赖家庭 Wi-Fi 或互联网。
-ota.bin。SETTINGS。http://192.168.4.1。-ota.bin 并开始更新,保持供电直至设备自动重启。192.168.4.1 是设备临时热点中的固定管理地址,不是家庭路由器地址。门户闲置 5 分钟关闭;关闭后可重新进入 SETTINGS 并再次开启。
设置门户只接受 OTA 应用,不接受语音模型。旧设备首次启用离线语音仍需执行第 5.2 节的 USB app+model 更新,或安装 Factory。
上传时若网页超时或断线,不要立即重传。先保持供电、查看设备屏幕;恢复连接后重新打开门户,核对当前固件版本,再决定是否更新。
无法使用更新页面时
v0.25.0 起,应用还能启动时可尝试恢复入口:关机后按住 KEY,短按 PWR 开机,看到 RECOVERY MODE 后松开。恢复模式只保留在线更新和设置两页,短按 KEY 切换。
有可用 Wi-Fi 时可在线检查、确认并安装固件;没有网络时,在恢复设置页按住 KEY 3 秒,连接屏幕显示的热点,通过精简门户上传 -ota.bin。恢复门户只提供 Wi-Fi 管理与本地 OTA,不采用普通门户的 5 分钟截止时间。
刚安装的 OTA 若尚未完成启动确认,恢复模式不能再写入另一槽;此时关机后不按 KEY 正常开机,让设备尝试回滚。修复后也用这种方式退出恢复。应用恢复仍依赖显示、网络和基础存储可用,不能替代 ROM 下载模式。
设备无法正常启动、分区损坏或仍运行 v0.6.0 及更早版本时,重新执行本教程第 3 节,使用 Factory 固件从 0x0 完整恢复。恢复完成后需要重新配网。
设备已使用 v0.7.0 或更新版本的双 OTA 分区、但暂时无法通过网页更新时,也可以使用第 5.2 节的 USB app+model 脚本保留 Wi-Fi 配置。该方式仍要求进入 ROM 下载模式;分区表或 Bootloader 需要更新时必须改用 Factory。
故障排查
确认 Type-C 线支持数据传输,换一个电脑 USB 口,并在设备管理器中重新查找 USB JTAG/serial debug unit。COM 号可能变化。
通常是没有正确进入 ROM 下载模式。重新执行“关机 → 按住 BOOT → 短按 PWR → 两秒后松开 BOOT”,再尝试烧录。
全反射屏断电后仍会保留画面。写入结束后物理关机,再在不按 BOOT 的情况下短按 PWR 正常启动,并等待数秒完成刷新。
确认家庭 Wi-Fi 和互联网可用;稍后重试,或改用不依赖互联网的本地更新。检查失败不会改变当前启动固件。
从旧版本只做在线或设置门户 OTA 时不会安装模型。其他功能不受影响;按第 5.2 节执行一次 USB app+model 更新,或使用包含模型的 Factory 完整安装。
在“联网 → AI 对话”查看最近对话结果,再核对百炼 API Key、地域和模型权限。v0.31.0 已切换到 qwen-audio-3.0-realtime-flash;如果此前只授权了旧模型,请先为新模型开放调用权限。
保持连接屏幕显示的临时热点,在浏览器手动访问 http://192.168.4.1。
确认设备运行 v0.12.0 或更新版本,存储卡为 FAT32,图片位于 /rlcd/images/,并已通过项目工具检查。然后物理关机,重新插稳存储卡后再开机。
确认设备运行 v0.15.0 或更新版本、已关机插入可写的 FAT32 存储卡,且有效图片未达到 32 张。安装演示图还需要设备已保存可用的家庭 Wi-Fi。
返回首页下载固件。首次安装选 Factory,正常运行后的日常升级选 OTA。
前往固件下载