最丐17Toutch机械数字键盘
简介
2023年12月18日稳定性更新: 1. 修复端点4的应答模式设置错误 2. 移除内存占位
简介:2023年12月18日稳定性更新: 1. 修复端点4的应答模式设置错误 2. 移除内存占位开源协议
:GPL 3.0
描述
咨询了沁恒的工程师,得知CH551G已经停产,还在生产的CH552G是可以完全兼容程序的。而且存储空间更大,后续如果写不下了就会抛弃CH551G。
授权出售合集:
【腾讯文档】丐中丐小键盘授权ID以及授权费记账
https://docs.qq.com/sheet/DSXd2bm5rdVh2aHVk
这里推荐销量大的一两家来举例:
授权淘宝店铺:齐国害羞的白蔻
简介:搭配升级轴体换下来的轴体和键帽,再用这个最低成本的数字键盘组装套件。直接小预算大升级。

作者点评:截止到2022年12月1日累计销量超过4000。
性价比极高,问过负责生产交接的同伴,是立创SMT的,虽然前期部分貌似钢网厚度不对,导致部分轴座焊接强度不够。
但是总的来说相对于闲鱼个人卖家的因人而异的焊工稳定不少。
售价37包邮,同价位没对手,同样有触摸条的没这个价。
不信,我推荐几个,你就不会吐槽PCB边割手这些小问题了。(回流焊需要夹持边,所以就要V割拼版,掰开后边缘就有毛刺了,建议砂纸打磨下)
| 大致价格 | 名称链接 | 个人点评 |
|---|---|---|
| 37 | 一代丐PAD | 性价比和普及度都是最高的,缺点是有明显的按键冲突 |
| 50 | 二代丐PAD | 支持OpenRGB,无触摸,也有卖对应商品的淘宝店,被群友吐槽我深得黄氏刀法得真传,给了RGB但是阉割了触摸。分出价格区间。对此我表示冤枉,这是有热心读者画好了PCB找上门要求适配程序的,我以成果开源为要求接下了适配程序的任务。 |
| 100以内? | 三代丐PAD | 支持OpenRGB也有触摸,标配HUB,暂时无人量产,闲鱼有个人焊接产品,你也不想你的小键盘固件迟迟不更新吧,目前该项目正在比赛,给我点赞收藏评论,顺便把B站的也点了,获奖之后我才会更勤劳给你们更新啊!!! |
| 500 | ROG魔导士 | 丐PAD的idear来源,据我所知最早一款也是目前唯一带触摸功能的量产键盘 |
| 1400 | Ankh NumPAD | 经常被群员调侃,如果丐PAD的包装惊艳点,然后卖它一半的价格,就能躺在数钱了 |
| 2000 | 瀚文75 | 觉得贵的话是你的缺点 |
QQ交流群
进群方式在上面的腾讯文档查找,右边备注有对应分支的讨论区
这是名叫咕咕咕的卖家建立的交流群,据说要出差大半年,但是可以看看有没有好心群友转手半成品吧,
本意是方便排故,因为大家都是0基础,各种小问题频出,
即使是淘宝几元包邮的流水灯套件都有人焊接问题导致没功能就给差评的大有人在,如果不是有人在下面交作业,估计连我都要被问候。
其实故障就几种,大多是虚焊,焊反,指导排故的过程也是耗时耗力,但是其实找个以前同病相怜的就能给出合适的解决办法。希望被帮助的人继续帮助后面类似问题的人。
关于第三方卖家
这里提个建议,作者希望买家能把带图评价发到这个评论区。
如果卖家盈利到一定程度了,可以考虑打赏下作者以利于后续开发改进?
当然卖个5套以内就算了,据我了解卖家大多都是学生党,多的物料回回血我也表示支持。
或许超过这个量的话每卖出一套打赏1元给作者?多的就免了,不然成本转嫁到买家头上就要降低竞争力了。
功能描述(最新版本固件):
灯光:
- 默认灯效为lock时:1Hz呼吸,非lock时:0.5Hz呼吸
- 关numlock时,单击[5]设置灯光亮度
- 关numlock时,双击[5]切换灯光效果(有5种灯效,注意切换后开关NumLock观察)
- 可以在改键上位机中开启音乐律动模式
按键:
- 因IO数量限制,按键有冲突,无法识别同时按下,但可以局部无冲(2,4,5,6,8)
- 在非num lock时:[-]替换[break]
- [/]替换为[shift]+[tab]
- [*]替换为[tab]
- [+]替换为[shift]+[enter]
- 在excel中对应左右上下,方便表格录入。
- 非NUMlock时,三击5设置切换扫描模式
- A模式:保留2468局部无冲下修复部分窜键问题。
- B模式(初次烧录时默认):舍弃2468局部无冲下修复全部窜键问题。
- 长按[numlock]进入改键层,期间LED闪烁。
- 摁住触摸区再点击按键触发改键层功能,此时触摸相当于FN组合键
- 关numlock时,五击[5]进入苹果模式,且键帽下标功能重新映射到标准键盘的对应按键
触摸:
- 高达90Hz采样率
- 带校准功能,当触控不正常时摁住NumLock上电进行校准
- 触摸条在num lock时:滑动音量调节,点击中间播放/暂停,按上下切音乐,放大手势进入改键层
- 关numlock时:滑动为鼠标滚轮,点击中间打开计算器,按上下调亮度【笔记本或一体机有效】,放大缩小手势对应放大缩小功能
- 可以通过上位机调节触发灵敏度
- 关numlock时,六击[5]提高灵敏度,七击[5]降低灵敏度
- 在改键层下模拟dial,上为长按换功能,中为短按,下为切换滑动速度,缩小手势退出改键层
其他:
板载STC烧写口,UART与按键复用,带自动重上电功能(与LED驱动mos管复用),但程序暂时未适配。(估计不会有了,程序空间所剩无几)- USB口右上斜45°引出,与上一代统一的设计语言
- 采用micro usb接口,消耗多余micro线,想要type C或者热插拔的读者们可以自己修改(点我头像看铁打的551合集)
- 关numlock时,四击[5]打开开源网链接
成本:
- PCB大小均在10*10cm内
- 电子元件精简,除去单片机、按键和LED,仅1个场效应管,2个电阻,3个电容,4个二极管。
- 电容触摸按键不要钱,因为集成在PCB上嘛~
感谢读者提供的BOM表,进大群获取吧,在共享文档里有群号。
操作视频:
原理:
电容按键位置检测原理:

