Helix キーボードキットを組み立てた
Jul 15, 2019
4 minute read

TL;DR

  • 長年使っていた ErgoDox が不調になり始めてきた
  • 壊れたときの逃げ道を用意するために Helix キーボードキット を買って組み立てた

Helix とは

Helix は、いわゆる自作キーボードのひとつで、以下のような特徴を持ったキーボードです。

  • 格子配列
  • 左右分離型
  • Kailh ロープロファイルスイッチ対応
  • 5 行か 4 行を選択可能

格子配列と左右分離型のキーボードだと ErgoDox (参考: ErgoDox EZ) が有名ですが、Helix はそれと比較して、Kailh ロープロファイルスイッチに対応していたり、キーの数が最小限に抑えられています。

また、自作キーボードはパーツを揃える難易度が高いのですが、Helix は一式揃えられるキットが遊舎工房で販売されています。

そして、ビルドガイドも日本語で分かりやすくまとめられており、自作キーボードの中では比較的敷居が低いという特徴も持っています。

なぜ Helix を組み立てたのか

約 3 年ほど ErgoDox を使っており、最近その ErgoDox でキーの無反応やチャタリングが発生するようになり、キーボードを新調する機運が高まっていました。1

そこで、以下のような要件を満たすキーボードを探していました。

  • 格子配列
    • ErgoDox に慣れて格子配列ではないキーボードのタイピングが下手になってしまった
  • 左右分離型
    • 左右が分離していないと肩に悪影響を及ぼす
  • キーが薄い
    • 一般的なメカニカルキーボードより、パンタグラフキーボードのような薄いキーの打鍵感のほうが好みだった
  • 4 行 * 6 列 + 親指キー
    • 数字キーやファンクションキーが不要だったので 5 行ではなく 4 行がよかった
  • 親指キーが 4 キー以上ある
    • ErgoDox で親指キーを左右それぞれ 4 キーほど使っていた

いろいろ探した結果、これらの要件を満たしていたキーボードのひとつが Helix でした。

また、偶然にも以前 ErgoDox やめたい期 (= ぼくのかんがえた最強のキーボードを作りたい期) が訪れ、勢いで Kailh ロープロファイルスイッチとキーキャップだけを購入していました。2

せっかくキースイッチとキーキャップがあることだし、これは Helix を作るしかないだろうということで (ほぼ勢いで) Helix を組み立てることにしました。

Helix を組み立てる

準備編

組み立てる前に、諸々のパーツと、組み立てるために工具が必要です。
ここでは、筆者が用意した物を紹介します。

パーツ

  • Helix キーボードキット (アクリル4行版キット(Underglow)両手セット) (遊舎工房)
    • バックライトモデルは実装難易度が高いということで Underglow モデルにしました。
  • Kailh ロープロファイルスイッチ (Heavy Switch burnt orange 軸) (Massdrop)
  • Kailh ロープロファイルキーキャップ (無刻印)
  • 3.5mm オーディオケーブル (TRRS ケーブル (4 極) または TRS ケーブル (3 極))
  • Micro USB ケーブル

工具

  • 糸はんだ
  • はんだこて (Amazon)
    • Underglow モデルであれば調温はんだごてでなくてもよいです (バックライトモデルだと調温が必要)
  • はんだこて台
  • はんだシュッ太郎 (Amazon)
    • はんだづけを失敗したときなど、はんだを吸い取りたいときにあると超絶便利です。
  • 逆作用ピンセット (Amzon)
    • ダイオードをはんだづけする際にピンセットを利用しますが、逆作用ピンセットだと力を入れずに挟み続けられるため、はんだづけがしやすくなって便利です。
  • プラスドライバー

組み立て編

ビルドガイドを見ながら組み立てていきます。

ビルドガイドがわかりやすいので、以下では簡単な Tips だけ紹介します。

PCB の切断

4 行版キットでも PCB は 5 行分になっているので、4 行にするために最下段を切断します。

PCB がバキバキになってしまわないか不安でしたが、最下段だけはみ出すような状態で机に置き、最下段に力を入れて折るとうまくいきました。

ダイオードの実装

先にダイオードを実装する基盤に片方だけはんだをつけておき、はんだを溶かしながらダイオードを乗せると少し実装が楽です。

QMK Firmware を書き込む

(詳細な手順は公式のドキュメントをご覧ください)

qmk/qmk_firmwaregit clone し、Helix 用のファームウェアをコンパイルして書き込みます。

Docker イメージとそれを利用するラッパースクリプトが用意されているので、これを使うと簡単です。

util/docker_build.sh helix:default:avrdude

ハマったところ

