使用YD-RP2040(RPI pico兼容开发板)作为主控的键盘,带 RGB、旋钮和小屏幕,支持热插拔,使用kmk固件
当前分支为主分支,其中储存的固件代码为标准版,与 lite 分支中的精简版的区别是,精简版没有进行超频,去除了计算器模块、RGB 状态显示模块、自制的 RGB 动画等复杂的功能,此版本进行了超频,保留有这些复杂功能,不过这些功能包含部分试验性功能,不保证稳定。
code 文件夹中是键盘的固件代码,需要配合 circuitpython 和 kmk 使用,并需要 Adafruit_CircuitPython_NeoPixel Adafruit_CircuitPython_ST7789 Adafruit_CircuitPython_Display_Text 三个库,另外不要忘记删除开发板中自带的 code.py
文件。
2024.5.20 update:当前 circuitpython 9 似乎存在一些执行效率上的问题,目前推荐使用 circuitpython 8, 如果你也使用 YD-RP2040, 那么可以从这个链接下载适用于 YD-RP2040 的 circuitpython 8.2.10
键盘电路图及PCB开源在 https://oshwhub.com/calico-cat-3333/calicocat-s-keyboard-v1
pcb 文件夹中也提供文件下载,需要使用嘉立创eda打开。
case 文件夹中是外壳的dxf文件。
keyboard-layout.json 是使用 keyboard layout editor 设计的键位布局
警告:此版本的固件默认超频到 150MHz, 如果您不希望在超频的情况下使用此键盘,您应该注释 mian.py
的第 7 行。不过这会导致额外的输入延迟等。
我目前已经使用超频版本固件约半年,未发现严重问题。
参考https://docs.circuitpython.org/en/latest/shared-bindings/microcontroller/index.html,可以通过进入REPL后执行以下代码重启到UF2模式以便更新CircuitPython
import microcontroller
microcontroller.on_next_reset(microcontroller.RunMode.UF2)
microcontroller.reset()
参考https://learn.adafruit.com/welcome-to-circuitpython/renaming-circuitpy,用以下内容替换boot.py的内容,然后重启开发板/拔下再插入键盘,然后将boot.py恢复到之前的内容。(可以将KMKFW替换为少于11字符的任意内容)
import storage
storage.remount("/", readonly=False)
m = storage.getmount("/")
m.label = "KMKFW"
storage.remount("/", readonly=True)
storage.enable_usb_drive()
在使用此键盘时,会有偶发的键盘突然不停输入最后按下的按键的情况,似乎是按键松开事件没有正确传入电脑。由于此问题发生偶然性很大,我没有找到稳定的复现方法,故暂时无法定位修复。临时的解决方案是在出现此问题时将键盘拔下再重新插入即可。