原価厨がキーボードを自作した話
この記事は自作キーボード #3 Advent Calendar 2018の13日目の記事です。
100mm×100mm未満の基板を設計し, 組み立てた話です。
動機
MagicForce smart 49keyへの不満
上海問屋 DN-914809 英語49キー ポケットサイズメカニカルキーボード(中華青軸) |パソコン通販のドスパラ【公式】
ホームポジションから手を動かさなくていいという売り文句に惹かれてMagicForce smart 49keyを使っていましたが, キー配列を変更できず, Fn
+Shift
の同時押しが面倒であるなどの不満がありました。
280gのスイッチを試すため
こちら、TaiHao ALPSクローン緑軸(280gクリッキー軸)の打鍵動画です。 pic.twitter.com/uIpeNS7pv0
— ゆかり (@eucalyn_) 2018年9月30日
ゆかりさんの投稿を見た友人が280gスイッチに興味を持ったため, 試し打ちできるようにキーボードを作ることにしました。基板サイズが100mm×100mm以内のキーボードとしてはFoobarが有名ですが, ALPS軸に対応していないため自分で設計することになりました。
基板製造が安い
100mm×100mm以内であれば10枚まで$5で製造してもらえます。なんと1枚あたり$1未満です!! 安い!!
また, 当時はFusionPCBで$1で100mm×100mm以内の基板を3枚製造してもらえるキャンペーンをしていたため, ついでに一体型のキーボードの基板も発注しました。
設計
foostanさんの本を読んでください
PCB
本を読んでください。
PCB素材のプレート
PCBと同様にカットアウトやネジのフットプリントを配置します。FusionPCBとALLPCBを利用しましたが, Edge.Cutsに矩形の線を引いておけばそのとおりに穴を開けてくれました。ただし, 向こうでドリルファイルを作るからなのか他の基板より製造に時間がかかります。
アクリルプレート
Kicadから出力したdxfファイルは線が二重になっていたり曲線が(多数の)直線に分割されていたりして修正するのが面倒だったので, DraftSightで新たに線を引きました。
Tip: 四角形をグリッドの中央に配置する
19.05mm間隔のグリッドに14mmのカットアウトを配置する際, グリッドの中央に配置するために工夫が必要です。
(あとで書く)
Tip: 四角形の大きさ
スワップソケット対応のものにはぴったりとはまるトッププレートが必要なためサンプルを作って試したところ, 僕が使ったレーザー加工機では13.4mm角がキツキツでした。そのサイズでカットしたところ, 一部の穴にスイッチがはまらず, 力を掛けすぎてプレートを割ってしまいました。スワップソケットを使う場合はスイッチの爪が噛み合う厚さの素材で作ることをおすすめします。
発注・出費
業者名 | 内容 | 価格(送料を含む)[円] | 備考 |
---|---|---|---|
KBDfans | キーキャップ, キースイッチ | 5668 | |
Aliexpress | FatProMicro×1 | 490 | |
KPrepublic | キーキャップ, キースイッチ | 10417 | |
Aliexpress | ProMicro×6 | 2418 | 予備を含む |
秋月 | 電子部品 | 2355 | キーボード用でない物も含む |
ヒロスギ | ネジ, スペーサー | 2290 | |
Aliexpress | FatProMicro×6 | 2251 | 予備 |
FusionPCB | 基板 | 3097 | |
遊舎工房 | スワップソケット | 1134 | |
ALLPCB | トッププレート | 3014 | 5枚 |
ホームセンター | ゴム足, アクリル板 | 1054 | |
100均 | ケーブル, はんだ | 540 | |
創房 | アクリルカット | 177 | 9分 |
合計 | 34728 |
キーキャップ・キースイッチ込みで1台あたり1万円ちょっとで作れました。
組み立て
別の記事にします
完成
hogefuga w/ APC緑軸
4x4_hotswap
3台目(hogefuga w/ Matias Quiet Click)は組立中です。
反省
- hogefugaのボトムプレートの基板の片面にだけ銅箔を貼ったところ, 基板が反ってしまった
- TRRSジャックにPJ-320のフットプリントを使ったところ, 秋月で買ったMJ-4PP-9はプラスチック製のピンが大きく, 実装時に浮いてしまった
まとめ
アルミ製ケースを含めて$150のPlanckは安いとわかりました
使用したライブラリ
GitHub - foostan/kbd: Publish data for Keyboard
GitHub - keebio/Keebio-Parts.pretty: Various KiCAD footprints for mechanical keyboard parts
GitHub - tmk/keyboard_parts.pretty: KiCad modules for keyboard design
成果物
基板
GitHub - yswallow/hogefuga-kbd
QMKファームウェア
GitHub - yswallow/4x4_hotswap_firmware
GitHub - yswallow/hogefuga_firmware
この記事は 4x4_hotswap(kailh speed copper/eucalyn改配列)で書きました。
ProMicroのブートローダーをQMK-DFUにする
動機
4x4_hotswapには物理リセットボタンがないためキー操作でブートローダーに入れるようにしたいが, (ProMicroに初めから入っている)CaterinaブートローダーではRESET
キーを押しても反応しなかった(今は対応しているかもしれない。試していない。)
追記 2018/11/19
config.h
に#define CATERINA_BOOTLOADER
と書くことでCaterinaのままでRESET
キーに対応することがわかった。FatProMicroの死が無駄だったことがわかって完全に虚無。
方法
- 余っているProMicro(Caterina)にArduinoISPを書き込む
- QMK Firmwareを書き換え, makeする
- ISP化したProMicroにブートローダーを書き換えるProMicroを繋ぐ
- 書き込む
余っているProMicroにArduinoISPを書き込む
Arduino IDEから ファイル>スケッチ例>11.ArduinoISP>ArduinoISP を選択し, そのままProMicroに書き込む。ArduinoにあるピンがProMicroにはないと言われているが, 動くものは動く。既にQMK Firmwareを書き込んでいる場合はリセットする必要があるかもしれない。
QMK Firmwareを書き換え, makeする
config.h
に
#define QMK_ESC_OUTPUT F1 // usually COL #define QMK_ESC_INPUT D5 // usually ROW #define QMK_LED B0
を書き足す。
rules.mk
にBOOTLOADER = qmk-dfu
と書く。
make keyboard:keymap:production
を実行する。
ProMicroをつなぐ
ArduinoISPを書き込んだProMicroとブートローダーを書き換えるProMicroのVCC, GND, 14番, 15番, 16番 を繋ぐ。ISP側の10番は書き換える側のRESETに繋ぐ。
Pro Micro(クローン)を文鎮化から復活 - Qiita
書き込む
ArduinoISPを書き込んだProMicroのポートが/dev/ttyACM0
の場合,
avrdude -c avrisp -p m32u4 -P /dev/ttyACM0 -U flash:w:"keyboard_keymap_production.hex":a -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m -U lock:w:0x3F:m
を実行する。メモリ全域を書き換えるため, やや時間がかかる。
動作
リセットしたときにTX LEDが点滅するようになった。
ファームウェア書き込み時には make keyboard:keymap:avrdude
ではなくmake keyboard:keymap:dfu
とする必要がある。
分割キーボードで使うとRESET
キーを押したときに両手ともリセットされ, そのままコンピュータでファームウェアを書き込むとmicroUSBケーブルが挿さっているほうにだけファームウェアが書き込まれる。挿さっていないほうはTX LEDが点滅したままになる。
QMK_ESC_OUTPUT
やQMK_ESC_INPUT
が何なのかはわからない。
続き
本来の目的である4x4_hotswap用のFatProMicroに書き込もうとしたところ, 接触不良でFuse bitが全て0に書き換えられ, 何もできなくなった。買い直す必要がある。ブートローダーが壊れても同様にArduinoISPで直せるし, モゲMicroもArduinoISP経由でファームウェアを書き換えれば(分割キーボードの右手側であれば)使えるが, こうなってしまうと全くダメだ。(高電圧を掛ける装置を使えば直せると聞いたこともあるが, そんな装置は手元にない。) 接触不良には注意しよう!
なお, 文鎮化したFatProMicroは強いと言われるmicroUSB端子の耐久試験に使うつもりだ。
参考
Replace Pro Micro bootloader with QMK DFU : olkb
qmk_firmware/flashing.md at master · qmk/qmk_firmware · GitHub
現在進行中の自作キーボードプロジェクト
EndGameを求めるだけが自作キーボードじゃないなんて言ったら沼の人に怒られそう
hogefuga keyboard
設計理念
- 100mm×100mmに収めることで製造費を抑える
- フルキーキャップセットをROWを違えることなく使えるようにする
- 280gキースイッチを使うためにALPSマウント
- ProMicroを交換できることと薄さを両立するために隣に置く
できたもの
4x4x3
設計理念
- 基板を1枚あたり100mm×100mmに収め, 3枚繋げて使う
- モゲ対策のためFatProMicroを使う
- Kailhホットスワップソケット対応
できたもの
未公開
予定
- アクリルでボトムプレートを, アルミ基板でトッププレートを作る
KBDfansで買い物した
買ったもの
- XDAV2キーキャップ
- Kailh Speed Copperスイッチ
R2 XDA 40V2 dye sub keycaps setkbdfans.cn
KAILH SPEED SWITCHES (10 switches)kbdfans.cn
クーポンを使って合計49ドル。
配送
国慶節最終日の10月6日に注文して, 7日に発送, 18日に川崎港に到着して, 20日に配達。手渡しではなくポストに投函された。家で待ってなくてもよかったんやな……
ProMicroをArduinoISPとして用い, Attiny85を動かすときに参考にしたサイト
PinOut
これがないと始まらない
ATTinyCore/ATtiny_x5.md at master · SpenceKonde/ATTinyCore · GitHub
ProMicroをArduinoISPにする
標準のArduinoISPで指定されたピンはProMicroにはないので
8MHz駆動にする
1MHzだと音のざらつきが気になったので
結果
Attiny85でITF. pic.twitter.com/GEG7my57DD
— もうダメ (@y_sni) October 11, 2018
Rails入門で引っかかったところとその対策
bundle install
したときにAn error occurred while installing sqlite3
sudo apt install sqlite3 sudo apt install libsqlite3-dev
rails server
したときにThere was an error while trying to load the gem 'uglifier'
Gemfile
のgem 'mini_racer'
のコメントアウトを外してbundle install
一番安いキーボードの自作方法
材料
()内は実際に使用した個数
- キースイッチ(24個) 2000円 Massdrop
- ダイオード(24個) 100円 秋月
- 細ピンソケット(10) 80円 秋月
- 細ピンヘッダ() 秋月
- ProMicro 700円 aitendo
- 色紙(しきし)(1枚) 100円 Seria
- 銅線(2m) 257円 コーナン
色紙をトッププレートにして、キーボードを、作りたいと、思います。 pic.twitter.com/FE6YXvs4g8
— 穏やかな老後 (@y_sni) 2018年3月10日
工具
- はんだごて
- ラジオペンチ
方法
進捗です #自作キーボード pic.twitter.com/AhR7yNvMZE
— 穏やかな老後 (@y_sni) 2018年3月10日
全キー取り付けた pic.twitter.com/OclytnY83p
— 穏やかな老後 (@y_sni) 2018年3月10日
見よう見まねで空中配線してる #自作キーボード pic.twitter.com/tzjKcKTu7f
— 穏やかな老後 (@y_sni) 2018年3月11日
配線完成! #自作キーボード pic.twitter.com/QV3o0pG24w
— 穏やかな老後 (@y_sni) 2018年3月11日
結果
24キーでは使い物にならない。
テンキーとして使いましょう。はい。
教訓
空中配線では1点にはんだを積んで複数の線を繋いでいるところがあり, キースイッチが配線と密結合するから, キースイッチの交換が大変そう。
XD75reを買おう!!
この記事はMagicforce 49keyで書かれました