16键+旋钮摇杆小键盘-Methane-XVI
简介
基于STM32的16键小键盘,配有旋钮和摇杆,含改键软件,支持普通键、快捷键、按键组、连点、媒体控制等多种功能。PCB、外壳、STM32程序、QT上位机全开源。
简介:基于STM32的16键小键盘,配有旋钮和摇杆,含改键软件,支持普通键、快捷键、按键组、连点、媒体控制等多种功能。PCB、外壳、STM32程序、QT上位机全开源。开源协议
:GPL 3.0
描述
键盘基本信息
输入:16个按键、1个摇杆(PS4摇杆)、1个旋钮(EC11)
灯光:1个RGB灯珠(可调光)、1个蓝色贴片LED灯、5个白色贴片LED灯(键盘灯,统一控制,可调光)
接口:TypeC接口、2*4pin弯排针接口(SW下载口和串口)
硬件方面
PCB尺寸限制在10cm以内了,而且两层板花钱的话也不太贵。
没有做热插拔和定位板,直接把键轴焊PCB上的,主要个人没这个需求,想改可以自行修改。
外壳在C口处的斜槽是为了方便用直角TypeC线,自己用的绿联的线刚好空间够用,用其他线可以考虑把槽再扩大。
为了缩小整体宽度,也为了外壳省料,PCB的一边是和侧面是平齐的,没有把PCB全包住。
螺丝用M2沉头的,16或17mm。螺母用M2、外径3mm、高2mm的嵌入螺母。
RGB灯珠一般有磨砂和透明两种,感觉磨砂的发光看起来好一些。
STM32方面
使用STM32F103C6T6,好处是便宜,坏处是内存和程序存储都小,内存在程序里尽量节省了,程序的话需要开O2优化空间才够用。
如果想二次开发感觉空间不够的话可以换C8T6,换的话有些注意事项,写在开源文件里了,
不过如果不考虑二次开发,则直接使用C8T6也没有问题,可以不管注意事项。
可以校正摇杆的中位值,方法也写在开源文件里了。更新:现在支持一键校正中位值。
程序采用SW下载,键盘本身的TypeC口不能用于下载,要用3V3、(SW)DIO、(SW)CLK、GND这4个排针连接下载器下载。
关于下载方法,可以在B站搜索“使用ST-LINK烧录STM32的HEX、BIN文件”,有一篇专栏,或者其他地方搜索ST-LINK烧录方法。
如果自行修改为串口下载的话除了要搞对boot电平之外还要注意一件事,那就是串口下载会清空FLASH再写入,而SW不会,
而键盘的配置数据是用芯片本身FLASH的最后1K字节存储的,因此若串口下载后要重新用上位机写入配置。总之不建议串口下载。
当然,第一次下载程序的话无论啥都得用上位机写入配置才能用。
功能方面
B站展示视频: https://www.bilibili.com/video/BV1VT411W78P
设备能存储两套键盘配置,四套摇杆旋钮配置,如下图左半部分:
按键能实现的功能见上图右半部分,更详细的内容(包括摇杆旋钮能实现的功能)见开源文件。
上位机
上位机用QT编写,由于QT对串口的支持比较好,所以将键盘的USB部分除了HID外增加了一个CDC串口,用来配置键盘功能。
一般Win10可以直接识别这个串口,Win7Win8可能需要驱动,所以驱动也放开源文件里了。
更新:现在已改为CustomHID通信,串口通信虽保留,但不支持新加入的功能。
为上位机的使用写了比较详细的说明,在这个说明也可以了解该键盘全部的功能。
2023.8.21更新
鉴于钽电容的选购和使用相对麻烦,将电源芯片由AMS1117改为662K.,使得可以只使用陶瓷电容。
移除了原有的RST按键和并联在晶振上的1M电阻。
将编码器滤波由电容滤波改为阻容滤波。
将蜂鸣器驱动由三极管改为NMOS管。
注意:当前PCB版本为V3.0,要获取旧版可下载PCB_V2.0.zip附件。
2023.12.28更新
大幅修改了STM32固件,将CDC串口通信改为CustomHID通信,整个工程变为CustomHID+HID。
更新了QT上位机,增加了CustomHID通信,同时CDC通信仍保留以兼容旧固件,可自选通信方式。
增加了摇杆中位校正功能,可直接通过上位机命令键盘将当前摇杆位置定为摇杆中位并存入FLASH,
新烧入固件的键盘由于尚未存储该值,一般会使用默认值2048,但建议进行校正。
上位机说明也对应进行了部分更新,见“Methane-XVI上位机说明_V2.0”。
注意:当前STM32固件和QT上位机版本均为V2.0,未标注版本的旧版为V1.0。
2024.8.7更新
更新了STM32固件,加入了对按键的软件滤波(消抖)。
更新了QT上位机,使用新的上位机配合新固件可以设置按键滤波时间参数;
修改了上位机在设置切换键和连点键时的操作方法,具体见附件说明。
大幅修改了PCB,由于代码增加了软件滤波,所以移除了原PCB所有按键的滤波阻容,共减少了36个元件;
现在将所有元件全部布局在PCB正面,为使用加热台进行焊接提供了巨大便利。
注意:当前STM32固件和QT上位机版本均为V2.2,PCB版本为V4.0。
2024.8.9更新
更新了STM32固件,修复了V2.2固件因添加软件滤波逻辑而出现的bug,此bug会导致使用自动连点时出现问题。
注意:当前STM32固件版本为V2.3,V2.2已撤下。
评论