-
Notifications
You must be signed in to change notification settings - Fork 1
Home
ixx edited this page May 8, 2024
·
2 revisions
使用在线环境要注意这个 git 提供的Codespaces 保存一个月,一个月不登录就会销毁,记得提前保存在Codespaces中修改的代码,别问我怎么知道的。。
本文用的是nrfmicro主控,其他的主控可以参考主控自己的文档
登录zmk官方仓库 https://github.com/zmkfirmware/zmk
Code按钮下拉,在Codespaces中点创建
初始化成功后,在控制台执行以下命令初始化zmk编译环境(update 执行需要几分钟,等着就好):
west init -l app/
west update
初始化完成后可执行以下命令验证编译环境是否正常:
cd app
west build -p -b nice_nano_v2 -- -DSHIELD=kyria_left
如果没有报错说明编写环境ok,输出示例:
....
-- Generating done
-- Build files have been written to: /workspaces/zmk/app/build
-- west build: building application
[1/327] Preparing syscall dependency handling
[2/327] Generating include/generated/version.h
-- Zephyr version: 3.2.0 (/workspaces/zmk/zephyr), build: 1ae0eb5ce8ad
[317/327] Linking C executable zephyr/zephyr_pre0.elf
[321/327] Linking C executable zephyr/zephyr_pre1.elf
[327/327] Linking C executable zephyr/zmk.elf
Memory region Used Size Region Size %age Used
FLASH: 191996 B 792 KB 23.67%
SRAM: 55004 B 256 KB 20.98%
IDT_LIST: 0 GB 2 KB 0.00%
Converting to uf2, output size: 384000, start address: 0x26000
Wrote 384000 bytes to zmk.uf2
构建的文件保存路径为app/build/zephyr/zmk.uf2
编写自己的配列需要在 app/boards/shields
下创建自己的文件夹,参考这个shields目录下现有的配置编写,比如 jian
,这个是分体键盘,我主要就是参考这个改的,不是分体的可以参考 m60
文件列表简单说明(这个说明主要是基于自己理解的,有可能存在偏差)
- jian_left.conf 空文件(可以指定一些zmk配置,暂时用不到)
- jian_left.overlay 主要设置左手的列GPIO引脚,按promicro的引脚编号去写
- jian_right.conf 空文件
- jian_right.overlay 主要设置右手的列GPIO引脚,两个注意的点,一个是如果PCB跟左手是镜像的,则GPIO顺序要反过来写,跟左手PCB一样的话直接按左手的GPIO写就行。另一个是右手有col-offset 要设置,用来设置右手列的起始偏移量,比如10列的,就设置5
- jian.conf 空文件(可以指定一些zmk配置,暂时用不到,这个跟左右手设置类似,这里设置是左右手全局的,上边左和右是单独设置的)
- jian.dtsi 这里设置键盘配列布局,他这里设置了多种布局情况,我们写自己的可以只保留一个,设置好对应的columns和rows , map里按自己的键盘布局设置,行列索引都是从0开始,最下边的row-gpios里设置行的引脚,依然是参考promicro的引脚编号
- jian.keymap 这里就是修改键盘多层配置的地方了,可以使用在线配置网站,可视生成:Keymap Editor (nickcoutsos.github.io) 设置好后直接把内容复制过来最上边添加一下
#include <behaviors.dtsi>
就可以 - jian.zmk.yml 这是键盘的一些配置第一行不要动,就改一下id(注意不要跟别人重复)、name(键盘连电脑显示名)、url(配列项目地址)、siblings里的左右配置名字
- Kconfig.defconfig 设置键盘名和分体键盘的设置,按自己的名字改就行
- Kconfig.shield 定义shield,按自己名字改一下对应的变量就行
编写行列时对照GPIO按promicro 填写:
一般情况下构建使用
west build -p -b nice_nano_v2 -- -DSHIELD=kyria_left
- -b 指定使用的主控,nrfmicro可以使用nrfmicro_13(虽然我用的是1.4版本的nrfmicro硬件)
- -DSHIELD 指定要编译的配列
分体键盘可以使用如下命令,分别保存构建的左、右两部分:
west build -d build/left -b nice_nano_v2 -- -DSHIELD=kyria_left
west build -d build/right -b nice_nano_v2 -- -DSHIELD=kyria_right
- -d 指定构建输出文件目录
构建完后生成文件目录为 app/build/left/zephyr/zmk.uf2
和 app/build/right/zephyr/zmk.uf2
找到这两个文件分别右键下载到本地(记得改名区分left、right)
然后将nrfmicro主板使用数据线连接电脑快速短接nrfmicro的GND和RST两次,触发键盘刷机,进入u盘状态,将对应的zmk.uf2 直接拖进u盘,写入完成后会自动弹出,重新插拨一下就可以测试按键了
记录一下自己遇到的一些问题
- E73主控质量问题,第一次买的两块有一块刷完有一个引脚会触发连击,一次输入4个按键,且通电后主板发热量大,联系商家客服后一说现象马上补发了一个(看来不是个例)
- 已经配对好的两个主控,更换时要重新刷新bootloader,不然识别不到,不知道是不是特殊情况,我拿补发的主控做了一个nrfmicro 刷成右手 ,不能和之前的左手键盘匹配上(有可能左手记录了上一个右手键盘的蓝牙设备),重新刷了左手bootloader后好了
- 构建采用
-d build/left
这种方式构建,记得把原来build
下的zephyr
目录删除,目录太长,找left
下的zephyr
的时候容易点错,下错文件