作者不擅长整理东西,桌上常堆满速卖通订单、项目零件和没空归置的礼物。这个项目就是这么来的:桌上散落着几款可能兼容openstick的型号,最终用上了MF800,还有表哥送的Clicks Keyboard for iPhone 16 Pro Max键盘和Adafruit SHARP Memory Display显示板。原始人大脑把这三样拼在一起,可能也受了Beepy和Playdate的影响。由于供需法则和供应链的魔力,带WiFi、蓝牙、显示屏和电池的4G调制解调器竟能轻松买到。
正文

动机
我东西收纳不好,桌上常堆一堆:各种可能兼容 openstick 的型号(最终用了 MF800,UZ801 尺寸还行但无电池或足够可见 GPIO,USB 优盘型因其他问题弃了)、表亲送的 Clicks Keyboard for iPhone 16 Pro Max(可惜我没对应 iPhone)、Adafruit SHARP Memory Display 板子。脑洞把这三个结合,也受 Beepy 和 Playdate 影响。
调制解调器
供需和供应链让不到 20 美元能买到带 WiFi、蓝牙、显示屏、电池供电且完全解锁的 4G 调制解调器,是项目基石。有带屏和不带屏版,不带屏用 LED 替但 PCB 同,屏是 GC9107 看着糟我弃了。靠 openstick 项目可轻松装 Linux。原厂跑 Android,adb 出厂可用,从 adb 直接进 edl 重刷,记得备份分区;PCB 上也有短接进 edl 的引脚。从运行 Android 提取设备树信息量大。有用链接:
- OpenStick github
- openstick.de
- wvthoog.nl blog(初始内核)
- extrowerk.com blog
- 本项目 GitHub repo
驱动和设备树是 openstick 真痛苦处。
键盘
Clicks 键盘手感很好,就是贵且得剪掉。协议上是常规 USB 键盘加苹果私有端点(iPhone 授权用),对我们就是常规键盘。侧记:有 Clicks app 配置,键盘用 CH32V203 类似芯片,可刷自定义码但暂无必要,将来想有配置工具。
显示屏
Sharp 屏高对比度,适合只发消息的简易设备。没啥多说,就是屏,发命令,显示。
适配 PCB
很快清楚要加自定义 PCB。MF800 板上可能没 5V 升压。因尺寸 USB 接头要砍掉需处理。最终 PCB 处理了 USB host 模式供电、host/device 切换、显示供电和信号电平转换。

PCB 代工组装,因双面贵妥协放单侧,另一面焊点接 MF800。文件在 GitHub,含:
- TUSB320(USB 模式切换)
- SN74LVC8T245(电平转换)
- MCP1640(5V 升压)
- TPS22917 两片(切 VBUS/VBAT)
- USB 和 FPC 连接器
- 接 MF800 的测试焊盘
外壳 1
MF800 比其他 openstick 大,因电池和本身形状。

塞进 Clicks 壳要么竖着巨大要么横着剪 PCB。


注意底部右切会切断电池连线,需后补。
切割
切 PCB 意外顺利,立即启动一切正常,那些区域没关键线。

只没测 USB 和 4G 调制解调器。调制解调器 99% 没问题,USB 担心伤过孔。

接线 1
重用旧屏焊盘(可能因最初想用软硬结合板焊类似原屏,后弃因价高)。现在看蠢,本该用未焊 micro SD 旁标注焊盘(没查是否和 SIM 共享)。因能启动且有原 Android 设备树,提取显示 SPI 引脚,用 gpioset 测,电源和地类似测。

先接测电源再 USB,因可孤立测,且涉及电路和可疑过孔更怀疑。

初不工作,探 pads 电压 OK,笔记本 dmesg 见尝试枚举,且说 "high-speed" 意外,原疑线长,先紧拧线竟好了。

接着搞另一方向费时,不是所有 aliexpress 适配器 CC 线正确。键盘立即工作,只是不敢先试怕接错。

接线 2
接 SPI 前想确认设备树重配对。高通驱动诡异,注释掉的兼容不导出 spidev,用 dh2228fv 兼容骗过。用 spi-pipe 循环测 MOSI/CLK 电压变,无示波器。受电源 USB 成功鼓舞,粗心在开机时接屏,以为坏了其实没事(每次开机都这样)。重确认无冒烟后搞屏。AI python 搞一小时无进展,可能电平转换、布线、接触等。常见高通驱动 CS 处理不好,手动 toggle CS (libgpiod) 竟工作。

