目标读者:没碰过电烙铁也没关系的软件工程师。本章讲清楚:这块板子内部是怎么连的、 外接喇叭和电池怎么选怎么接、装外壳前要注意什么。
⚠️ 诚实声明:本章的接口/引脚描述以微雪 wiki 的官方原理图为最终依据。 板卡存在批次差异,动手前请务必下载你手上批次对应的原理图核对; 本文不臆造引脚级细节,凡需要你核对的地方都有【核对】标记。
┌────────────────────────────────────────────┐
│ ESP32-S3R8 (16MB Flash / 8MB PSRAM) │
│ Wi-Fi 2.4G + BLE5 双核 LX7 @240MHz │
└──┬──────┬──────┬──────┬──────┬─────────┬───┘
QSPI ───┘ │I2S │I2C 总线 │USB │GPIO
▼ ▼ ▼ ▼ ▼
┌───────────┐ ┌──────────┐ ┌──────────────┐ ┌───────┐
│ SH8601 │ │ ES8311 │ │ FT3168 触摸 │ │ BOOT │
│ AMOLED │ │ codec │ │ QMI8658 IMU │ │ 按键 │
│ 368x448 │ │ │ │ │ │ AXP2101 PMU │ │ USB-C │
└───────────┘ │ │ │ │ │ PCF85063 RTC │ └───────┘
▼ ▼ ▼ │ └──────┬───────┘
MEMS麦 功放 喇叭│ │
接口│ ▼
│ 锂电池接口 (1.25mm)
│ 充电/电量计/软开关机
要点:
- 一条 I2C 总线挂了 4 个从机(触摸/IMU/PMU/RTC),固件里它们共享总线互斥锁; 你写 JS 不用关心,但打自定义板时要记得这个模式(见 custom-pcb.md)。
- 屏幕走 QSPI 而不是常见的 SPI:4 根数据线并行,刷 368×448 RGB565 全屏才够帧率。
- 音频链路:MEMS 麦 → ES8311 ADC → I2S → S3;S3 → I2S → ES8311 DAC → 板载功放 → 喇叭接口。 录音和放音共用一颗 codec,这是"能对话"的硬件基础。
- AXP2101 PMU 负责锂电充电、电量计、多路电源轨,还提供长按开关机(具体键位【核对】wiki)。
| 器件 | 作用 | 软件工程师视角 |
|---|---|---|
| ESP32-S3R8 | 主控,R8 表示封装内叠了 8MB Octal PSRAM | PSRAM 是"慢一点的大内存",帧缓冲、JS 堆(4MB)都放这里;内部 SRAM 才 512KB,别指望 |
| SH8601 | AMOLED 驱动 IC | AMOLED 黑色像素不发光 → 像素风 UI 黑底既省电又好看;注意烧屏,长期静止画面要做防烧屏(固件/应用层处理) |
| FT3168 | 电容触摸 IC | 提供 down/move/up 坐标,px.input.onTouch 的来源 |
| ES8311 | 单声道音频 codec(ADC+DAC) | 一颗芯片同时管"听"和"说",16kHz 语音够用;px.audio 全部 API 的硬件承载 |
| QMI8658 | 6 轴 IMU | 摇一摇/姿态检测;采样率固件里配置 |
| AXP2101 | 电源管理(PMU) | 类比手机的 PMIC:充电曲线、电量百分比(px.system.battery())、各路电压都归它 |
| PCF85063 | RTC 实时时钟 | 断电靠电池走时,配合 NTP 校时 |
板载功放输出适配小功率喇叭。推荐规格:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 阻抗 | 8Ω | 【核对】微雪 wiki 标注的功放规格;8Ω 是这类板子的普遍适配值 |
| 功率 | 1W(最大 2W) | 桌面距离足够响;功率大了功放推不动也浪费体积 |
| 形态 | 腔体喇叭(带塑料后腔) | 强烈推荐!裸喇叭单元没有腔体,低频薄、音量小;常见型号如"2030 腔体喇叭"(20×30mm)或 "3020"/"2818",按外壳空间选 |
| 接口 | 焊线,或自带 1.25mm 插头 | 部分微雪套餐带喇叭免焊【核对】商品页;若板上是 1.25mm 喇叭座,买"带 MX1.25 端子线的腔体喇叭"可免焊 |
| 渠道 | 淘宝搜"腔体喇叭 8欧 1W" | 单价约 ¥3~15(估算) |
没焊过也能一次成功,总共两个点:
- 工具:任意 60W 内温控烙铁(约 ¥50~100)、含铅焊锡丝(0.8mm,新手比无铅好焊)、松香或助焊笔。
- 烙铁 320~350℃,先给板上 SPK+ / SPK- 两个焊盘各上一点锡(镀锡)。
- 喇叭线剥线 2~3mm,线头镀锡。
- 线头搭在焊盘上,烙铁按住 1~2 秒熔合,移开烙铁保持不动等凝固。
- 极性:喇叭有 +/- 丝印,尽量对应板上 SPK+/SPK-。接反不会烧(单喇叭只是相位反转,听不出差别),不必紧张。
常见翻车:烙铁温度不够 + 停留太久 → 焊盘脱落。宁可温度高一点、动作快一点。
px.audio.setVolume(70);
px.audio.player.tone(880, 300); // 能听到"哔"就通了| 参数 | 推荐 | 说明 |
|---|---|---|
| 类型 | 3.7V 锂聚合物(LiPo)软包,必须带保护板(商品页写"带保护板/protection") | 保护板防过充过放短路,没有它裸电芯很危险 |
| 容量 | 1000~1500mAh | AMOLED + Wi-Fi + 语音,1000mAh 大约能撑数小时(实测为准);容量越大越厚,先量外壳空间 |
| 尺寸 | 按型号数字读:如 603450 = 厚6.0×宽34×长50mm | 先定外壳内腔再买电池(见 enclosure.md 尺寸链) |
| 插头 | 1.25mm 间距插头(商家常标 "MX1.25 / PH1.25 / 51021") | 【核对】板上电池座的实际型号以微雪 wiki 为准 |
| 渠道 | 淘宝搜"3.7V 锂电池 1.25插头 带保护板 603450" | 约 ¥15~30(估算) |
淘宝购买的电池,插头线序没有行业标准,红黑线接反的概率真实存在。接反瞬间可能烧毁 PMU 甚至电芯起火。
上电前必须做:
- 看板上电池座旁的 + / - 丝印(或查原理图),确认哪个孔位是正极。
- 万用表直流电压档测电池插头:红表笔碰红线端子、黑表笔碰黑线端子,读数应为 +3.7V 左右; 若是 -3.7V 说明你对线序的假设反了。
- 比对 1 和 2:电池红线(正极)必须对应板上 + 孔位。不对应就不要插!
- 线序不对的处理:用镊子挑起插头上的塑料卡扣,抽出两根端子对调重插(比剪线重焊安全)。
没有万用表?一只几十元的表是玩硬件的第一件工具,先买它再买电池。
插上电池、拔掉 USB,设备应继续运行;px.system.battery() 能读到电量与电压;
插回 USB 后 charging 应为 true。
板载天线(PCB/陶瓷天线)对周围环境极其敏感:
- 金属是天敌:外壳不要用金属;电池、喇叭的金属体尽量离天线区 ≥ 5mm; 天线正上方/正下方不要压任何金属和大块 PCB(装配堆叠时注意)。
- 外壳塑料贴着天线一般没问题(FDM/树脂均可),但不要在天线区喷金属漆/贴铜箔贴纸。
- 摆放:天线朝外/朝上,信号明显更好;若 Wi-Fi RSSI 比手机在同位置差 20dB 以上, 先检查是不是外壳里的电池片/喇叭磁铁盖住了天线。
- BLE 与 Wi-Fi 共用这根天线(分时),固件已处理共存,应用层无需关心。
- 正常负载(动画 + Wi-Fi)整板功耗约 1W 量级,S3 会温热(40~60℃),属正常;
px.system.temperature()可读芯片温度。 - 语音对话(Wi-Fi 收发 + 功放)是发热峰值场景。封闭外壳建议:
- 在底部与背部开一排通风孔(和透声孔阵列可以合并设计,见 enclosure.md);
- 电池不要与 S3 芯片正面贴合,中间留 ≥ 2mm 空气层或垫泡棉——锂电池怕热, 长期 >45℃ 会加速鼓包。
- AMOLED 本身发热小,但也怕高温烘烤,别把它和电池夹在一起。
- 不需要风扇/散热片,这个功耗级别设计好通风即可。
- 裸板先跑通 getting-started 全流程(烧录/热更新/语音),再装外壳——装壳后返修麻烦十倍。
- 喇叭 tone 测试通过。
- 电池极性用万用表验证,充放电正常。
- 记住 BOOT/RESET 键位置,外壳要给它们留孔或顶针(救砖必用)。
- USB-C 口留孔位置量准(见 enclosure.md 尺寸链章节)。
- 天线区(【核对】原理图上标注位置)周围无金属。