Hacker News 中文摘要

RSS订阅

Show HN:把 20 美元的 4G 无线热点改造成短信设备 -- Show HN: Hacking a $20 4G wireless hotspot into a texting device

作者不擅长整理东西,桌上常堆满速卖通订单、项目零件和没空归置的礼物。这个项目就是这么来的:桌上散落着几款可能兼容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

PCB 代工组装,因双面贵妥协放单侧,另一面焊点接 MF800。文件在 GitHub,含:

  • TUSB320(USB 模式切换)
  • SN74LVC8T245(电平转换)
  • MCP1640(5V 升压)
  • TPS22917 两片(切 VBUS/VBAT)
  • USB 和 FPC 连接器
  • 接 MF800 的测试焊盘

外壳 1

MF800 比其他 openstick 大,因电池和本身形状。

去掉后盖的 MF800,以及为 bootloader 引脚开的多余口

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

顶部,蓝线是从连接器及焊盘到 SOC 的 USB 数据线

底部,红线标计划切割处,蓝圈标 USB 数据测试焊盘过孔

注意底部右切会切断电池连线,需后补。

切割

切 PCB 意外顺利,立即启动一切正常,那些区域没关键线。

测试壳中切好的 PCB,电池在下,有补的 VBAT 线

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

PCB 的 2D 扫描,按切线修整并拉伸匹配厚度,在 iPhone 宽度内紧配

接线 1

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

用万用表查引脚映射

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

接 USB 和电源

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

设备 USB Gadget 枚举

接着搞另一方向费时,不是所有 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 逻辑由显示驱动处理。

标准 linux 控制台登录提示出现

驱动现把像素色低于某值舍黑高于白(或反),文字好通用差。需加抖动。加自定义 sys 值启抖动选算法:

  • Atkinson(视频)
  • Floyd-Steinberg(静图)

原功能留。

仅色舍的视频看着糟

大兔八哥看着棒(原版 MPV 走 DRM 输出)

GitHub 有细节。

外壳 2

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

设 USB 为 host 后直接登录 linux

这打印不特别有用但确认 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 的网卡虽无显示屏,却在运行安卓界面。
  • 社区中存在单纯附和“很酷”的轻松情绪,反映对自制硬件的普遍喜爱。