キースイッチをホットスワップできるErgodoxの基板を作成して実際に組み立てた話
はじめに
以前、キースイッチとProMicroをホットスワップできるLet's Splitを作った話をしたが、今回はキースイッチとTeensy2.0をホットスワップできるErgodoxを作った話。
誰も作っている人がいなさそうだったので、Kicadで基板データを作成し、工場へ発注をかけ動作テストを行うと行ったなかなかの体験をしたと思う。
年始からコツコツと進めて本日完成したので記事にした。
リポジトリ
該当のPCBのデータはリポジトリに纏まっている。
Holtiteソケットとは
写真のようにソケットをPCBに圧着して、キースイッチやピンヘッダの脚が差し込めるようになる。 実装時の注意点は、スルーホールを突き抜けた際に、部品が曲がってしまうこと。
Build-Log
Ergodoxと作り方は変わらない。キースイッチとTeensy2.0をはんだ付けする代わりに、Holtiteを圧着すれば良い。
なお、当初IOエキスパンダもHoltite対応だと思いこんでおり、自分が用意した基板はIOエキスパンダの部分もHoltite対応のスルーホールのサイズになっているが、はんだ付けする必要がある。
1. 下準備
両手のパーツにダイオードをはんだ付けする。ダイオードの本体が来る面は、キースイッチが設置される面とは反対側になる。
もし向きを間違えても、この時点で問題ないので頑張っていっぱいはんだ付けする。
2. 左手
IOエキスパンダと3.5mmTRRSジャックをはんだ付けする。TRRSジャックの両端のスルーホールも忘れずに余ったリードではんだ付けする。
次にHoltiteソケットを圧着する。Holtiteソケットはとても小さいので、先がきゅっとなっているピンセットは必須。
3. 右手
3.5mmTRRSジャック、USB端子、抵抗をはんだ付けする。
Teensy2.0部分にHoltiteを圧着する。
Teensy2を挿入する。結構硬い。
いよいよ残りはHoltiteの圧着だけだが、画像の列のスルーホールピンセットでそっと真円状にセットしてやり、そこにHoltiteをそっと入れる。
ここがクリアできれば残りの部分にHoltiteを圧着する。
ケースにはめ込み、キースイッチを装着。
Falbatechのアクリルのスイッチプレートは厚みがあるので、スイッチ自体をガッチリくわえ込まないのでキースイッチは非常に取りやすい。
注意点としては、Kaihua Kailh Speed Switchesはスイッチ自体の厚みが足りず適合しないこと。ステンレスのスイッチプレートを利用している人であれば問題なく装着できると思う。
スイッチを装着。気分によってスイッチを変更できるのはとても良い。 普段使うキーはZeal、親指部分はCherry黒軸、あまり使わないModify部分はCherry青軸にしている。
キーキャップをはめて完成
キーキャップを装着して完成。今回はMassdropで購入したThe Amazing Chocolatier Custom SA Keycap Setを装着している。
Detolfで食器棚を作った話
背景
今まではIKEAのBILLYに扉をつけて酒器類を保管していたのだが、普段利用しない段はホコリが溜まってしまってゲンナリしていたのでホコリが入らないキャビネットとしてDETOLFを3台買った。
買ってから気がついたのだが、扉のところは隙間が5mm程度あるためモヘヤがついている隙間テープを貼っている。
参考
このページを参考に1台辺り厚み6mmと4mmのテープを用意し、上側と右側を6mm、下側と左側を4mmで貼り付けている。
結果
重量が1台40kgあるので、3台作ったら全身筋肉痛になった。
出来上がったものは満足の行く出来。高さとしてはグラスはちょうどよいが、陶器類は高さが余ってしまうようだ。
あとは、高さがあるので地震対策はしておいたほうがよさそう。
マンゴープリンのタルトを作った話
マンゴープリンのタルト
レシピ
分量としては6号のタルト生地に満タン装填できつつ、1カップのマンゴープリンが余分にできるぐらい。
タルト生地は6号のものをAmazonで購入。 www.amazon.co.jp
材料
- マンゴー缶詰 1缶
- 砂糖 小さじ1.5
- 牛乳 250cc
- ゼラチン 5g
手順
- マンゴー缶を開けて、身の部分だけミキサーに入れてピューレ状にする。
- 牛乳 200cc と砂糖を加えて、沸騰直前まで煮る。
- ゼラチンを牛乳に投入し溶かす。
- 牛乳50cc をマンゴーピューレに入れてミキサーにかける。
- 牛乳にミルクマンゴーピューレを投入
- タルト生地に入れて、冷蔵庫で冷やし固める
フルーツ
いちご、冷凍ブルーベリーを盛り付けてある。
冷凍のブルーベリーは生のブルーベリーとくらべて、強度が足りない。
一度凍らせて解凍しているため細胞壁が壊れてダラダラなのと、水分量が多くキッチンペーパーで水分をとって使っている。
次からは冷凍のブルーベリーは使わないと思う。。。
ココナッツミルクのレアチーズタルトを作った話
ココナッツミルクのレアチーズタルト
レシピ
タルト台のレシピはこのサイトのものをベースにした。分量としてはタルト生地6 号のものにちょうどよい。
ただ、ココナッツミルクパウダーが手に入らなかったので、ココナッツミルクの缶詰を使った。
大体、水分量が一緒になればいいと思ったので、牛乳+ココナッツミルクパウダーの90ccを入れている。
あと、タルト生地は6号のものをAmazonで注文して使ってる。
フルーツ
いちご、ブルーベリー、種無しブドウを盛り付けてある。
冷凍のブルーベリーと生のブルーベリーを両方買ってみたものの、断然生の方が美味しいので生のほうが良いと思う。
あと、切り分けるときに崩れないようにしたいので、次回は砂糖とゼラチンを混ぜたやつをかけてみればいいのかな。。。
システム手帳をHBxWA5からA5サイズのオーガナイザーにした話
背景
初めてのシステム手帳は、社会人6年目の時に買ったAshfordのHBxWA5だった。サイズ的に正方形に近く、ペンを指すとバインダーがロックできるのには感動した。
クリップでスーツの布地が痛まないように配慮されたPerikan のM800を指すと、バインダーの革を傷めずに綺麗に止めれて非常に使いやすいバインダーだった。
システム手帳は初めてだったので、色々なリフィルが出ていることが楽しく、見開きで1月単位のスケジュール帳と、Todoリスト、メモ帳をメインでセットして使ってホクホクしながら使ってた。
標準セットに含まれていたパスワード管理用のリフィルは、誰が使うんだこんな危ないもの。。。と思っていたけども。。。
そうこうしているうちに仕事量が膨れ上がり、Todoリストの一列に書いた程度では管理しきれなくなってかんばんアプリのwekanを導入する事にした。
Wekanは現在もメインで使用しているのだけれども、タスク管理ができない根本的な問題は、管理手法ではなくそもそもタスク整理する時間がないほど稼働が高い状況だということに気がついた。 特に稼働が上がる月のタスク整理の出来なさっぷりがやばい。
まぁ、そんな状況で次に問題となったのが1日単位で何をしたのかを記録できないことだった。
TracやRedmineと違ってチケット管理ツールではないので、後からタスクを見直すことができないし次に繋げることがしづらい。 忙しいときほど、紙に書いていったほうが頭が整理できることは判っていたのと、行動を記録するために週間バーティカルを使ってみたかったのでクオバディスを導入してみた。
Executive Notes / 16×16cmを購入して使ってみたが、第一印象は持ちやすく、開きやすく、記載しやすいがそろった手帳で、ペンホルダーがついていないことだけが唯一の欠点ぐらいという感触だった。1時間単位で何をしたのかを記載していったのだけど、1週間単位で自分が何をしていたのかが非常に見やすかった。
ただし、1週間を見開き1ページに収めているのであまり大量にモノがかけないことが難点だったけど、自分の要件にはマッチしていたので気にっていて使ってはいた。 結構な気に入り具合だったので、上期の長期対応スケジュールも真面目に書いて行き、予定を立てていったわけだが結局トラブル対応等でスケジュール通りにいくはずもなかった。もうここまで来ると呪われているとしか思えない。
そんなこともあり、結局のところスケジュールを立てることはやめた。
ゴールまでのプランを立てる対象は自身が本当にやりたいことだけにして、日々の業務は完全に切り離すことにした。
あと、Ashfordとクオバディスの2つ持ち歩いた結果、対応した記録をクオバディスに書いて、メモしたいときはシステム手帳を開くというのはアホらしかった。
教訓
整理方法としてはいくつかの教訓を得た。
- 綺麗にスケジュールを立てたところでトラブル対応で稼働が持っていかれてスケジュールは頓挫する。
- むしろ新しいお仕事をお断りするためだけに、スケジュールを切っておけば良い。
- 長期的なスケジュールを立てて悦に浸るよりも、自分がやりたいと思った長期的なものだけを手帳にまとめておいて、ゆったりと思考整理してこなしていったほうが良い。
- 日頃の細かいタスクや業務はかんばんアプリで整理すればいい。
手帳の持ち歩きとしてもいくつかの教訓を得た。
- 手帳は一つにまとめておくべき。
- 常に持ち歩くのならスマホが良い。手帳は週末家に持ち帰ってあとは会社に置きっぱなしで十分。
- ペンを刺してロックするバインダーは便利なのだけど、太い軸じゃないとすっぽぬける。
- クオバディス最高。見た目は本当にイカした手帳なので、システム手帳のリフィルを出してほしい。
- HBxWA5最高。ただ、Ashfordしかリフィルを作っていないというのが悲しい。
結論
結局のところA5サイズで一つにまとめることにした。
バインダー
以下の要望を満たすバインダーを買った。
- たくさん書きたいのでサイズをA5にする。
- 紙はいっぱい挟んでおきたいのでリング経は大きなものにする。
- ペンでロックするタイプじゃないベルト式のバインダーにして、万年筆はペンケースで保管する。
買ったバインダーはオーガナイザーで、巻末にメモパッドが差し込めるようになってる。いっぱい書く人には良いと思う。
リフィル
以下の要望を満たすリフィルが必要だったので、ライフ社のノーブルを買って、自宅で印刷することにした。
- 万年筆のインクが裏写りしないこと
- 1ページで収まる年間カレンダーリフィル
- 見開き1ページで各月のイベントを記載できるリフィル
- 1ページに2日分の対応内容を記載できるリフィル
- 目標管理するようのリフィル
- 後何か面白そうなリフィル
スケジュール系のリフィル
ここが本当に秀逸なので、おすすめ。 pdc2.u1m.biz
アクセサリー系の面白そうなリフィル
ここに幾つか公開されていた。 A5システム手帳リフィル 無料ダウンロード | netamono.
最後に
予想していたのだけども紙をいっぱいまとめられるA5のオーガナイザーは重たいので、毎日持ち歩くのには不向きだけど、もともと持ち歩かないのでこれで十分な気がしている。
軽くて利便性の高いものを求めるのであれば、スマホのメモやカレンダーを駆使するのが一番いいと思う。あと、かんばん系アプリだとTrelloがいいんじゃないかなと思う。
InfinityErgodoxのケーブル交換とアクリルパーツの締め付け補強の話
InfinityErgodoxを作った際、以下の2点が気になっていた。
ちょっと使いづらいポイント
- 左右のキーボードを接続するUSBケーブルが長すぎるので交換したが、Master <-> Slave間が通電してLCDは表示されるが、キーを押しても反応しない
- 左手のFullhandオプションのアクリルパーツが微妙に薄いらしく、ネジできっちりと固定できない。
原因
- 原因はどうやら、USB TypeC - USB2.0 のケーブルだったため。
- 工作精度。(といってもFalbatechよりは断然良いけど。。。)
対策
対策1
Ankerのケーブルを購入して指したら、適切にMaster<->Slaveが認識された。
これで机の上でだらしなくケーブルが飛び出ることはなくなったが、少々長い。70cmがベストかもしれない。
対策2
M4のナイロンワッシャーをはめ込むことで解消した。 これでガシガシ入力してもアクリルパーツががたがた動くことがなくなったので仕事で使っても問題なさそうだ。
MacbookPro15inchでInfinityErgodoxに直接ファームを焼く話
前回のエントリーで、Macbook15inchに接続した状態ではqmk_firemwareのmakeコマンド経由で焼きこむことができなくて苦労した話を書いた。
Macbook12inch経由ならうまく行ったのだけど、やっぱりメインで使っているMacbookPro15inchから直接ファームを焼けたほうが便利なことには違いないのでちょっと検証してみた。
結論として、Teensy2.0のようにhexファイルを焼き込むのではなく、.buildディレクトリ内に生成されるbinファイルを焼き込む必要があったので詳しくは以下を参照して頂きたい。
リセット前後の認識のされ方の違い
system_profiler SPUSBDataTypeにおけるデバイスの認識結果と、dfu-utilのブートローダーの認識結果を比較すると状況が見えてくる。
InfinityErgodoxのリセット前
GINSUKE:.build exthirix$ system_profiler SPUSBDataType
Infinity keyboard/TMK: Product ID: 0x6464 Vendor ID: 0xfeed Version: 0.01 Serial Number: 0xDEADBEEF Speed: Up to 12 Mb/sec Manufacturer: TMK Location ID: 0x14100000 / 22 Current Available (mA): 500 Current Required (mA): 100 Extra Operating Current (mA): 0
InfinityErgodoxとして認識しており、パスはfeed:6464である。
GINSUKE:.build exthirix$ dfu-util --list dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Found Runtime: [05ac:8290] ver=0146, devnum=10, cfg=1, intf=5, path="20-8", alt=0, name="UNKNOWN", serial="UNKNOWN
dfu-utilとしては認識していない。
InfinityErgodoxのリセット後
GINSUKE:.build exthirix$ system_profiler SPUSBDataType
Kiibohd DFU Bootloader: Product ID: 0xb007 Vendor ID: 0x1c11 Version: 0.00 Serial Number: mk20dx256vlh7 Speed: Up to 12 Mb/sec Manufacturer: Kiibohd Location ID: 0x14100000 / 28 Current Available (mA): 500 Current Required (mA): 200 Extra Operating Current (mA): 0
InfinityErgodoxとしてではなくBootloaderとして認識しており、パスは1c11:b007で認識される。
GINSUKE:.build exthirix$ dfu-util --list dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Found Runtime: [05ac:8290] ver=0146, devnum=10, cfg=1, intf=5, path="20-8", alt=0, name="UNKNOWN", serial="UNKNOWN" Found DFU: [1c11:b007] ver=0000, devnum=15, cfg=1, intf=0, path="20-1", alt=0, name="Kiibohd DFU", serial="mk20dx256vlh7"
1c11:b007のパスが増えていることに注目。なお、このパスは右手用/左手用共に同一だった。
ここまでの結果からみた推察
つまり、dfu-utilで書き込むためには、InfinityErgodoxを一度リセットモードにして、その状態で認識されたパス1c11:b007に対して直接書き込んでやれば良さそう。
実際に焼きこんで見る。
qmk_firemware的には、タダのErgodoxのファームを焼き込むときは、Teency2.0にhexファイルを焼き込めば良かったが、InfinityErgodoxはbinファイルを焼き込む必要がありそうだったが真偽の程は判らなかったので、両方検証してみた結果、binファイルを焼き込む必要があった。
hexファイルとbinファイルの生成のされ方
コマンドによってhexファイルだけ生成されるので、dfu-utilをつける必要がある事に注意。
hexファイルのみ生成する。
make ergodox_infinity-keymapname
hexファイルとbinファイルの両方を生成する。(右手用/左手用ファイルの生成)
sudo make ergodox_infinity-keymapname-dfu-util
sudo make ergodox_infinity-keymapname-dfu-util master=right
binファイルを直接焼き込む
以下のコマンドで直接焼き込める。
sudo dfu-util -d 1c11:b007 -D ergodox_infinity_keymapname.bin