发作品签到
标准版

基于QMK的87键复古机械键盘

工程标签

1.0w
0
0
19

简介

87键复古机械键盘,设计特点是将Function键拆分移动到主键区域的左右两边。主控为Teensy 2.0+,固件基于QMK,加入了VIA,底座和上盖使用OpenSCAD绘制。

简介:87键复古机械键盘,设计特点是将Function键拆分移动到主键区域的左右两边。主控为Teensy 2.0+,固件基于QMK,加入了VIA,底座和上盖使用OpenSCAD绘制。

开源协议

GPL 3.0

创建时间:2022-01-20 14:16:48更新时间:2022-05-19 04:31:16

描述

制作动机

以前一直用 BFACE 的84键,但发现两个问题:一个是 Fn 键与 shift 键按下有先后差别,另一个是84键的 F1-F12 离主键区域太近,容易误触。于是想 DIY 一个类似IBM 3278、IBM5100、Fortune、Zenith Z100 的 Function 键在左右两边造型复古的机械键盘。
forturn.png

配列

借助 KLE 网站绘制键盘配列。
截屏2022-01-19 下午6.02.57.png
左下和右下两个键可以去掉,更有老键盘的味道;如果补上,则可多设置4个功能键。

PCB

微信截图_20220211200655.png

  1. 不想自己焊贴片元件,不想花钱SMT,所以二极管和电阻均采用插针式,二极管方向采用 Col_to_Row;
  2. 不想自己焊主控芯片,不想自己折腾 bootloader,所以直接将 Teesy 2.0+ 系统板焊接到 PCB 上;
  3. 不想要光污染,所以最后只添加了 Caps Lock 一个灯。

定位板

借助 Plate & Case Builder 网站生成 DXF文件。不想纠结各种材质定位板的手感和价格对比,直接在立创做一个无电路的 PCB 当定位板。
事实上,虽然定位板并无电路也不铺铜,但因为需要激光切割方形孔,所以加工成本反而比PCB板还要贵(PCB上虽然也有密密麻麻的孔,但全是圆形通孔,用钻头即可)。
plate.png

轴体

采用 TTC 金粉轴和腹灵卫星轴。金粉轴确实非常轻,很适合打字。卫星轴没有调明白,大键有点肉。

外壳

使用 OpenSCAD 绘制,纯代码建模。定位板和键帽的预览功能参考了 kbl2scad 的工作。
my87keys_full.png
底座采用光固化 3D 打印,上盖用橡木加工制作,这两种材质均难以攻出耐用的螺纹,因此需要挖六边形槽以嵌入螺母。
不想使用 Teensy 上的 mini USB 接口,所以购买了一个带定位孔的 Type-C 模块,自制了一根 mini USB 转 Type-C 的线,并在底座上设计了用于固定 Type-C 模块的结构。
typec.png

固件

  1. 利用 Keyboard Firmware Builder 网站生成源码;
  2. 修改 config.h 文件中 VENDOR_IDPRODUCT_ID 的值;
  3. 在 rules.mk 文件中添加 VIA_ENABLE = yes
  4. 在 QMK_MSYS 中编译生成固件;
    注:需要根据错误提示修正 keymap.c 及 kb.h 文件中“陈旧”的代码
  5. 使用 Teensy Loader 烧写固件;
  6. 编写 via.json 文件,使用 VIA 软件实时修改键值。
    微信截图_20220211211431.png

组装

  1. 焊接 Teensy 2.0+ 系统板,并把针脚剪短(否则会抵住定位板);
  2. 把 Teensy 2.0+ 系统板上的 LED 灯拆焊掉(因其连接到了PD6端口,不拆会导致 5、T、G、B、空格这一列连带着旁边 4、R、F、V 键连击)
  3. 焊接二极管(可惜当时 PCB 上的封装画反了,所以不得不反着焊,当然也可以将错就错按封装的方向焊二极管,在固件中改成 Row_To_Col 就可以了),
    3 个 2X 卫星轴附近的二极管必须焊到 PCB 背面,否则卫星轴安不上;
  4. 用镊子测试所有按键;
  5. 安装调试卫星轴(这一步最好在焊轴体之前);
  6. 焊接轴体;
  7. 在外壳与上盖的六边形槽中滴上 502 胶,将螺母嵌入其中,风干固定后即可拧螺丝组装。
    微信图片_20220211172031.jpg
    nocase.jpg
    微信图片_20220218134816.jpg

总结

  1. 这是我首个自主设计的键盘工程,感谢立创提供良好的软件生态和开源的社团氛围,可以快速找到可参考学习的相似方案,同时很容易获取各种元器件的封装,免去了自己手工测量绘制;
  2. 首个版本必有遗憾和疏漏,比如二极管封装画反、主控板端口没有做认真筛选、六角孔尺寸偏大、底座斜坡角度不够、底部的主控按钮洞可以设计成脚垫孔等等,如有创客 fork 本项目,一定注意文档中加粗体的部分,避免制作错误及返工。
  3. 虽然在 3D 打印前已使用 AutoCAD 完成了外壳和底座设计,但本着开源和挑战精神,自学了 OpenSCAD,采用“代码”方式重构了整个设计方案,避免了 AutoCAD 三维设计中由“非参数化”而导致的各种问题,400多行的设计代码也一并开源,供后来者参考。

附件说明

  1. my87keys.scad 文件由 kbl2scad.py 生成,主要包括键位信息;
  2. my87keys_full.scad 为绘制键盘各部件的文件,它调用了 my87keys.scad;
  3. via.json 文件用于 VIA 软件导入配列;
  4. my8387-qmk.zip 为修改后的键盘源码,解压后放在 qmk 路径下的 keyboard 文件夹中进行编译。

设计图

原理图
PCB

BOM

暂无BOM

附件

序号文件名称下载次数
1
my87keys_full.scad
37
2
my87keys.scad
28
3
via.json
27
4
my8387-qmk.zip
47
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航