

InkWordESP32 MB V1.1
An ESP32 and E-paper based low-power English vocabulary learning device.一个基于 ESP32 和墨水屏的低功耗英语单词学习设备。
- Size
- 66.5 × 83.9 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 103
- Nets
- 81
- Pads
- 353
- Tracks, vias
- 735, 896
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 23 May 2026
- Updated
- 13 Oct 2026
Overview
InkWordESP32 MB V1.1 is an open-source printed circuit board by harry10086, from the harry10086/InkWord_ESP32 repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 66.5 × 83.9 mm with 103 parts on 81 nets, routed with 735 tracks and 896 vias.
It is built around the TF-CARD H1.8 SY, TP4055 and XB6366D, with the XC6220B331MR-G, RCLAMP0521P-N and B5819WS among its other parts. Its parts include 33 resistors, 29 capacitors, 16 diodes, 6 switches and 4 ICs. It belongs with the ESP32 boards of this library.
Main components
12TF-CARD H1.8 SY
SMD-40℃~+70℃ 2mm Connector and Ejector MicroSD Card (TF Card) Push-Push SMD SD Card / Memory Card Connector ROHSSHOU HANSD Card / Memory Card ConnectorTP4055
SOT-23-5-40℃~+85℃ 1 4.2V 40uA 4V~9V 500mA Charging IC Lithium Battery Not supported Not supported SOT-23-5 Battery Management ROHSTOPPOWERBattery ManagementXB6366D
DFN-6-EP(2x2)-40℃~+85℃ 1 1.5uA 2.9V 4.25V 4.2A Protection IC Support DFN-6-EP(2x2) Battery Management ROHSXySemiBattery ManagementXC6220B331MR-G
SOT-25-40℃~+85℃ 1 1A 3.3V 50dB@(1kHz) 655mV@(1A) 6V 8uA Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown、Enable control、Output discharge Positive SOT-25 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTorex SemiconductorVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsRCLAMP0521P-N
DFN1006-20.4pF 16V 3.5A@8/20us 500nA 5V 60W@8/20us 6V Bidirectional IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 Single-channel TVS DFN1006-2 ESD and Surge Protection (TVS/ESD) ROHSBORNESD And Surge Protection (TVS/ESD)B5819WS
SOD-323-55℃~+125℃ 1A 1mA@40V 25A 40V 900mV@3A Independent SOD-323 Schottky Diodes ROHSMDDSchottky DiodesRCLAMP0521T-ES
DFN1006-2L0.3pF 1 18V 1uA 4A 5V 6V 80W Bidirectional ESD IEC 61000-4-2 DFN1006-2L ESD and Surge Protection (TVS/ESD) ROHSElecSuperESD And Surge Protection (TVS/ESD)TS-1009B-05026
弯插,4.5x4.5mm100,000 cycles 12V 2.6N 4.5mm 4.5mm 50mA 5mm Black PC Pin Right Angle Round Button SPST Without Bracket 弯插,4.5x4.5mm Tactile Switches ROHSXUNPUTactile SwitchesBSMD0603L-100
0603-40℃~+85℃ 1A 1W 2A 500ms 50A 6V 80mΩ 9mΩ 0603 Resettable Fuses ROHSBHFUSEResettable FusesAFC04-S24FCA-00
SMD,P=0.5mm,卧贴-25℃~+85℃ 0.3mm 0.5mm 1.2mm 24P Bottom Contact Slide Lock Surface Mount, Right Angle SMD,P=0.5mm,卧贴 FFC, FPC (Flat Flexible) Connector Assemblies ROHSJUSHUOFFC, FPC (Flat Flexible) Connector AssembliesSI1308EDL-T1-GE3(ES)
SOT-323SOT-323 MOSFETs ROHSElecSuperMOSFETsSS12D10G6-WJ
弯插,12.7x6.7mmSlide SwitchesSHOU HAN
README
README.mdInkWordESP32 (桌面水墨单词卡与日历)
InkWordESP32 是一款基于 ESP32-S3 与 4.2 寸红黑白三色电子墨水屏 打造的低功耗多功能桌面单词卡学习与时钟日历设备。
它兼具 英语单词记忆、公农历时钟日历、双语每日名言、全盘 Web 文件管理器 与 极低功耗待机 体系,采用纸质般无闪烁护眼显示,适合放置在办公桌、书桌上陪伴日常学习与工作。
[!IMPORTANT] 红白黑三色电子标签屏虽然便宜(闲鱼 10 元),但是刷新时间大约 15 秒!刷新时间大约 15 秒!刷新时间大约 15 秒!
📸 屏幕布局与视觉分区
4.2 寸三色墨水屏(400 × 300 像素)精心规划了四大功能区域,红黑搭配,主次分明:
+--------------------------------------------------------------------------+
| [状态栏] 词库名: CET4 | 模式: 随机 | WiFi: 已连接 | 电量: [⚡ 85%] (3.92V) |
+------------------------------------+-------------------------------------+
| [左侧: 时钟与日历区] | [右侧: 单词背诵区] |
| 14:35 (2026-10-09 星期五) | abandon |
| 农历: 八月廿九 | /əˈbændən/ [IPA标准点阵音标] |
| | vt. 放弃,遗弃;离弃 |
| 日 一 二 三 四 五 六 | n. 放任,放纵 |
| 1 2 3 4 [5] | |
| 6 7 8 9 10 11 12 | [页码: 1/2] |
+------------------------------------+-------------------------------------+
| [底部: 每日名言区] (红黑双色) |
| The secret of getting ahead is getting started. |
| 千里之行,始于足下。 |
+--------------------------------------------------------------------------+🛠️ 硬件方案与电气规格
1. 核心硬件组件
- 主控芯片:乐鑫 ESP32-S3。
- 显示屏:4.2 寸红黑白三色电子墨水屏(型号:
SE2417FS051,主控 IC:UC8176,分辨率 400 × 300,SPI 通信接口)。 - 存储扩展:MicroSD (TF) 卡槽,采用 4-bit 高速 SDMMC 硬件总线,大幅提升词库检索与大文件传输效率。
- 电源与供电:
- 单节 18650 锂电池供电(标称 3.7V / 满电 4.2V);
- ADC 电池采样:GPIO 3,通过 1/4 精密电阻分压实时测量电量;
- 充电检测:GPIO 1,通过硬件电平感知充电状态(低电平充电中,高电平充满/未插线);
- 硬件级保护:当电压低于 3.15V(剩余电量 ≤ 5%)时,屏幕自动显示低电警告并进入 Deep Sleep,仅保留充电线插入唤醒。
- 物理按键:精简为 3 颗按键,具有独立硬件滤波与长短按状态机。
2. 硬件架构
硬件使用 KiCad 设计(我认为这是目前个人及中小型公司最适合最好用的 EDA 软件),设计架构如下:

PCB 图:

IO 分配:
| 模块分类 | 信号功能 | GPIO 引脚 | 说明与特性 |
|---|---|---|---|
| 电子墨水屏 | PIN_CS | IO 9 | 屏幕片选信号 (低电平有效) |
PIN_SCLK | IO 10 | SPI 时钟信号 (硬件 HSPI) | |
PIN_SDI | IO 11 | SPI 数据输入 MOSI | |
PIN_D_C | IO 17 | 数据 / 命令控制引脚 | |
PIN_RST | IO 18 | 屏幕硬件复位引脚 | |
PIN_BUSY | IO 8 | 屏幕忙碌状态检测 | |
| MicroSD (4-bit) | PIN_SD_DAT0 | IO 5 | SDMMC 数据线 0 |
PIN_SD_DAT1 | IO 4 | SDMMC 数据线 1 | |
PIN_SD_DAT2 | IO 16 | SDMMC 数据线 2 | |
PIN_SD_DAT3 | IO 15 | SDMMC 数据线 3 / CS | |
PIN_SD_CLK | IO 6 | SDMMC 时钟线 | |
PIN_SD_CMD | IO 7 | SDMMC 命令线 | |
| 电源与交互按键 | PIN_BAT_ADC | IO 3 | 电池电压检测 (1/4 硬件分压) |
PIN_CHRG | IO 1 | 充电状态引脚 (低电平充电,支持 RTC 唤醒) | |
PIN_KEY1 | IO 39 | 按键 1:Wi-Fi 开关 / 强制 AP 热点配网 | |
PIN_KEY2 | IO 40 | 按键 2:上一个单词 / 长按切换顺序/随机模式 | |
PIN_KEY3 | IO 41 | 按键 3:下一个单词(释义翻页) / 长按切换词库 |
按键操作指南:
| 按键 | 短按操作 (单击) | 长按操作 (按住 ≥ 1.5 秒) |
|---|---|---|
| KEY 1 (GPIO 39) | 开 / 关 Wi-Fi:开启时自动连接已知网络并进行对时与名言同步;再次短按关闭。 | 强制 AP 配网:秒级唤起 InkWord-Setup 独立配网热点,手机直连 192.168.4.1。 |
| KEY 2 (GPIO 40) | 上一个单词:回退至上一个单词,进度记忆至 RTC 与 NVS。 | 切换播放模式:在【顺序】与【随机】模式间切换。 |
| KEY 3 (GPIO 41) | 下一个单词 / 释义翻页:若词条解释多于一页先翻页,翻完后切换至下一词。 | 切换词库:轮换 TF 卡 /dict/ 目录下的多本词典(CET4, CET6, IELTS 等)。 |
[!TIP] 顺便说一句,我之所以用这些元件并不是必须,而是我手上刚好有这些元件,可根据自己的情况处理,硬件结构都是,我提供的均是源文件,可自行修改。
3. 结构设计
外壳结构采用 SolidWorks 进行设计,使用拓竹 3D 打印机打印,最好使用不同材料支撑,不然不太好拆除。

