Let's Splitをなるべく安く作ろうとした話
自作キーボード界隈では定番のLet's Split(通称レツプリ)を作りましたのでビルドログとしてまとめます. 久しぶりのブログ記事がこんなのでええんか?
レツプリとは
レツプリは格子配列の左右分離型キーボードで,radditのwootpatootさんによって作られました.一般的なテンキーが付いたキーボードのおよそ40%までキーを削減したPlanckというキーボードがありますが,レツプリはこれを二等分したようなキーボードです.詳細な説明は他の記事に任せますが,なんでもナウなヤングにバカウケなキーボードらしい1ですね.
さて今回はこれを作っていくわけですが,作成には基板,キースイッチ,キーキャップ…などが必要になります.これらを全て揃えていくと制作費が1〜2万円とそこそこなお値段になってしまうようです.どうせ普段使いしないだろうし,自作である利点を活かしてなるべく安く作りたいものです.またレツプリのビルドログはたくさんあるので.差分をつけるという意味でも今回はなるべく安く作るをテーマにやっていこうと思います.
部品調達
基板
レツプリの部品の多くは海外からの取り寄せになります.とりわけ基板は海外から取り寄せるしかなく送料が高くなりがちです.いろいろ調査した結果自分で発注して基板を作り,3人で割り勘すると送料を含めても安く抑えられるっぽい2という結論に至りました.というわけで今回は安くて早いElecrowに発注し,基板を作ってみる事にしました.以下がその時の手順です.
- Let's Split v2をダウンロードします.
lets splitフォルダの中のガーバーデータを以下のようにリネームしzipで固めます.
元の名前 変更後の名前 lets_split-B.Cu.gbr lets_split.GBL lets_split-B.Mask.gbr lets_split.GBS lets_split-B.SilkS.gbr lets_split.GBO lets_split-Edge.Cuts.gbr lets_split.GML lets_split-F.Cu.gbr lets_split.GTL lets_split-F.Mask.gbr lets_split.GTS lets_split-F.SilkS.gbr lets_split.GTO lets_split.drl lets_split.TXT Elecrowにアクセスして以下のように設定し,先程のzipファイルをアップロードします.送料をケチったため配送方法はRegistered Airmailを使いましたが場合によっては一ヶ月かかったりするらしいので,DHLなど使った方が良いでしょう.またレジスト色は白にしました.Matte Black以外は値段が変わらないためお好みの色を選びましょう.
- カートに入れて後は流れに従い購入します.
あとは到着を待つだけです.自分の場合はだいたい二週間くらいできました.送料含め合計30.48$かかっていますが,3人で割り勘するため10.16$で済みました.「3人で割るには基板6枚必要なのに,発注した基板枚数5枚やんけ!」と思うかもしれませんが,このElecrowさんは5枚頼むと大抵6〜8枚くらい発送してくれます3ので,問題ありません.実際7枚届きました.
その他の部品
基板以外の部品は秋月電子,千石電商,Aliexpressなどで揃えました.Aliexpressでは安くて且つ送料無料のものから選びました.またTRRSジャックはDigKeyで買うと送料が2,000円近く取られてしまうらしいので,マルツで注文しました.残りの部品は秋葉で入手しました.まとめると下のようになります4.
部品 | 入手場所 | 価格 | 備考 |
---|---|---|---|
基板 | Elecrow | ¥1,148 | 3人で割り勘した価格 |
キーキャップ | Aliexpress | ¥1,941 | Kit 1 Add 2 keysを選択 |
スイッチ | Aliexpress | ¥2,196 | 茶軸,5pin,65pcsを選択 |
ダイオード | 秋月電子 | ¥100 | 1個 |
タクトスイッチ | 秋月電子 | ¥20 | 2個 |
TRRSケーブル | 千石電商 | ¥260 | 1個 |
TRRSジャック | マルツ | ¥440 | 2個 |
Pro Micro | aitendo | ¥1,512 | 2個 |
アクリル板 | はざいや | ¥2,160 | カーマイン,スカイブルーの2枚 |
スペーサ,ネジ | 西川電子部品 | ¥302 | 10mmM3スペーサ 10個 8mmM3ネジ 20個 |
合計 | ¥10,079 |
……なんだかあまり安くなりませんでした5ね. 安くならなかった敗因として,途中で「左右でケースの色変えたら面白くね?」とか考えてしまいアクリル板を二枚も買ってしまった事ですね.これがなければもっと安く済んだはずですが,妥協できない点というのは誰にもあるものです.またPro MicroもaitendoではなくAliexpressで探せばもっと安くなったはずです.頑張れば8,000円程度に収まるんじゃないでしょうか.
組み立て
調達した部品で組み立てて行きます.まず基板を右が次元,左がルパンとなるようにおいて,これを表(キースイッチがつく面)とします.そしてそれぞれ裏返します. 基板の裏面にダイオードをつけていきます.リードベンダーがあるとダイオードの足を綺麗に曲げれます.だいたい1.25mmピッチか1mmピッチで曲げると綺麗にささります. ダイオードはカソード(黒いラインが入っている側)を四角いランドの穴に通します. 左右の基板にダイオードを合計48個つけます.
TRRSジャックをつけます. TRRSジャックの下のパッドを以下のように短絡させます.この短絡する場所は左右で反転しないので注意してください.
VCC [x] [ ] VCC [x] [x] GND [ ] [x] GND
Pro Microのピンヘッダをはんだ付けします. ケースを用意します.ケースのデータはlets-split-guideのSandwichケースを選びました.アクリル板のカットには大学のレーザーカッターを利用させてもらいました6. たくさん穴が開いている方のケースを基板とキースイッチで挟み込むようにします.キースイッチを差し込む穴は結構狭いのでしっかり押し込む必要がありました. キースイッチをはんだ付けします.はんだ付けが終わったらスイッチを押したときに導通するかテスターで調べてみる事をおすすめします. Pro Microのモゲ対策をします.なんでもPro Micro君のUSBマイクロコネクタは脆いらしく,USBケーブルの抜き差しで簡単にモゲてしまうらしいです.そのためホットボンドかなにかで補強します. Pro Microの下に生えているキースイッチの足がPro Microと短絡し誤動作することがあるらしいので切ります.自分は念のためカプトンテープも貼って絶縁してみました. Pro Microをはんだ付けします.この時,ルパン側(右側になる基板)はPro Microが手前を向くようにつけます.また次元側(左手になる基板)はPro Microの裏が手前を向くようにはんだ付けします.またこの時RSTとGNDにタクトスイッチをつけました.Pro Microにファームウェアを書き込んだ時に使うものなので必須ではありません(何かで短絡させればOK).タクトスイッチがつけれたらピンヘッダを切り短くします. 下側のケースをつけます.なぜかわかりませんがケースの一番上部の穴が基板の穴と微妙にずれておりスペーサが入りませんでした.なので一番上の穴にはスペーサを入れませんでした. 最後にキーキャップを取り付ければハードウェアは完成です.
ファームウェアの書き込み
さてハードウェアは完成しました.あとはファームウェアを書き込めば完成です.ファームウェアはqmk_firmwareを使用します.自作キーボードは好きなようにキーレイアウトを決めることができますが,今回はデフォルトのキーレイアウトを使用しました.以下が手順です.(以下はMacでの手順です.WindowsユーザーなどはInstall Build Toolsを参照してみてください.)
- 左右のキーボードをTRRSケーブルでつなぎます.
- 左側のPro MicroとPCをUSBケーブルでつなぎます.
必要なものをインストールします.
$ brew tap osx-cross/avr $ brew update $ brew install avr-gcc $ brew install avrdude
以下のコマンドを実行します7.
$ git clone https://github.com/qmk/qmk_firmware.git $ cd qmk_firmware $ make lets_split/rev2:default $ make lets_split/rev2:default:avrdude
Detecting USB port, reset your controller now...
と出てきたら左側のPro Microのタクトスイッチを押して(もしくは短絡させて)リセットします.
以上でファームウェアの書き込みができました.上手くいけば以下のようなログが出て,キー入力ができるはずです.
$ make lets_split/rev2:default:avrdude QMK Firmware 0.6.2 WARNING: Some git sub-modules are out of date or modified, please consider runnning: make git-submodule You can ignore this warning if you are not compiling any ChibiOS keyboards, or if you have modified the ChibiOS libraries yourself. Making lets_split/rev2 with keymap default and target avrdude avr-gcc (GCC) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: text data bss dec hex filename 0 18578 0 18578 4892 ./.build/lets_split_rev2_default.hex Compiling: ./tmk_core/common/command.c [OK] Linking: .build/lets_split_rev2_default.elf [OK] Creating load file for flashing: .build/lets_split_rev2_default.hex [OK] Checking file size of lets_split_rev2_default.hex [OK] * File size is fine - 18578/28672 Copying lets_split_rev2_default.hex to qmk_firmware folder [OK] Detecting USB port, reset your controller now........................................................... Detected controller on USB port at /dev/tty.usbmodem1411 Connecting to programmer: . Found programmer: Id = "CATERIN"; type = S Software Version = 1.0; No Hardware Version given. Programmer supports auto addr increment. Programmer supports buffered memory access with buffersize=128 bytes. Programmer supports the following devices: Device code: 0x44 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9587 (probably m32u4) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "./.build/lets_split_rev2_default.hex" avrdude: input file ./.build/lets_split_rev2_default.hex auto detected as Intel Hex avrdude: writing flash (18578 bytes): Writing | ################################################## | 100% 1.95s avrdude: 18578 bytes of flash written avrdude: verifying flash memory against ./.build/lets_split_rev2_default.hex: avrdude: load data flash data from input file ./.build/lets_split_rev2_default.hex: avrdude: input file ./.build/lets_split_rev2_default.hex auto detected as Intel Hex avrdude: input file ./.build/lets_split_rev2_default.hex contains 18578 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.16s avrdude: verifying ... avrdude: 18578 bytes of flash verified avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF) avrdude done. Thank you.
おわりに
初めての自作キーボードでしたが,先人たちのおかげで特に失敗もなく作ることができました.今回なるべく安いものだけで作りましたが,打鍵感などはちゃんとしていて結構満足しています.見た目も結構おしゃれにできたんじゃないでしょうか.しかし使いやすさとしてはなれるまでは大変で,やはり練習が必要です.この記事も練習のためにレツプリで書いています.
今後はオレオレキーマップとか,オレオレ配列なんかも作ってみたいですね.