Skip to content

Instantly share code, notes, and snippets.

@mackee
Last active March 31, 2020 14:04
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mackee/b5231e5609be889129ee4aa5c9ab0aaa to your computer and use it in GitHub Desktop.
Save mackee/b5231e5609be889129ee4aa5c9ab0aaa to your computer and use it in GitHub Desktop.
左手キーボード Pulsarの組み立て方(build guide)

Pulsar build guide

この文章は技術書典7などで頒布した左手キーボード Pulsarの組み立て方の説明です。

同梱しているもの

もし欠品や不具合等がありましたら、@mackee_wまで連絡をお願いします。

Pulsar 基板本体

Pulsar基板

ボトムプレート, メイン基板, トッププレート, ProMicroカバーが1枚の基板になっています。

また、ProMicroはメイン基板に実装済みです。OLEDもメイン基板に挿された状態です。

ネジ類

ネジ類

  1. ネジ M2 12mm x 8
  2. ナット M2 x 8
  3. スペーサー(1) M2 2mm x 8
  4. スペーサー(2) M2 3.5mm x 8

キットの他に必要なもの

キースイッチ x 9

Cherry MX互換かつ表面実装LED用の穴がボトムハウジングに開いているものに対応しています。

確認しているのはKailh BOXです。Kailh Speedも使用できることを確認しています。

Gateronスイッチは、LED用のスペースがないため浮いてしまいます。

キーキャップ x 9

上記のキースイッチに対応するキーキャップをご用意ください。

ノブ/つまみ

親指部分のロータリーエンコーダに使用します。

軸φ6.1に対応しているつまみが使用できます。また、直径2.3cm以上のつまみはキーキャップと干渉します。

秋月電子で売られているK-59や、千石電商で扱いがあるBR-20の使用できることを確認しています。

組み立てに必要な道具

  • ニッパー
    • 基板の切断に用います
  • ピンセット もしくは ラジオペンチ
    • スペーサーをはめ、ナットを締めるときに使います
  • ドライバー 0番手
  • 10cm x 10cm以上の平たい板 or セロハンテープ or マスキングテープ
    • ネジを立てるときに使います

組み立て方

1. 基板を分割する

Pulsar基板をプレートごとに分割します。細くなっている部分の両側を手で持って折ります。細くなっている部分がすぐ近くにある箇所もあるので慎重に折ってください。

分割する箇所

手で折った後に、基板の外形から飛び出している部分をニッパーで切断します。

バリを切断

切断した基板は4つになります。

切断後の基板

2. ボトムプレートにネジを差し込む

ボトムプレートを裏向きにします。Pulsarのロゴが左上にあるのが表です。

ボトムプレートを手やニッパー等で浮かせた状態で、下記の矢印の箇所にネジを入れていきます。

ネジを挿入

すべてのネジを挿したあとに、ボトムプレートをひっくり返します。

このとき、ネジを落とさないように工夫をします

平たい板がある場合、ネジ頭をボトムプレートの裏側からかぶせます。

平たい板で押さえる

板と基板を一緒にひっくり返します。

板と一緒にひっくり返す

ネジを押さえていた板だけを引き抜きます。

板を引き抜く

セロハンテープやマスキングテープがある場合は、差し込んだネジの頭をテープでボトムプレートの裏側に固定した状態でひっくり返します。

マスキングテープでネジを押さえてみた例です。

マスキングテープを使った例

3. スペーサー(1)を入れる

ピンセットもしくはラジオペンチで、短い方のスペーサー(1)を立てたネジに入れていきます。

スペーサーを入れる

4. メイン基板を重ねる

穴位置を合わせてメイン基板を重ねます。Pulsarのロゴが左上にある状態が表です。

メイン基板を重ねます

5. スペーサー(2)を入れる

ピンセットで、長い方のスペーサー(2)をメイン基板から飛び出したネジに入れていきます。

スペーサーを入れる

6. トッププレートを重ねる

穴位置を合わせてトッププレートを重ねます。Pulsarのロゴが左上にある状態が表です。

トッププレートを重ねる

7. ナットを締める

トッププレートから飛び出したネジにナットをはめていきます。このとき、ネジロックなどを塗布すると使用中に緩むことがなくなります。

ある程度ゆるくピンセットやラジオペンチで締めたあとに、ボトムプレートの裏側にドライバーを挿して固定します。

ネジを締める

8. キースイッチを挿す

トッププレートの四角い穴にスイッチを挿していきます。スイッチを底から見て2つのピンが上に来るようにします。横からピンの穴が基板側のソケットに収まっていることを確認して、強く押し込みます。このとき、ピンが斜めになっているとピンが折れてしまうことがあるので注意してください。

キースイッチを挿す

9. キーキャップをはめる

8 で挿したキースイッチにキーキャップをはめていきます。

10. ノブを固定する

ノブをロータリーエンコーダに固定します。

11. 完成

microUSBケーブルをProMicroに挿します。すると、キースイッチの下のLEDが点灯します。

完成

デフォルトキー配置

キーマップ

デフォルトファームウェアでは以上のマップになっています。

Cキーは2回素早く押すとVが入力されます。

また、装飾キー押しっぱなしでロータリーエンコーダの挙動が変わります。

  • Ctrl押しっぱなし -> LED点灯パターン切り替え
  • Shift押しっぱなし -> HOME/END

