Help us understand the problem. What is going on with this article?

QMK Firmware でオリジナルキーボードのファームウェアを作成する

qmk/qmk_firmware のインストール

git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
util/qmk_install.sh

オリジナルキーボードのファームウェアを作成する

1. テンプレートを作成

```
cd qmk_firmware
util/new_project.sh <keyboard_name>
```

`qmk_firmware-master/keyboards/<keyboard_name>`以下にテンプレートが作成される

2. ファイルの書き換え

主に書き換えるファイルは以下の3つ

  • keyboard_name.h
  • rules.mk
  • config.h
  • keymaps/default/keymap.c

keyboard_name.h

キーボードのレイアウトを自身が作成したものに対応するように書き換える

(略)

#define LAYOUT( \
    K00, K01, K02, \
      K10,  K11   \
) \
{ \
    { K00, K01,   K02 }, \
    { K10, KC_NO, K11 }, \
}

(略)

rules.mk

LEDを光らせる場合はyesにする

(略)

BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes

(略)

config.h

キーボードの基本的な設定.
Promicroを用いる場合、ピンは以下の図のPortの番号を指定する。
ただし、先頭のPは省略する(例:PD3 → D3)。

20171030180002.png

(略)

/*
 * キーボードのレイアウトの設定
*/
#define MATRIX_ROWS 2  // キーボードの行の数
#define MATRIX_COLS 3  // キーボードの列の数

(略)

/*
 * キーボードの配線の変更
 * COLS: 列に使用するピンの指定, 左から右
 * ROWS: 行に使用するピンの指定, 上から下
*/
#define MATRIX_ROW_PINS { D0, D5 }     
#define MATRIX_COL_PINS { F1, F0, B0 } 

(略)

/*
 * LEDの明るさの設定
*/
#define BACKLIGHT_LEVELS 3

(略)

/*
 * LEDの制御ピンの設定
 * LEDの数の設定
*/
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLED_NUM 16
#endif

(略)

keymaps/default/keymap.c

キーを押したときの動作の設定

(略)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT( /* Base */
    KC_A,  KC_1,  KC_H, \
      KC_TAB,  KC_SPC   \
  ),
};

(略)

キーボードにファームウェアを書き込む

  1. ファームウェアをビルドする

    make <keyboard>:<keymap>
    
  2. ファームウェアを書き込む

    make <keyboard>:<keymap>:avrdude
    

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away