🌟 核心软件特性
1. 单词背诵引擎
- 标准化 JSON 词库支持:词库放置于 TF 卡
/dict/目录,支持自定义单词、音标及释义。 - 原生 8×16 IPA 国际音标点阵字模库:内置 44 个标准国际音标(含
ə, ɪ, æ, ʌ, ɒ, ɔ, ʊ, ɜ, ʃ, ʒ, θ, ð, ŋ, ˈ, ˌ, ː等),彻底解决墨水屏常见英汉音标乱码与粘连问题。 - 智能长释义分页:自动计算中文词条换行与高度,超出单屏自动分页(通过 KEY3 顺序翻阅)。
- 自动切词定时器:支持 1~60 分钟自动切换下一词(可通过 Web 随时调整)。
2. 高精度时钟与日历体系
- 芯片 RTC Slow Clock 硬件计数器:在轻度休眠(Light Sleep)与异常复位期间始终保持计时,时间精度永不中断;
- NTP + HTTP 双重授时:开机与每日定时联网自动同步阿里云 NTP;若局域网拦截 UDP 123 端口,自动回退利用 HTTP 服务器响应头
Date兜底授时。 - 公农历算法与月视图:屏幕左侧实时计算并显示公历日期、星期、农历月份与初几/廿几(含闰月计算),并以红框在当前月份日历矩阵中精准高亮今日。
3. 每日金山双语名言 (联网更新 + 离线轮播)
- 联网自动更新与归档:每天早晨 7:00 自动开启 Wi-Fi,请求金山词霸每日名言接口,英文大字加粗,中文优雅小字,自适应排版折行,并自动追加归档至 TF 卡
/quote/quotes.json。 - 离线自动轮播:若设备处于无网环境或断网,早晨 7:00 会自动触发离线轮换机制,从 TF 卡历史名言库中随机抽取未显示的名言并刷新墨水屏,保证每天名言按时更换。
4. Multi-AP 多网络记忆与自适应智能重连
- 多凭据记忆:支持记忆多达 8 个常用 Wi-Fi 网络,采用 MRU(最近使用置顶)机制。
- 快速扫描智能匹配:每日唤醒对时或短按 KEY1 开网时,首先执行 250ms/信道的快速扫描,自动识别周边信号最强的已知网络秒级连接。
- 回退保护:若遇到隐藏 SSID,自动按优先级遍历尝试连接。
5. 现代化 Web 控制中心与全盘文件管理器
连接设备 IP 地址(或 AP 模式下的 http://192.168.4.1),即可进入 web 控制台:
- 实时设备状态看板:查看当前 IP、信号强度、电池电压、系统运行时间、当前词库等。
- 个性化系统设置:调节单词自动切换间隔(1
60分钟)、Wi-Fi 无操作自动休眠倒计时(160分钟)、开启/关闭深夜静默模式。 - 全功能 SD 卡文件管理器:
- 支持文件的上传、下载、删除、重命名、新建文件夹;
- 支持目录穿梭,方便随时导入新词库或管理历史名言。
- 可视化 Wi-Fi 配置:支持周边 Wi-Fi 扫描列表与一键连接。
- OTA 无线固件升级:支持网页端直接上传编译好的
.bin固件一键在线刷机。
6. 深度低功耗电源管理
- Light Sleep 浅度睡眠:非充电、无按键操作且关闭 Wi-Fi 时,CPU 自动进入浅度睡眠,按键即点即应,电流大幅下降。
- 深夜静默模式 (23:00 ~ 07:00):自动停止单词切换与夜间物理刷屏,延长墨水屏寿命并极度节能。
- 无操作自动断网:Wi-Fi 开启后若超过设定时间(默认 6 分钟)无数据交互,自动关闭射频硬件并将 CPU 降频至 80MHz。
💻 固件开发与编译指南
1. 开发环境要求
- IDE:推荐使用 Arduino IDE 2.x。
- ESP32 支持包:
esp32 by Espressif Systems(建议版本 2.0.14 或 3.0.x)。 - 板卡型号选择:
ESP32S3 Dev Module。
2. 核心依赖三方库
在 Arduino IDE 的 项目 -> 加载库 -> 管理库 中搜索并安装以下依赖:
| 依赖库名称 | 推荐版本 | 用途 |
|---|---|---|
| GxEPD2 | >= 1.5.x | 4.2 寸电子墨水屏核心驱动 (GxEPD2_420c) |
| Adafruit GFX Library | >= 1.11.x | 基础图形渲染框架 |
| U8g2_for_Adafruit_GFX | 最新版 | 中文字库与点阵字体渲染引擎 |
| ArduinoJson | >= 7.x | 词库、名言与 Web API 数据的高效 JSON 序列化/反序列化 |
3. Arduino IDE 编译选项配置 (Tools 菜单)
| 选项名称 (Menu) | 推荐参数值 (Value) | 说明 |
|---|---|---|
| Board | ESP32S3 Dev Module | 主板架构 |
| USB CDC On Boot | Enabled | 启用原生 USB 虚拟串口调试输出 |
| CPU Frequency | 240MHz (WiFi) | 最高性能运行 |
| Flash Mode | QIO 80MHz | 保证 Flash 读取性能 |
| Flash Size | 16MB 或 8MB | 依据具体模组选配 |
| Partition Scheme | Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) | 必须给 APP 分区留足空间 |
| PSRAM | OPI PSRAM 或 Disabled (视硬件模组配置) | 若模组带 PSRAM 则开启 |
| Upload Mode | UART0 / Hardware CDC | 固件烧录接口 |
📁 TF 卡目录与数据规范
为使设备开机正常读取词库与名言,TF 卡应格式化为 FAT32 格式,并建议建立如下目录:
MicroSD (根目录)
├── dict/ # 单词词库文件夹
│ ├── CET4.json # 四级词汇
│ ├── CET6.json # 六级词汇
│ └── TOEFL.json # 托福词汇
├── quote/ # 每日名言文件夹
│ └── quotes.json # 历史名言本地归档库 (单文件追加模式)
└── schedule.json # 日程备忘清单 (可选,Web端可视化维护)词库 JSON 格式规范 (/dict/*.json)
可在网站免费下载:https://typewords.cc/dict
[
{
"word": "abandon",
"phonetic": "/əˈbændən/",
"trans": [
"vt. 放弃,遗弃;离弃",
"n. 放任,放纵"
]
},
{
"word": "ability",
"phonetic": "/əˈbɪləti/",
"trans": [
"n. 能力,本领;才能"
]
}
]📜 版本更新历史 (Changelog)
v1.1.3
- 🚀 多网络记忆系统 (Multi-AP):支持存储多达 8 个常用 Wi-Fi,新增周边热点快速扫描匹配与信号强度自适应重连,解决多环境不自动回连的问题。
- 📖 每日名言双轨切换机制:增加离线名言自动轮换,每日早晨 7 点即便无网也能从 TF 卡历史名言中轮换并刷新屏幕;抽取算法改用
esp_random()并增加防连抽去重。 - 🔒 SD 卡总线安全加固:增加
sdMutex互斥保护锁,彻底消除主循环写入名言与后台墨水屏任务读词库的并发冲突。
v1.1.2
- 🌙 深夜静默模式:支持 23:00 ~ 07:00 停止物理刷屏并提供 Web 开关。
- 📶 独立 AP 配网热点:支持短按/长按 KEY1 秒级唤起
InkWord-Setup(192.168.4.1) 免 App 网页可视化配网。 - 🎲 全库遍历洗牌算法:乱序序列持久化到 SD 卡,当前背词进度通过 RTC 硬件级记忆。
- 📅 农历算法修复:修复农历计算与闰月交替显示问题。
v1.1.1 & v1.1.0
- 🔋 电源与显示优化:优化低电休眠界面与 ADC 电池采样算法,解决低功耗漏电;
- ⚡ 开机自动对时:修复电量耗尽充电后首次启动未成功网络对时的问题。
📄 开源许可证
本项目基于 GNU General Public License v3.0 (GPLv3) 协议开源。
Parts
103| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 10kΩ | JLC:R0603 | R4, R6, R9, R13, R14, R15, R16, R17, R18, R22, R26, R29, R30, R34, R38 |
| 13 | 100nF ±10% 50V | JLC:C0603 | C1, C2, C6, C7, C11, C20, C22, C24, C25, C26, C27, C35, C37 |
| 10 | RCLAMP0521P-N | JLC:RCLAMP0521P-N | D7, D8, D9, D10, D11, D12, D13, D14, D15, D17 |
| 9 | 1uF | easyeda_convertlib:C0603 | C4, C5, C8, C9, C12, C14, C15, C16, C17 |
| 8 | 10Ω | JLC:R0603 | R19, R20, R21, R23, R24, R25, R36, R37 |
| 5 | 10uF 10V | easyeda_convertlib:C0603 | C3, C10, C13, C21, C23 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 3 | B5819WS | JLC:B5819WS | D4, D5, D6 |
| 3 | RCLAMP0521T-ES | JLC:DFN1006-2L | D1, D2, D3 |
| 3 | TS-1009B-05026 | JLC:TS-1009B-05026 | K1, K2, K3 |
| 2 | 0R | easyeda_convertlib:R0603 | R7, R8 |
| 2 | 5.1kΩ ±1% | easyeda_convertlib:R0603 | R2, R3 |
| 2 | BSMD0603L-100 | Fuse:Fuse_0603_1608Metric | F1, F2 |
| 2 | GT-L5.2-W5.2-H015 | easyeda_convertlib:SW-SMD_4P-L5.2-W5.2-P3.70-LS6.4 | SW1, SW2 |
| 1 | 100uH | JLC:LQH3NPZ101MMEL | L1 |
| 1 | 10uF 50V | JLC:C0805 | C19 |
| 1 | 1MΩ ±1% | easyeda_convertlib:R0603 | R12 |
| 1 | 1kΩ | easyeda_convertlib:R0603 | R1 |
| 1 | 33Ω | easyeda_convertlib:R0603 | R27 |
| 1 | 3MΩ ±1% | JLC:R0603 | R11 |
| 1 | 3kΩ ±1% | easyeda_convertlib:R0603 | R5 |
| 1 | 3Ω | easyeda_convertlib:R0603 | R10 |
| 1 | 4.7uF | easyeda_convertlib:C0603 | C18 |
| 1 | 600Ω@100MHz | easyeda_convertlib:L0603 | FB1 |
| 1 | AFC04-S24FCA-00 | JLC:AFC04-S24FCA-00 | FPC1 |
| 1 | ESP32-S3-WROOM-1_N16R8 | JLC:ESP32-S3-WROOM-1_N16R8 | U4 |
| 1 | LOGO | JLC:lcsc-logo | G*** |
| 1 | SI1308EDL-T1-GE3 | JLC:SI1308EDL-T1-GE3 | Q1 |
| 1 | SS12D10G6-WJ | JLC:SS12D10G6-WJ | S1 |
| 1 | TF-CARD_H1_8 | JLC:TF-CARD_H1_8 | TF1 |
| 1 | TP4055 | easyeda_convertlib:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BL | U2 |
| 1 | TYPE-C16PIN | JLC:TYPE-C16PIN | USB1 |
| 1 | XB6366D | JLC:XB6366D | U1 |
| 1 | XC6220B331MR-G | JLC:XC6220B331MR-G | U3 |
| 1 | ZX-XH2.54-2PWZ | easyeda_convertlib:CONN-TH_2P-P2.50_ZX-XH2.54-2PWZ | CN1 |
| 1 | ZX-XH2.54-3PZZ | easyeda_convertlib:CONN-TH_3P-P2.54_2501S-3P | CN2 |
Similar boards
- 4 layers45 × 34.8 mm

- 4 layers45 × 75 mm

- 6 layers100 × 100 mm

- 2 layers15.7 × 20.8 mm

- 2 layers49.9 × 43 mm

Mister2scart
madmalkav/mister2scart
This device has been designed by someone that doesn't have a clue about electronics. If you decide to build it and use it, you do it on your own responisibility.
11 partsMIT - 2 layers90 × 64 mm

Divine light
tobycm/divine-light
A handheld device with neopixels so you can have lights wherever you want :b
88 partsMIT - 2 layers57.8 × 48.6 mm

Esp32-weather epd
Diabltica/esp32-weather-epd_pcb
A low-power E-Paper weather display powered by an ESP32 microcontroller. Utilizes the OpenWeatherMap API.
67 partsGPL-3.0 - 2 layers40 × 20 mm

Questions
How big is the InkWordESP32 MB V1.1 PCB?
It measures 66.5 × 83.9 mm and has 2 copper layers, 1.6 mm thick.
What parts does the InkWordESP32 MB V1.1 use?
103 parts, built around the TF-CARD H1.8 SY, TP4055, XB6366D and XC6220B331MR-G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the InkWordESP32 MB V1.1 KiCad files?
From the harry10086/InkWord_ESP32 repository on GitHub, at the commit this page was made from: the board is HW/InkWordESP32_MB_V1.1/InkWordESP32_MB_V1.1.kicad_pcb and its schematic HW/InkWordESP32_MB_V1.1/ECG.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the InkWordESP32 MB V1.1 design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
