2018-01-20

Foobarキーボードつくったった

あけましておめでとうございます。今年もよろしくおねがいいたします。

昨年は転職をして、新しい会社で新年を迎えたわけですが、新年早々に社長から、 キーボードつくりましょう!とのお言葉。なにごと!?と思ったら、Foobarという自作キーボードの基盤を作ったらしく、 沢山の基盤とパーツがあるので一緒につくりましょうということでした。

社長が自作キーボードにはまるまでには伏線があって、レトリバACM-ICPC国際大学対抗プログラミングコンテストの2017年アジア地区つくば大会のスポンサーをしていまして、参加学生向けにノベルティを配ろうということになりました。
みなさん覚えていますでしょうか?RubyKaigi2017のときのMisoca社のノベルティを!そう!Cherry MX キースイッチ用のキートップです。私もBaroccoを使っているので、もちろん頂戴いたしました。
弊社でもこれは真似したいということで、レトリバキートップつくりました。

でもこれってCherry MX軸つかってるひとじゃないと使えないじゃないですか(レトリバでは東プレ用の変換アダプタも配布しましたけどね☆)。それだけでは使えないんじゃおもしろくないので作りました。光るキーホルダーを

というわけで凝り性の社長が自作キーボード沼にはまるまでの伏線は用意されました。幸い年末年始休みもありはまるための時間も十分です。そんなわけで新年に出社するなり自作キーボード仲間に誘われたという次第です。
私もBaroccoを使っていることから分るとおり、キーボードにはこだわりたいクチだし、出来ることなら自作したいと思っていたところなので、仲間入りさせてもらうことにしました。

制作過程は同じく自作キーボード仲間の@eiichiroiの一連のツイートでどうぞ。

Foobarキーボード

さて、ここからは私の解説と奮闘のあとを記しておきたいと思います。

Foobarキーボードは@eiichiroiのツイートで分るとおり、分離型30キーの超小型のキーボードです。 40%キーボードと呼ばれる一連のシリーズの一つです。(Foobarはさらに小さく30%です。)

http://www.40percent.club/2017/09/foobar-10.html

PCBはGithubにありますので、自分でつくることができます。 ちょうどEasyIDAで100mm * 100mmのPCBが5枚で2$のキャンペーンをしています。Foobarの基盤はとても小さいのでこれで作ることができます。(お得情報!)

あとのパーツはAliExpressなどで買えるので適当にそろえましょう。

制作のほとんどは半田づけです。半田づけが得意なひとはよいですが、私のような初心者は慎重にね!
(私は数カ所半田がちゃんと繋っていなくて最初はうまく動きせんでした。)
以下は私が経験したトラブルと注意点です。

ダイオードは極性があるから注意(四角いランドが正)

これは電子工作の基本中の基本だと思いますが、なんと!基盤に極性が書いてありません。
どうも(自作キーボード界隈で?)ランドが四角いほうが正極というお約束があるそうです。
向きを間違えないように注意して作ってね。

マイコンをつけるピンは後で直せないので慎重に

キースイッチを半田した後ではフロントパネルがはまっているで半田面にアクセスできなくなります。私は一箇所半田が不十分だったようで、うまくいきませんでした。ジャンパで逃げることができましたが、ジャンパで対応できる場所ばかりじゃないと思うので慎重に。

3.5mm4極コネクタはしっかりつくように

Foobarでは左右キーボードの接続に3.5mmの4極プラグを使います。コネクタは表面実装になるのでここが物理的に弱いです。
私はやっぱり半田が不十分でプラグを刺したときにコネクタを剥してしまいました。しかも、パターンも一緒に剥してしまいました!(> <)
ここもジャンパでことなきを得ましたがジャンパがたくさんピョンピョンと飛んでいるのは悲しいので、はじめからしっかり留めてね!

ファームの書き込み時にはリセットする

ファームはGithubにあります。
書きこむためのプログラム(dfu-programmer, avrdude, avr-gcc)をインストールしておきます。わたしはmacなのでhomebrewでインストールできました。
左右のそれぞれのマイコンに対してUSBで接続してプログラムを書きこみます。

$ make eeprom-left
$ make program

$ make eeprom-right
$ make program

このときにそれぞれの書きこみプログラムで3秒ほどスリープするタイミングがあります。そのタイミングで基盤に表面実装したタクトスイッチを押してリセットしてください。
マイコンのプログラム書き込みの為のUSBデバイスはリセットした直後にしかアクセスできないらしいです。

また、デバイスファイルのファイル名が違う場合もあります(macでは違っていました)。そういう場合はCOM_PORTという変数で指定してあげます。わたしの場合は以下のようにしました。

$ make COM_PORT=/dev/tty.usbmodem1431 program

さいごに

苦労の末、無事にわたしのはじめての自作キーボードは動きました。Foobarはキーの数が30しかないので、複数のキーの組み合わせで足りないキーを補います。 そして、それは個人によって使い勝手が分れるところでしょう。自分にとって使いやすいキーアサインを探す旅のはじまりです。 こういったカスタマイズも自作キーボードの魅力なんじゃないかと思います。

レトリバでは毎週レトリバセミナーという社内の発表会のようなものをやっています。一部のセミナーはYoutubeで公開されます。自作キーボードの話も登場すると思いますのでどうぞご覧ください。

レトリバでは自作キーボード仲間を募集しています。 こんなことをしていますが、レトリバは自然言語処理や機械学習といった技術で製品開発している所謂AIをやってる会社です。自作キーボード作りはあくまで趣味ですが、こんな楽しい仲間と働きたいと思ったかたは是非ご応募ください。

株式会社レトリバの採用/求人一覧 - Wantedly