さらに、基板横から出ているレバースイッチを一定時間押し込むと、下段のLED切り替えレイヤーになります。

キーマップ変更

NOTICE: 本家qmk_firmwareへPull Request予定です。マージされたあとに手順が変わります

qmk configuratorは現在ロータリーエンコーダに対応していないため、ソースコードを変更してキーマップを変える手順を記述します。

事前にqmk_firmwareを扱える環境を構築しておきます。

参考: Windowsユーザ向け プログラマーではない人向けのQMK Firmware入門

1. pulsar ブランチを指定して github.com/mackee/qmk_firmwareをcloneします。

$ git clone -b pulsar https://github.com/mackee/qmk_firmware

すでにqmk_firmwareのclone済みブランチがある場合は、

$ git remote add mackee https://github.com/mackee/qmk_firmware
$ git fetch mackee pulsar
$ git checkout pulsar

と、リモートリポジトリを追加してcheckoutします。

2. ファームウェアを書き込む

動作確認のためにファームウェアを書き込みます。頒布時点で書き込まれているキーマップはforgraphicです。

qmk_firmwareのディレクトリにCLIターミナル内で移動し、以下のコマンドを実行します。

$ make pulsar/rev1:forgraphic:avrdude

Detecting USB port, reset your controller now... と表示されたら、PulsarのUSBコネクタの脇にあるリセットボタンを押します。すると、書き込みが開始されます。

avrdude done. Thank you. と表示されたら成功です。

3. キー配置を変更する

forgrachicキーマップをもとにキー配置を変えてみます。

まず、keyboard/pulsar/rev1/keymaps/forgraphicディレクトリをコピーしてkeyboard/pulsar/rev1/keymaps/mykeymapディレクトリを作ります。

$ cp -R keyboard/pulsar/rev1/keymaps/forgraphic keyboard/pulsar/rev1/keymaps/mykeymap

その後にお好きなテキストエディタでkeyboard/pulsar/rev1/keymaps/mykeymap/keymap.cを編集します。

例えばSと入力されるように設定しているキーをDに変更するには以下のようにkeymap.cを変更します。

@@ -38,7 +38,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {

 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [_BASE] = LAYOUT( /* Base */
-    KC_LSHIFT, KC_A,    KC_S,     KC_Y, \
+    KC_LSHIFT, KC_A,    KC_D,     KC_Y, \
     KC_LCTRL,  KC_Z,    KC_X,     TD(TD_C_V), \
                                            KC_LALT, \
     JP_LBRC,   XXXXXXX, LT(_LED, KC_ENTER), XXXXXXX, JP_RBRC \

キーコードの参考ドキュメント: キーコードまとめ

キーマップの最下段はレバースイッチのキーマップです。レバースイッチには半押しも検知できる機能があるのですが、使いにくいためforgraphicキーマップでは使っていません。

JPがプレフィックスにあるキーコードは、日本語キーボード向けのキーコードです。Windowsですでに日本語キーボードが別にある環境で利用してください。

保存後にキーボードにキーマップを書き込むには、 2と同様の手順で、以下のコマンドを実行します。

$ make pulsar/rev1:mykeymap:avrdude

4. ロータリーエンコーダの挙動を変更する

ロータリーエンコーダはkeymap.c内のencoder_update_user関数で挙動を定義しています。

void encoder_update_user(uint8_t index, bool clockwise) {
  if (index == 0) {
    if (clockwise) {
      if (get_mods() & MOD_LCTL) {
        rgblight_step();
      } else if (get_mods() & MOD_LSFT) {
        tap_code(KC_END);
      } else {
        tap_code(KC_MS_WH_DOWN);
      }
    } else {
      if (get_mods() & MOD_LCTL) {
        rgblight_step_reverse();
      } else if (get_mods() & MOD_LSFT) {
        tap_code(KC_HOME);
      } else {
        tap_code(KC_MS_WH_UP);
      }
    }
  }
}

KC_から始まるキーコードを変更すれば、そのまま挙動を変えることが出来ます。

clockwisetrueの場合は時計回り、falseのときは反時計回りの場合です。また、get_mods() & MOD_***では装飾キーの同時押しの場合の挙動を記述しています。

その他

ProMicroカバープレート

ProMicroカバープレートはProMicroの端子部分を隠すためのものですが、使用は必須ではありません。使用するにはM2 x 14mmのネジを別途用意します。

ProMicroのトッププレートで一旦ナットで固定した上で、カバープレートを載せて、別途用意したM2ナットで固定します。

お問い合わせ

欠品や不具合、質問などは以下のTwitterアカウントにDMなどでお問い合わせください。

https://twitter.com/mackee_w

@zyamoji
Copy link

zyamoji commented Oct 1, 2019

技術書典7にて購入させていただきました、ありがとうございました。
こちらのキーマップの指定が間違っていると思います。
forgrachic ではなく forgraphic
ではないでしょうか。

したがって、コマンドも
$ make pulsar:forgraphic:avrdude
で実行できました。
ご確認いただければと思います。

@mackee
Copy link
Author

mackee commented Oct 3, 2019

@zyamoji ご指摘ありがとうございます。修正しました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment