AdorkableTV,一台超迷你的 Ubuntu 掌上电脑:基于瑞芯微 RK3566 设计核心板与功能板、移植 U-Boot 和内核、制作 rootfs、设计外壳与散热,相关核心资料均已开源。
1. 项目速览
| 项目 | 内容 |
|---|---|
| 主控 | Rockchip RK3566,四核 Cortex-A55 |
| 内存 | 板载 LPDDR4 |
| 存储 | 板载 eMMC |
| 显示 | 240×320 SPI TFT,ST7789V |
| 无线 | AP6212,2.4GHz Wi-Fi + BLE |
| 电源 | USB 供电 + UPS 备用电源(锂电池) |
| 系统 | Ubuntu 20.04 / 24.04 + XFCE |
| 开发工具 | 嘉立创 EDA、Altium Designer、SketchUp |
| 开源协议 | GPL-3.0 |
2. 复刻流程
下面是推荐的复刻流程:
- 准备材料:核心板、屏幕、电池、连接器和散热器件。
- PCB 打样:使用仓库里的 Gerber 在嘉立创打样。
- 焊接与检查:先焊电源,检查无短路后上电测量各路电压,再焊主控和连接器。
- 烧录系统:先烧预编译镜像验证硬件,再替换 boot.img 和 rootfs.img。
- 组装测试:裸板跑稳定性测试,确认散热和接口正常后装壳。
3. 硬件设计
3.1 板卡结构
AdorkableTV 不是一块单独的主板,而是由多块板卡堆叠而成:

从左到右依次是显示屏、一体式外壳、UPS 电源板、功能板、基板、核心板、散热片和涡轮风扇
| 板卡 | 说明 |
|---|---|
| 核心板 | RK3566 + LPDDR4 |
| 功能板 | eMMC、AP6212 无线模块、RK809-5 电源管理 |
| 基板 | 连接核心板和功能板,转接屏幕、USB 等接口 |
| UPS 电源板 | USB 断电时切换到锂电池,作为备用电源 |
| 散热片 + 涡轮风扇 | 带走 RK3566 的热量 |
这种堆叠方式能把整机面积压到很小,但也会给装配和验证带来不少麻烦。
3.2 核心板与主控
AdorkableTV 使用 RK3566,四核 Cortex-A55,集成 Mali-G52 GPU。核心板上只保留 SoC、LPDDR4、晶振和必要的去耦,eMMC、无线模块和电源管理则放在功能板上。
3.3 显示与交互
屏幕是一块 240×320 的 SPI TFT,驱动芯片为 ST7789V,通过 SPI3 连接。
3.4 电源
整机由 USB 供电。UPS 电源板负责锂电池的充放电管理,在 USB 断电时自动切换到电池,作为备用电源。调试时建议先用可调电源供电,确认各路电压正常后再接电池。
3.5 PCB 设计与打样

核心板、功能板和基板的堆叠关系
这个项目的板卡比较多,各板的打样参数也不完全相同:
| 板卡 | 板厚 | 工艺 |
|---|---|---|
| Adorkable Core / EXP | 1.2mm | 嘉立创 3313 阻抗,四边半孔 |
| Adorkable Base / Base V2 | 1.6mm | 嘉立创 3313 阻抗 |
| Adorkable Base V2 EXP | 0.8mm | 嘉立创 3313 阻抗 |
打样时选择嘉立创免费的 20% 阻抗管控,有半孔的板子要选四边半孔工艺。布线时重点注意:
- LPDDR4 的 DQ 必须一一对应,不能随意交换。
- 常见的 1 或 2 个片选(CS)配置下,CA 和 DQ/DQS 可以依赖 RK3566 启动时的自动训练,不必做全通道等长;只有 4 CS 的多 rank 配置才需要严格等长 CA。CLK 与 DQS 的偏差建议控制在 ±1 UI 内。
- LPDDR4 仍要控制阻抗并保持完整参考平面,走线不要跨分割。
- DQS_P/N、CK_P/N 以及 USB、HDMI 差分对内部要等长,差分线少过孔,对与对之间保持间距。
- AP6212 天线区域下方不要铺铜、走线或放金属件。
- 每颗芯片的电源引脚旁边就近放去耦电容,电源入口加足够大的储能电容。
- 半孔板边缘比较脆弱,拼板和分板时不要用力掰。
- 打样前跑 DRC,重点检查连接器方向、半孔焊盘和板框。
虽然 RK3566 可以通过训练放宽等长要求,本项目仍然对 LPDDR4 做了严格等长,以留出更充足的时序余量。
4. 系统与软件
4.1 启动链路
RK3566 的启动流程可以概括为:
BootROM → SPL / U-Boot → Kernel + DTB → rootfs系统可以从 eMMC 启动。第一次烧录,或者系统起不来时,可以让板子进入 Maskrom 模式,用 RKDevTool 重新下载 loader 和镜像。调试阶段优先接串口,只要 U-Boot 和内核有输出,大部分问题都能定位。
4.2 U-Boot 与内核
U-Boot 使用仓库中预编译的 uboot.img,负责 DDR 初始化、串口、存储和启动参数。
内核在瑞芯微 Linux SDK 的基础上做了适配,预编译版本对应仓库中的 boot.img。
4.3 根文件系统
根文件系统最初基于 Ubuntu 20.04 制作,脚本魔改自鲁班猫,支持 lite、xfce、gnome 等版本。掌上电脑建议使用 XFCE,资源占用比 GNOME 低。后来项目也适配了 Ubuntu 24.04 的系统镜像,但暂未整理对应的构建教程。构建好的镜像可以通过项目 README 里的网盘链接下载。
4.4 镜像与烧录
相关工具包括瑞芯微 USB 驱动、RKDevTool 和镜像打包工具。基本做法是解包官方镜像,替换 boot 和 rootfs 分区后重新打包,再烧到 eMMC。第一次烧录建议只替换 boot 和 rootfs,不要同时改分区表和 U-Boot。
5. 外壳与组装
外壳是一体式 3D 打印结构,内部按“屏幕 → UPS 电源板 → 功能板 → 基板 → 核心板 → 散热片 → 涡轮风扇”的顺序叠放。装配时主要注意半孔板边缘、散热片贴合和天线位置。
6. 结语
最初是在 B 站看到稚晖君的卡片电脑和“最强小电视”,被 PCB 上那些漂亮的走线,以及软硬件全栈开发带来的炫酷感吸引。那时的我还没有任何相关知识储备,既忐忑又兴奋,但还是下定决心去学,想亲手做出一台属于自己的掌上电脑。这个项目前前后后做了半年,中间花了大量时间和成本,也踩过不少坑,但真正完成时的那份喜悦和成就感却是无可比拟的。
AdorkableTV 如其名,是一台呆萌可爱的小电脑。项目的软硬件资料均已开源,欢迎复刻!遇到问题可以在 GitHub 提 Issue,也欢迎一起交流改进。