1589 字
8 分钟
AdorkableTV

AdorkableTV,一台超迷你的 Ubuntu 掌上电脑:基于瑞芯微 RK3566 设计核心板与功能板、移植 U-Boot 和内核、制作 rootfs、设计外壳与散热,相关核心资料均已开源。

Commander-bao
/
BlueberryPi
Waiting for api.github.com...
00K
0K
0K
Waiting...

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. 复刻流程#

下面是推荐的复刻流程:

  1. 准备材料:核心板、屏幕、电池、连接器和散热器件。
  2. PCB 打样:使用仓库里的 Gerber 在嘉立创打样。
  3. 焊接与检查:先焊电源,检查无短路后上电测量各路电压,再焊主控和连接器。
  4. 烧录系统:先烧预编译镜像验证硬件,再替换 boot.img 和 rootfs.img。
  5. 组装测试:裸板跑稳定性测试,确认散热和接口正常后装壳。

3. 硬件设计#

3.1 板卡结构#

AdorkableTV 不是一块单独的主板,而是由多块板卡堆叠而成:

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 设计与打样#

AdorkableTV 板卡渲染

核心板、功能板和基板的堆叠关系

这个项目的板卡比较多,各板的打样参数也不完全相同:

板卡板厚工艺
Adorkable Core / EXP1.2mm嘉立创 3313 阻抗,四边半孔
Adorkable Base / Base V21.6mm嘉立创 3313 阻抗
Adorkable Base V2 EXP0.8mm嘉立创 3313 阻抗

打样时选择嘉立创免费的 20% 阻抗管控,有半孔的板子要选四边半孔工艺。布线时重点注意:

  1. LPDDR4 的 DQ 必须一一对应,不能随意交换。
  2. 常见的 1 或 2 个片选(CS)配置下,CA 和 DQ/DQS 可以依赖 RK3566 启动时的自动训练,不必做全通道等长;只有 4 CS 的多 rank 配置才需要严格等长 CA。CLK 与 DQS 的偏差建议控制在 ±1 UI 内。
  3. LPDDR4 仍要控制阻抗并保持完整参考平面,走线不要跨分割。
  4. DQS_P/N、CK_P/N 以及 USB、HDMI 差分对内部要等长,差分线少过孔,对与对之间保持间距。
  5. AP6212 天线区域下方不要铺铜、走线或放金属件。
  6. 每颗芯片的电源引脚旁边就近放去耦电容,电源入口加足够大的储能电容。
  7. 半孔板边缘比较脆弱,拼板和分板时不要用力掰。
  8. 打样前跑 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,也欢迎一起交流改进。

AdorkableTV
https://cmder.xyz/posts/linux-handheld-pc/
作者
宝哥
发布于
2026-10-19
许可协议
CC BY-NC-SA 4.0