Pro Micro が反応しない

Pro Micro の差し込む位置を間違えていました。PCB 上に線が引かれているので、その線上に差し込む必要がありました。

Pro Micro は正しく接続できていれば Pro Micro 自身についている LED が赤く光るようになっているので、これが光るかどうかで実装が正しいかをテストできます。

キーが反応しない

ダイオードのはんだづけが甘いケースと、キースイッチのはんだづけが甘いケースがありました。

一度はんだを取り除き、再度はんだづけをし直すことを何度か繰り返して解消しました。

テスターがあると導通チェックができるのですが、あいにくテスターを持ち合わせていなかったので、ファームウェアを書き込んで入力できるかテストしていました。

QMK Firmware が書き込めない

Ubuntu 19.04 で、書き込み時に以下のようなエラーになって書き込めませんでした。

avrdude: Error: butterfly programmer uses avr_write_page() but does not provide a cmd() method.
avrdude: error: programmer did not respond to command: set addr

これは ModemManager が原因のようで、以下のコマンドで ModemManager を無効化すると書き込めるようになりました。

sudo systemctl stop ModemManager.service

参考: uploading - avrdude: Error: butterfly programmer uses avr_write_page() but does not provide a cmd() method - Arduino Stack Exchange

所感

ビルドガイドが分かりやすかったのと、周りに Helix を組み立てたことがある人がいたので、それなりにスムーズに組み立てられました。総作業時間は 8 時間ほどでした。

ErgoDox に比べるとかなり小さくなって持ち運びがしやすくなったので、それだけでも Helix にしてよかったなと感じています。

キー配列は ErgoDox とほぼ同じ配置にしており、以下のようにしています。(qmk_firmware/keymap.c · fohte/qmk_firmware)

# Dvorak

,-----------------------------------------.             ,-----------------------------------------.
| Tab  |   '  |   ,  |   .  |   P  |   Y  |             |   F  |   G  |   C  |   R  |   L  |  /   |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
| Ctrl |   A  |   O  |   E  |   U  |   I  |             |   D  |   H  |   T  |   N  |   S  |  -   |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
| Shift|   ;  |   Q  |   J  |   K  |   X  |             |   B  |   M  |   W  |   V  |   Z  |Shift |
|------+------+------+------+------+------+-------------+------+------+------+------+------+------|
|      |MSpace| Alt  |NUMBER| GUI  |Space | Bksp | Esc  |Enter | GUI  |SYMBOL| Alt  |Adjust|      |
`-------------------------------------------------------------------------------------------------'

# Cursor Moving & Adjust

,-----------------------------------------.             ,-----------------------------------------.
|      |Reset |      |      |      |      |             |      |      |      |      |      |      |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
|      |      |      |      |      |      |             |      | Left | Down |  Up  |Right |      |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
|RGB ON| HUE+ | SAT+ | VAL+ |      |      |             |      |      |      |      |      |      |
|------+------+------+------+------+------+-------------+------+------+------+------+------+------|
| MODE | HUE- | SAT- | VAL- |      |      |      |      |      |      |      |      |      |      |
`-------------------------------------------------------------------------------------------------'

# Symbols

,-----------------------------------------.             ,-----------------------------------------.
|      |   "  |   <  |   >  |   [  |   {  |             |   }  |   ]  |   `  |   ~  |      |      |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
|      |   !  |   @  |   #  |   $  |   %  |             |   ^  |   &  |   *  |   (  |   )  |      |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
|      |   :  |      |      |   \  |   |  |             |   +  |   =  |      |      |      |      |
|------+------+------+------+------+------+-------------+------+------+------+------+------+------|
|      |      |      |      |      |      |      |      |      |      |      |      |      |      |
`-------------------------------------------------------------------------------------------------'

# Number and Function keys

,-----------------------------------------.             ,-----------------------------------------.
|      |  F1  |  F2  |  F3  |  F4  |  F5  |             |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
|      |   1  |   2  |   3  |   4  |   5  |             |   6  |   7  |   8  |   9  |   0  |  F12 |
|------+------+------+------+------+------|             |------+------+------+------+------+------|
|      |      |      |      |      |      |             |      |      |      |      |      |      |
|------+------+------+------+------+------+-------------+------+------+------+------+------+------|
|      |      |      |      |      |      |      |      |      |      |      |      |      |      |
`-------------------------------------------------------------------------------------------------'

最後に

この記事は、組み立てた Helix を使って書かれました。


  1. 自力で修理するという手もありましたが、自分で組み立てたわけではない ErgoDox を修理するのは困難だと判断しました。
    [return]
  2. 結局何も作りませんでした。
    [return]