在鍵盤的世界裡面,有著許多開放原始碼的韌體可以使用,然而有些韌體可以搞定小紅點,有些卻對小紅點感到束手無策,而現在將教各位如何使用QMK來搞定小紅點模組。
目前需要的材料如下
看一下Pinout,若有開發版可以將所有32u4的腳位拉出來的是最棒的
例如teensy2.0
把檔案抓下來
git clone git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
./util/qmk_install.sh
接著做一把屬於自己的鍵盤
./util/new_keyboard.sh
會出現以下幾行,並照著自己的想法輸入
Generating a new QMK keyboard directory
Keyboard Name: Fuckyou3
Keyboard Type [avr]: #這裡要打avr
Your Name [John Smith]: ##這裡打Noobtw
Copying base template files... done
Copying avr template files... done
Renaming keyboard files... done
Replacing %KEYBOARD% with mycoolkb... done
Replacing %YOUR_NAME% with John Smith... done
Created a new keyboard called mycoolkb.
To start working on things, cd into keyboards/mycoolkb,
or open the directory in your favourite text editor.
在qmk_firmware/keyboard
資料夾下會出現Fuckyou3
的資料夾,進去後會出現以下幾個檔案
Fuckyou3.c
Fuckyou3.h
config.h
info.json
keymaps
readme.md
rules.mk
其中Fuckyou3.c
是讓使用者放自己需要的自製功能Fuckyou3.h
裡面就是鍵盤mapping的方式,也就是行列矩陣的方式去排列,如下所示
#define LAYOUT( \
k00, k01, k02, \
k10, k11 \
) { \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
}
上述程式碼裡面有著k00
k01
k02
之類的東西,代表著是k<row><col>
也就是第幾行第幾列的按鍵,上述layout代表著總共有兩個row
,三個col
,而第一行第一列的key是沒有的,就像是六個按鍵中,下排中間的按鍵被消失了(不是忘記了,也不是害怕想起來),也就是電路上沒有做開關的意思。config.h
中定義了一些事情
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER You
#define PRODUCT my_awesome_keyboard
#define DESCRIPTION A custom keyboard
上面就是插上電腦之後,會認到的usb_pid以、vid以及其他設定,VENDOR_ID跟PRODUCT_ID不要亂設定,如果亂設定會造成藍屏死機,MANUFACTURER、PRODUCT、DESCRIPTION都可以亂打沒關係
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
這裡表示這隻鍵盤總共有幾行幾列
#define MATRIX_ROW_PINS { D0, D5 }
#define MATRIX_COL_PINS { F1, F0, B0 }
#define UNUSED_PINS
而這裡就代表鍵盤要用哪一隻接腳來當row以及col,範例中用的是PD0
以及PD5
作為row,F1
、F0
、B0
作為col
接著就是定義防鬼鍵用的二極體擺放方向
#define DIODE_DIRECTION COL2ROW
這裏代表他是COL指向ROW,這裡的指向指的是鍵盤上的二極體方向,二極體的標示通常是一條線或是三角形抵著一條線,那一條線靠近row就是了。
最後就是rules.mk了
裡面可以設定一些東西
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
上述設定是使用atmega32u4作為主控
BOOTLOADER = halfkay
就是使用teensy開發版的teensy bootloader
下面還有一些其他選用的功能,詳情請見這裏https://docs.qmk.fm/#/config_options?id=feature-options