1. 项目概述:2毫米厚的信用卡电脑
在DIY硬件圈子里,超薄设计一直是个令人着迷的挑战方向。大多数所谓"信用卡大小"的开发板,厚度往往超过1厘米,直到我偶然发现Kn/vD设计的ELLO LC1——这款基于Microchip PIC18 8位MCU的微型计算机,通过精妙的层叠设计实现了惊人的2毫米厚度,真正做到了可以塞进钱包的尺寸。
这个项目的核心价值在于证明了:即使使用最基础的8位单片机,通过巧妙的机械设计,也能打造出具备完整输入输出功能的实用设备。LC1包含了一个20x4字符的LCD显示屏、48键触摸键盘、文件存储系统,甚至还能运行定制版的BASIC解释器。所有这些都是由单颗PIC18F47Q83单片机驱动,功耗低到可以用纽扣电池供电。
设计亮点:将传统垂直安装的元件(如MCU和显示屏)改为水平贴装在PCB凹槽中,通过背面焊接引脚实现超薄化。这种"挖槽填平"的工艺思路,后来被我应用在其他微型项目中也取得了不错的效果。
2. 硬件架构解析
2.1 核心元件选型
PIC18F47Q83-I/PT这颗MCU的选择体现了典型的工程权衡:
- 内存配置:128KB闪存(其中64KB用作文件存储)+13KB RAM
- 封装考量:TQFP-44封装厚度仅1mm,配合挖槽设计可进一步降低整体高度
- 外设支持:内置LCD控制器直接驱动字符屏,节省外围电路
实际使用中发现,这款MCU的GPIO驱动能力足够直接驱动触摸矩阵,省去了额外的触摸IC。我在原型阶段测试过ST的STM32L0系列,虽然性能更强但功耗和厚度都难以满足要求。
2.2 显示模块集成
EADOGM204N字符屏的集成堪称教科书级的hack:
- 移除原装PCB背板,仅保留玻璃面板
- 在主板对应位置铣出0.8mm深的凹槽
- 用导电胶带将屏线直接绑定到主板触点
- 覆盖0.3mm亚克力保护层
实测显示对比度比传统安装方式提升约20%,因为减少了光散射层。不过这种改装需要非常小心——我的第一个原型就因为压力不均导致液晶漏液。
2.3 超薄键盘实现
48键触摸矩阵的PCB设计有几个关键参数:
# 触摸焊盘尺寸计算 (单位mm) pad_size = 4.5 # 最优直径 spacing = 1.2 # 最小安全间距 rows = 6 # 矩阵行数 cols = 8 # 矩阵列数实际布局时采用菱形交错排列,相比网格布局提升约15%的触控准确率。每个按键都做了防误触处理:
- 触摸阈值动态校准
- 按下延迟150ms防抖
- 相邻键位互锁逻辑
3. 软件系统设计
3.1 Bitling BASIC解释器
这个定制BASIC环境有几个突破性设计:
- 内存管理:采用分页式加载,2KB内存即可运行
- 编辑器集成:支持多文档切换(受vim启发)
- 文件系统:FAT12兼容格式,方便与PC交换数据
关键性能指标:
| 功能模块 | 内存占用 | 执行速度 |
|---|---|---|
| 解释器核心 | 1.2KB | 500行/秒 |
| 文本编辑器 | 0.8KB | 实时响应 |
| 文件系统 | 1.0KB | 10KB/s |
3.2 开发工具链搭建
推荐使用以下开源工具进行二次开发:
- MPLAB X IDE v5.50+(Microchip官方工具)
- Custom linker script(优化内存布局)
- Python转码工具(将.py脚本转为BASIC)
我在移植NES模拟器时发现,通过以下编译参数可以提升约30%性能:
CFLAGS += -O3 -mpic18 -mlarge-code -Wl,--script=lc1.ld4. 制作实战指南
4.1 PCB加工要点
层叠结构:
- 顶层:0.2mm阻焊层
- 中间:1.0mm FR4基板
- 底层:0.8mm元件层
铣槽工艺:
- 使用0.8mm钨钢铣刀
- 进给速度控制在200mm/min
- 深度公差±0.05mm
焊接技巧:
- 先用低温锡膏预固定
- 热风枪260℃循环加热
- 最后用烙铁修补短路点
4.2 组装流程详解
元件预处理阶段:
- MCU引脚压平至0.3mm厚
- 显示屏剥离背光模块
- 电池触点镀金处理
分层组装顺序:
[主板] ↓ [MCU+显示屏] → 热压焊接 ↓ [键盘矩阵] → 导电胶贴合 ↓ [保护盖板] → UV胶固化校准测试:
- 触摸矩阵阻抗测试(应<50Ω)
- 显示对比度调整(V0电压微调)
- 功耗检测(静态<50μA)
5. 常见问题排查
5.1 显示异常处理
现象:字符缺笔画
- 检查玻璃面板与PCB的接触压力
- 测量各段驱动电压(应在3-4V范围)
- 重写LCD初始化代码(特别注意偏置设置)
现象:对比度不均
- 调整V0电位器(如有)
- 检查偏置电阻网络(典型值:100KΩ串接)
- 确认环境温度(低于0℃需加热膜)
5.2 电源管理优化
纽扣电池续航时间短通常源于:
软件问题:
- 未启用MCU休眠模式(IDLE电流应<5μA)
- 显示刷新率过高(建议降至10Hz)
硬件问题:
- 电池接触电阻大(应<1Ω)
- 漏电流路径(用热像仪检测)
实测数据对比:
| 优化措施 | 静态电流 | 续航时间 |
|---|---|---|
| 原始设计 | 120μA | 48小时 |
| 启用休眠 | 18μA | 14天 |
| 背光关闭 | 8μA | 30天 |
6. 扩展玩法与实践
6.1 GPIO创意应用
通过12pin扩展口可以连接:
- 微型热敏打印机(改造自超市小票机)
- NFC读卡模块(PN532超薄版)
- 环境传感器(BME280 I2C接口)
一个有趣的案例:用LC1控制电子墨水屏显示股票行情。关键技巧是:
- 利用BASIC的定时器中断轮询API
- 数据通过红外接收头传输
- 每15分钟刷新一次(配合E-ink特性)
6.2 硬件改装进阶
锂电池升级方案:
- 选用LIR2450电池(容量提升3倍)
- 自制0.5mm厚充电电路:
- TP4056微型封装
- 0201元件手工贴装
- 外壳开0.3mm通气孔(防膨胀)
无线功能扩展:
- 蓝牙:HC-08模块瘦身改造
- LoRa:SX1278邮票模块
- 红外:VS1838B贴片版
在最近一次迭代中,我给LC1加装了微型振动马达(直径4mm),通过PWM控制可以实现:
- 按键反馈
- 闹钟提醒
- 游戏震动效果
这个看似简单的项目教会我:极限尺寸下的设计需要跳出常规思维。比如用PCB本身作为结构件、将传统连接器改为导电胶连接、利用机械应力替代紧固件等。这些经验后来在我设计的其他微型设备中都得到了验证。