虽然技术文档没给出内部电路,但我猜原理和上面差不多,通过阻容震荡输出脉冲的计数检测触摸电容的大小。
而且触摸电容的容量变化与接触面积成正比,所以只要通过简单的比例运算便能得出按压的中间位置。
为了加大中间过渡的位置,所以触摸的覆铜会做成类似交错的梳子,见下图。

PS:电容触摸屏,触控板也是相同原理
详细的触摸覆铜推荐形状见附件里的PDF。
电容按键消抖程序:
uint touch_data[5];//读取回来的原始数据,正常工作时范围在4000~1000
uchar touch_leve[5];//滤波后的数据,保留百位数
void hysteresis()//滤除噪声
{
uchar i;
uint temp;
for(i=0;i<5;i++)
{
temp=touch_leve[i]*100;
if(touch_data[i]>temp+100)//每次才加减这一点点,动态是差点,但在90Hz采样率下这都不是什么大问题
touch_leve[i]++;
else if(touch_data[i]
touch_leve[i]--;
}
}
程序滤波算法类似迟滞比较器,当达到特定阈值才进入下一等级,进入下一个等级后上下触发阈值也会变化。
矩阵按键扫描原理:

这就是上一作的修改的原电路,没看过的点我头像看以往工程。
注意一下,图片和实际接法略有不同,但原理雷同。
从图中可以看出除了矩阵按键,下面还有一排独立按键,完全复用了,所以按键冲突很严重,
除了独立按键之间可以同时按,其他按键某一时刻只能有一个按着,不然读不出来确切是哪几个按键按着。
当然可以用加元件实现全键无冲。但最后向成本妥协了。
实物拆机鉴赏:(为什么是拆机?因为漏了拍摄制作过程)
左为主板,右为底板,和上一作一样,用焊接M3铜螺母方式来连接,M3*5螺丝不会突出底板,不怕刮擦布料
注意定位板下面先塞入螺丝再焊接轴体固定定位板。

底板图案可以随便改,反正没功能

底板的USB口位置做了开槽,使得键盘更薄

3D打印导槽展示(图片来源上面交流群,需要露下名字的可以联系我)

3D打印全覆盖面板展示

上面这两个3d打印件是我画的,群里也有其他大佬画的不同版本外壳。当然包装更漂亮肯定要加钱。
群里大佬画的TOP一体定位板:(建模:丐中丐键盘交流群-茧,拍摄:丐中丐键盘交流群-姐姐)


底板换成亚克力再把LED向下照:(来源:丐中丐键盘交流群-海波)


来自海波改版的亚克力堆叠外壳:(建模:[某位不愿留下称呼的淘宝买家])


淘宝店在售卖的,基于上面的改版:(建模:整个淘宝售卖团队)

来自海波改版的3d打印软弹定位板外壳:(建模:[某位不愿留下称呼的淘宝买家])


亚克力镶嵌堆叠(改自zuoer):(来源:丐中丐键盘交流群-Ran(兰))


上面外壳的生产资料都在群文件里面,欢迎进群
调试问题答疑
Q:焊接好后插入电脑不显示烧录?
A:
- USB线是否带数据传输功能,可以用手机连接试试,充电宝赠品线大多是没数据的
- 元件是否焊接正确,是否虚焊,检测5V和3.3V是否正常
- 烧录软件不兼容,换台电脑进行烧录
- 元件损坏或者CH551买了不带烧录固件的
Q:按键不响应或者按键不正确?
A:
- 万用表蜂鸣器挡检测按键是否正常导通,是否虚焊
- 比对PCB的3D预览,检测二极管是否焊反
- 镊子短接测试按键编可能因干扰导致按键编码不正确,尝试用短测试线短接测试
- 如果是摁下5会重启的话请重新烧录,注意把【使能复位脚】的勾选去掉
Q:触摸误触发,无响应?
A:
- 更新到最新程序。
- 触摸重新校准,摁住numlock上电,届时LED会闪烁3秒,期间保持触摸区上干净。
- 清洗触摸部分的助焊剂后重新校准。
- 松开下面触摸条两个螺丝再次校准测试,有可能螺丝头靠太近导致触摸异常。
软件
烧录方法:焊接完成后,安装烧录软件,画面参数调到下图所示,
摁住boot键插入USB,USB设备栏会出现设备1号,点击烧录即可。

程序更新日志:
Ver1.8:
- 移除改键层下触摸区的多媒体功能,全局改为模拟dial,提高生产力
- 点击上方为模拟dial长按,进入功能选择菜单。
- 点击中间为模拟dial点击。
- 点击下方调整滑动速度,步距分别为30和60和90,上电默认90
- 往上划为顺时针,往下划为逆时针,由于不是旋钮可能交互上有些不适应
- 修复改键设置的多媒体,浏览器,计算器没功能的bug
Ver1.9:
- 修复了因忽略写入时间导致连续写入eeprom不完整的bug,批量写入flash时会阻塞200ms
- 修改非numlock逻辑,[/]替换为shift+TAB,[*]替换为TAB,[+]替换为shift+enter。对应excel里面的表格上下左右
- 苹果模式下修改数字区的按键映射,映射为大键盘区对应的下标功能
- 苹果模式标志存储到flash,掉电保存
- 添加改键层交互快捷方式,摁住触摸时再按按键触发改键层操作
- 根据买家建议,添加一个呼吸频率逻辑相反的灯效
- 常量灯效替换为lock时常量,unlock时变频呼吸
- 改键层灯效改成变频闪烁
Ver1.91:
- 因栈空间不足,将USB底层的变量分配到idata区
- 上位机命令适配新的赋值eeprom方法
- 修改编译优化等级,关闭INTPROMOTE Compiler Directive,开启全局寄存器赋值,降低代码占用空间
- INTPROMOTE Compiler Directive:[https://www.keil.com/support/man/docs/c51/c51_intpromote.htm]
- 全局寄存器赋值:[https://www\.keil\.com/support/man/docs/c51/c51\_ap\_opt\_grc\.htm\]
- 经过上面一顿操作,勉强能烧录进CH551G,若后续因容量不足导致不能烧录的话请自行更换CH552G
Ver1.92:
- 精简1,3端点,降低中断的数量和内存占用
- 按键回报率设定为1000Hz(多种功能共用)
- 进入苹果模式前会同步当前numlock状态
- 修改EEPROM存储底层,读取比较是否有差异再写入
- 打开开源网的过程加入了字符串输入速度变化的效果,过程更耐人寻味
- 移除了惯性模式中会触发改键层的特性
- 总线复位后加入初始化判断
- 不再兼容V3版本及以下的改键上位机控制
Ver1.93:
- 休眠恢复后检测ready位,避免概率插电开机无法使用
Ver2.00:
- 惯性衰减优化为整数来计算
- 提高编译时的优化等级
- 滚轮模式下添加双指放大缩小的操作
- 音量模式下双指放大手势为进入改键层
- 改键层中双指缩小手势为退出改键层
Ver2.01
- 修复上报长度丢失的bug
Ver2.02
- 修复端点4的应答模式设置错误
- 移除内存占位
原理说明图片引用链接:https://baijiahao.baidu.com/s?id=1621173179116478690&wfr=spider&for=pc#
PDF来源:世强元件,微芯,意法半导体
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论