Trying out ErgoDox EZ
同僚にErgoDox EZ借りたぞ!!!!!!!!
ErgoDoxとは
エルゴノミクスキーボードの一種です。エルゴノミクスとは人体工学と訳され、人体の仕組みにあった機械や椅子などを研究する学問です。
要するにErgoDoxとは人間の形にあったキーボードです。
ほかに有名なエルゴノミクスキーボードはKinesis等が挙げられます。
ErgoDoxとErgoDox EZ
ErgoDoxはそのハードウェア設計からファームウェアまで全てがオープンソースで公開されており、非常に自由度が高いです。その分ハードルが高く、それならと最初から完成品として提供するお手軽なプロダクトができました。それがErgoDox EZ。
EZ = イージー = Easy (ってことなのか?)
ファームウェアについて
ErgoDoxを制御(キーマップを定義したりとか)するためのファームウェアは以下にあります。
このファームウェアはErgoDox専用のファームウェアではなく、OLKBやClueboardというキーボードでも使えるらしい。
ErgoDoxの仕組み
ErgoDoxにはTeensy USB Development Boardというマイコンが組み込まれており、このマイコンを使ってキーマップなどErgoDoxの動作を制御しているようです。
qmk/qmk_firmwareに必要なコードがあるので、これをカスタマイズしてコンパイルしてTeensyに送ることで好きなキーマップにしたり、動作をコントロールすることができるという仕組みなようです。
とりあえずMacに繋げる
繋げたところ認識できないキーボードとなったので適当に環境設定で設定してみる。
- ※ この作業はいらないのかも...
キーマップはデフォルトぽかったのでShiftの位置はデフォルトを参照。
デフォルトのキーマップ
使いづらいwww
あとまだレイアウトの切り替えとか慣れて無いのでレイアウト1しか使わないと思う。結果的に買うことになったらじっくりその辺もいじっていきたいけど!
好きなキーマップを設定する
ErgoDoxの特徴である自由なキーマップを設定する方法。
ファームウェアのコンパイルと適用の準備
まずTeensyにプログラムを送るためのツール(Teensy Loader Application)を入れます。
認識するか確認します。
まずTeensy Loader Applicationを起動すると、以下のようにマニュアルでプログラムを入れるためのモードにするボタンを押せと言われます。
これはErgoDox EZの右半分の右上の穴に当たる部分。
写真のようにクリップや針を使ったほうが良さそう。楊枝だと入らない。折れたら面倒だし。
押すと反応しました。よさそう。
※ cliもあった。
brew install teensy_loader_cli
次にファームウェアをコンパイルするための環境を構築します(後述のGUIでレイアウトをいじる場合は必要ありません)。
ビルドガイドに従って必要なパッケージをインストールします。
brew tap osx-cross/avr
brew install avr-libc
brew install dfu-programmer
これで準備は完了です。
好きなキーマップを作る(GUI)
ビルド環境は出来ましたがもう時間が遅いのでGUIでさっさとやってしまいます!!
- ※ GUIの場合、細かい設定は出来ない
ファームウェアのリポジトリに、ErgoDoxディレクトリがあります。
ここにGUIでレイアウトを設定し、ダウンロードできるサイトが紹介されています。
使ってみます。まず以下のように右上の「Clone and modify this layout」を押すことで編集画面に入れます。
そこから好きに設定して名前をつけると「Compile this Layout」を実行することが出来ます。実行するとダウンロードボタンに変わり、レイアウト(拡張子が.hex
のファイル)を手に入れることができます。
このhexファイルは本来ならC言語で書いてコンパイルして得られるものなのですが、楽ちんですね!!
キーマップを適用してみる
Teensy Loader Applicationで送ります。
openしてprogramしてrebootするだけ!!
感想
思ったより長い記事になってしまった。学習コストの高さを物語っている...!そこも楽しいけどね。マイコン内蔵してるとか変態か!
ただドキュメントはけっこう充実しているし解りやすかったので、変に詰まったりはしなかった。✨
せっかく借してもらったので、心が折れない限り使ってみようと思います!
次やること
使いやすいレイアウトのカスタマイズと、GUIではなくCのファイルをいじってコンパイルして適用してみようと思います。
参考リンク
qmk_firmwareについて。
- qmk_firmware/doc at master · qmk/qmk_firmware · GitHub
- qmk_firmware/keymap.md at master · qmk/qmk_firmware · GitHub
ErgoDox EZのページ。
ErgoDox EZのGitHub(ドキュメント)。
事例。