硬件已开源
原用途为作为OpenSK兼容硬件使用
本文将使用Ubuntu编译CanoKey固件
触摸按钮在p1.11
bootloader按钮在ai0(p0.2)
灯在p1.13
都是拉低触发

环境准备

# 因为新的Ubuntu他是没有python命令的,所以我们得给他建个连接,你可以自己试试有没有,需要是python3.x
sudo ln -s /usr/bin/python3 /usr/bin/python

sudo apt install git cmake gcc-arm-none-eabi
git clone https://github.com/canokeys/canokey-nrf52.git
cd canokey-nrf52

config/boards/nordic/pca10059.h这个开发板配置内容直接替换成下面的内容以简单的适配咩咩的E73模块双头usbkey

#ifndef PCA10059_H
#define PCA10059_H

#ifdef __cplusplus
extern "C" {
#endif

// LED definitions for zyyme
#define LEDS_NUMBER    1

#define LED_1          NRF_GPIO_PIN_MAP(1,13)
#define LED_START      LED_1
#define LED_STOP       LED_1

#define LEDS_ACTIVE_STATE 0

#define LEDS_LIST { LED_1 }

#define LEDS_INV_MASK  LEDS_MASK

#define BSP_LED_0      LED_1


// There is only one button for the application
// as the second button is used for a RESET.
#define BUTTONS_NUMBER 2

#define BUTTON_1       NRF_GPIO_PIN_MAP(1,11)
#define BUTTON_2       NRF_GPIO_PIN_MAP(0,2)
#define BUTTON_PULL    NRF_GPIO_PIN_PULLUP

#define BUTTONS_ACTIVE_STATE 0

#define BUTTONS_LIST { BUTTON_1, BUTTON_2 }

#define BSP_BUTTON_0   BUTTON_1

#define BSP_SELF_PINRESET_PIN NRF_GPIO_PIN_MAP(0,19)

#define HWFC           false

#ifdef __cplusplus
}
#endif

#endif // PCA10059_H

拉依赖库,请保持网络通畅

git submodule update --init --recursive

编译

mkdir build
cd build
cmake \
-DCROSS_COMPILE=/usr/bin/arm-none-eabi- \
-DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release ..
make canokey_flash.uf2

第一次运行的时候他会让你下sdk,去他提供的地址下载,因为时间的推移,需要的版本可能不一样,下面咩咩演示一下自己的

cd ~/make
wget https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/sdks/nrf5/binaries/nrf5_sdk_17.1.0_ddde560.zip
cd ~/make/canokey-nrf52/nrf_sdk
unzip ~/make/nrf5_sdk_17.1.0_ddde560.zip
cd ~/make/canokey-nrf52/build

然后再cmake

如果一切正常,会输出canokey_flash.uf2,直接用bootloader刷进去就完事了
初始化可以按着官方的走,也可以走一些捷径,去咩咩的工程下载附件,里面有个exe,插上运行一次就可以了,编译好的固件也上传了