ESP32-S3 复古词典机 DIY:制作与改造完整指南

项目简介

用 ESP32-S3 做一台复古词典/掌机:内置 4980 电子词典模拟器,还能跑 GB/GBC/NES/Arduboy 游戏;400x300 1bit 墨水屏 + 电容触摸 + TF 卡 + 蓝牙手柄 + WIFI 网页手柄。源码与文档全部开源:github.com/LinIT-L/ESP32-S3-RLCD-BBK

功能特性

  • 复古掌机全家桶:BBK 4988 电子词典 + GB/GBC/NES/Arduboy 四套模拟器
  • 阅读器双字体:仿宋/黑体 GB2312 简体点阵字库,16/24/32 三档字号,进度自动保存
  • 触摸看门狗:触摸芯片异常自动复位 + 跳变滤波,告别"失灵要重启"
  • 双手柄方案:蓝牙 HID 手柄自动重连 + WIFI 网页手柄(横屏/全屏)
  • 低功耗细节:电池电压 ADC 分压采样、电源键长按软关机、深度睡眠唤醒

硬件方案(两种路线)

路线一:微雪 ESP32-S3-RLCD-4.2 开发板(免焊接)

直接购买 Waveshare ESP32-S3-RLCD-4.2 开发板,屏幕、TF 卡、电池管理都已集成,免焊接即用。注意该板触摸未引出,需要外接电容触摸屏(固件已内置 CST816 / GT911 / FT6236 自动识别驱动)。

微雪 ESP32-S3-RLCD-4.2 开发板

路线二:拼多多「拼音学练机」改造(本项目实际硬件)

几十块的拼音学习机拆机改造,主板自带 ESP32-S3 N16R8 + ST7305 400x300 屏幕 + CST816 触摸 + ES8311 音频 + 电池,只需按下面接线表飞线:

拼音学练机正面

模块 接线
屏幕 ST7305 DC=GPIO5, CS=GPIO40, SCK=GPIO11, MOSI=GPIO12, RST=GPIO41(TE 不接)
触摸 CST816 SDA=GPIO15, SCL=GPIO7, INT=GPIO17, RST=GPIO2
TF 卡 SDMMC 1bit:CMD=GPIO21, CLK=GPIO38, D0=GPIO39(卡检测脚不用)
音频 ES8311 I2C:SDA=GPIO13, SCL=GPIO14;I2S:MCLK=GPIO16, BCLK=GPIO9, WS=GPIO45, DOUT=GPIO8;功放使能 PA=GPIO46
电池电压 电池正极→200KΩ→GPIO4→100KΩ→负极(分压点接 GPIO4,软件×3还原)
按键 KEY=GPIO18, BOOT=GPIO0, PWR=GPIO1(电源键,长按2秒软关机/唤醒)

四条总线互不冲突:屏幕走 SPI、触摸走 I2C、TF 卡走 SDMMC、音频走 I2S+I2C;所有模块共地。更多细节参考官方原理图与项目内 WIRING 文档。

内部布局与走线

主板测试点定义

固件编译

  1. 安装 ESP-IDF v5.5(官方 get-idf 脚本)
  2. 克隆源码:git clone https://github.com/LinIT-L/ESP32-S3-RLCD-BBK.git
  3. 编译:idf.py build(产物 build/esp32-bbk-emu.bin)
  4. 合并 16MB 镜像(含系统 ROM):./merge_flash.sh → dist/merged_16mb.bin,可直接整片烧录

烧录(三种方式)

  • 网页一键烧录:bbk.linit.cn/flash/(Chrome/Edge 支持 Web Serial,手机电脑均可)
  • esptool 命令行:
    python -m esptool --chip esp32s3 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 16MB --flash_freq 80m 0x0 merged_16mb.bin
  • 官方 Flash Download Tool:bootloader@0x0、partition@0x8000、app@0x10000、system@0x900000

现成固件直接下载:GitHub Release v1.1

定制与扩展

  • 阅读器字体:内置仿宋/黑体 GB2312 简体点阵字库(16/24/32 三档),可替换 components/book_reader/assets 下的 fnt 文件自定义字体
  • 游戏:BBK .gam 放 TF /gam,GB/GBC/NES ROM 分别放 /gb、/gbc、/nes(隐藏模拟器在设置里连按确认5次解锁)
  • 蓝牙手柄:BLE HID 开机自动配对、断开自动重连,10 键映射
  • WIFI 网页手柄:连热点 BBK-WIFI-handle,浏览器开 8.8.8.8,横屏全屏可玩

WIFI 手柄映射

常见问题

  • 触摸偶尔失灵/跳变:固件已带看门狗自动复位与跳变滤波,一般数秒内自愈;环境潮湿时触摸面板灵敏度会下降,属正常现象
  • 游戏卡顿:BBK 游戏按 8 倍速运行,部分游戏本身兼容性一般;隐藏的 GB/NES 模拟器为实验性质
  • 蓝牙连不上:长按配对,或改用 WIFI 网页手柄

版本更新(V1.1)

  • 阅读器:新增仿宋/黑体点阵字库,数字随字号放大,常用标点补齐
  • 主菜单字体与阅读器黑体同源,补齐生僻字(游戏文件名正常显示)
  • 触摸:看门狗自动复位 + 跳变滤波
  • BBK 游戏:恢复八倍速手感,虚拟按键修复
  • WIFI 网页手柄:横屏布局 + 全屏按钮

固件下载:GitHub Release v1.1(ESP32-S3-RLCD-BBK-16MB.bin,16MB 一体镜像)

发表评论