标签存档: QMK

分体式键盘 ErgoX 改进一点点~

我在之前分享了一个分体式键盘 ErgoX,先复刻了一把,在使用了一段时间之后,也发现了一些问题,就根据自己的使用习惯改了点东西,重新搞了把新的。

ergox-split-update-1

原理图

ergox-split-update-2

相比原作者开源的版本,主要修改以下几个地方:

  • 把两个编码器移动到了 F 功能键这一行, 这样在 B 和 N 不习惯对应手指去按的时候可以有个替代,或者是这个位置也可以当成额外的快捷键使用,食指还是比较容易触达这个区域的
  • 替换了一下 3.5mm 耳机连接器的元件,并且没有采用交叉连线的方式,而是直接 TX 对 TX,RX 对 RX,这点修改的原因有两个:
    • 一个是 QMK 固件里说明了如果 MCU 支持的话更推荐使用 Half-duplex
    • 另外就是在买了 3.5mm 音频线后才发现大部分音频线其实没有 4 个通道,只有 3 个通道,这样如果使用全双工的话反而固件会不工作
  • 增加了两个识别电阻,用于左右手键盘的识别,这样可以实现 USB 数据线随意插,不用固定在左手或右手的键盘上

另外虽然还加了一个 12832 OLED 的接口,但是还没有研究明白分体式键盘屏幕咋整,就先留着焊盘没真正用起来了。

PCB 设计

ergox-split-update-3

PCB 整体跟之前一样,除了编码器位置移动之后,还把 MCU RP2040 的位置移动了一下。

这是因为原作者是直接用的三明治式亚克力外壳,但是我尝试给键盘做封闭式外壳,在建模的时候发现,MCU 和按键离得太近了,没办法加上左侧的墙壁,要露出来一条缝,就把 MCU …

阅读全文 »

整个带屏数字小键盘吧,先搞定 QMK 固件支持 STM32F103 的 I2C Remap

之前参考立创开源平台的夏天大佬,做了一个基于 ATMega32A MCU + QMK 固件的 40% 配列键盘,不过最后又想用起来的时候发现,可能因为 ATMega32A 用的是软件模拟 USB,所以在 Mac 上的兼容性有点问题,因此就想着自己重新搞一个键盘。

在 QMK 固件的 MCU 支持列表里面翻了一下,发现 STM32F103C8T6 也是支持范围,而且搞一个 STM32duino-bootloader 就可以直接通过 USB 刷机,也是相当方便了。

关于 STM32F103 使用 STM32duino-bootloader,之前已经写了篇文章分享 做键盘必备,抛掉ST-Link,STM32F103通过USB烧录,STM32duino-bootloader踩坑记录

免费打样来测试

但是直接搞整个 40% 配列键盘,PCB 的尺寸超过了嘉立创免费打样的范围,因此准备先搞个数字小键盘来验证一下 STM32F103 做键盘的原理图。

照猫画虎搞个原理图

搞键盘主要就是确定行和列的引脚,为了最大能支持 104 键,就把能用的引脚全用上了。

另外为了使用 OLED 屏幕,这里使用了 PB8、PB9 作为 I2C 通信引脚。

qmk-stm32f103-i2c-remap-1

原理图画了之后,先拿开发板测试一下固件能不能用吧,然后就发现 PB9、PB8 …

阅读全文 »

做键盘必备,抛掉ST-Link,通过USB烧录固件,STM32F103使用STM32duino-bootloader 踩坑记录

前言

之前在 DIY 基于 QMK 固件的键盘的时候,直接借鉴了立创开源平台上的项目,使用了 ATmega32A 作为主控,ATmega32A 本身并没有硬件 USB 接口,把它作为键盘主控是通过使用 USBaspLoader 这样一个 bootloader 来实现的。

但是毕竟是软件实现,在以前复刻时,使用 ATmega32A 的键盘还是能正常配合 MacBook 使用的,但是最近发现在连接到 MacBook 之后,会很快丢掉连接,这下不得不去找一个带硬件 USB 接口的 MCU 了。

这时我就把眼光放到了 STM32F103C8T6 上,玩了这么久的 ESP32、CH32V003 什么的,还是没能逃过 STM32 😃。

而且相对 ATmega32A,STM32F103C8T6 的系统资源就丰富太多了,64KB Flash、20KB RAM 用来烧录一个 QMK 固件那是相当够用了,什么宏、层的数量,都开到最大。

最后的重点,作为习惯了使用 USB 直接烧录固件的人,也希望给 STM32F103C8T6 刷固件时也可以直接通过 USB 刷,这就找到了 STM32duino-bootloader 这个项目。

阅读全文 »