重接线
对电线失望(电源用电气线、信号用细磁线、MOSI/CLK 绕地线没用),重接。这次信号电源都用较粗磁线且定型好,USB 数据线没重接因主板上 pads 可疑。

显示内核驱动
前用 python 脚本,正道是内核驱动。选 ardangelo’s sharp-drm-driver。要 DRM 原因:直接输出播视频(mpv)、易跑 X/wayland、扩展局部更新、仍有 framebuffer。几乎立即工作,调了 CS 高有效。首次编译内核模块无问题,跑的是 6.12.1-msm8916 带模块内核有 .config,下主线程 6.12.1 希望无大改,小补丁后工作。设备树里 CS 逻辑由显示驱动处理。

驱动现把像素色低于某值舍黑高于白(或反),文字好通用差。需加抖动。加自定义 sys 值启抖动选算法:
- Atkinson(视频)
- Floyd-Steinberg(静图)
原功能留。


GitHub 有细节。
外壳 2
东西工作尺寸定,建模近终壳可塞键盘壳。苹果没给 USB-C 内距,测标准线插值。

这打印不特别有用但确认 USB 尺寸对。两侧壁没打好,建模时无显示模所以盖缺。

暂定终壳
终壳基本都合。先卡普顿胶带 quick test。

因生活琐事暂失工具(3D打印机等),热熔胶合壳而非打印卡扣终版。忘电源键,PCB上有但壳没开孔,用小孔加针解决丑但行。

无工具剪键盘壳,留少磨。现不糟但边需清,胶凸出。俯拍藏了。组装忘拍,同前加 4G 软 PCB 天线焊 PCB 粘屏下,有 mini SIM。
电池配置
Android 设备树带电池充电配置比主线 Linux 高级。预期易搞,疑问电池信息和适配器功耗。驱动在用户层只给电压 uV 和充电标志,电池逻辑留我 app 不改驱动。充电正常,经键盘 USB 透传也行但需启动后。
缺失
睡眠最大未解,因缺日常测试尤其开调制解调器,和缺方便电源键。近将来搞,至少快启停。附加输入如触屏滚轮最好,触屏占地小。其次是声或震,小喇叭 8kHz,有空间放大和喇叭。
丑处
胶问题和缺电源键需重打,键盘壳锯齿边需锉。电池用胶带固定否则掉,不优先。大下边框撑高可短但需换同 3pin 电池。辅助 PCB 在槽中上滑因 FPC 稍拉且盖忘加挡,仅滑入壳时问题。屏边被盖住 1-2 像素下版修。总体满意但还需美化,照片还行现实略欠。复制见 GitHub。
未来
故意略软件,随用完善。写时已在原显示驱动发现内存漏,已发补丁。
评论
社区多数人赞赏该迷你终端的巧思与实用价值,少数人提出续航、系统及功能上的扩展建议,整体气氛积极。
认为复用键盘做终端巧妙且能当功能机
- 较多人称赞项目,认为复用 Clicks 键盘是天才主意,设备并不算很不实用;有用户结合自身只带热点不带手机的习惯,指出它解决了短信与验证码查看痛点,堪当功能机。 > 重新利用 Clicks 键盘是个天才想法,这个迷你网络终端看起来并不那么难以实用(@xx_ns)
认为可通过加装电池与部署代理扩展能力
- 少数人建议硬件上加装并联 18650 电池将续航延至数周,或若内存足够可在其上运行智能代理系统。 > 若改接两个高品质18650电池并联,这设备可能能持续工作数周(@walrus01)
认为 OpenStick 老旧而有更优系统构建方案
- 少数人指出项目底层的 OpenStick 已过时,社区有跟踪上游内核的 Linux 与 OpenWRT 构建工具可用。 > OpenStick 实在太老了,有不少跟踪上游内核的 Linux 和 OpenWRT 构建器可供选择(@msm8916)
有价值的补充
- 有用户受项目启发打算拆解新购的廉价 4G 网卡,并分享冷知识:部分基于 MSM8916 的网卡虽无显示屏,却在运行安卓界面。
- 社区中存在单纯附和“很酷”的轻松情绪,反映对自制硬件的普遍喜爱。