2019-07-15

Helix キーボードキットを組み立てた

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 を使って書かれました。

Footnotes

  1. 自力で修理するという手もありましたが、自分で組み立てたわけではない ErgoDox を修理するのは困難だと判断しました。

  2. 結局何も作りませんでした。