自由帳

@_nibral の技術ブログ

日本語配列でBluetoothマルチペアリングができるキーボード「Sunrise70」を作った

日本語配列で複数台のPCにBluetooth接続できるキーボードが欲しくなったが、既にある製品や自作キットだと矢印キーが横並びになってたり分割前提だったりしてどれも微妙に納得いかない感じだったのでイチから作った。スイッチは軽くて静かなのが気に入ったのでKailh BOX Silent Pink。

初めてのキーボードで70キーなので名前は「Sunrise70」。いつかend gameにたどり着いたらSunsetの名をつけたい。無刻印にしてMidnightとかも面白いかも。

特徴

  • 使い慣れた日本語配列Majestouch 交換用キーキャップセットを使えば刻印と入力が一致するので安心。
  • コントローラはスイッチサイエンスのISP1807搭載Microボードを採用。USB Type-Cと技適の通ったBLEが使えるマイコンの中では比較的安価で入手性が良い。ピン配置はPro Micro互換なので他のマイコンも一応使える。
  • PCとの接続はBLEのみ、複数台の同時ペアリングが可能で接続先はホットキーで切り替え。電源はUSBから取るので電池切れの心配なし。
  • スペースキーを2.25u x2にすることでスタビライザーの入手性を確保*1しつつ、好みに応じてShiftなどの割り当ても可能に。
  • 基板とケースのサイズ、ネジの位置はサリチル酸さんのGL516互換。
  • 光らない。

基板とスイッチプレート

KiCadで設計してJLCPCBに作ってもらった。ガーバーデータをアップロードして発注したところ長いキーのスイッチ穴とスタビライザー穴の間隔が狭すぎるという指摘が来たので、細い部分をなくして一つの大きな穴に変更した。基板の方は特に指摘事項もなく動作も一発OK。

こんな感じで直すところを指示してくれる。

ケース

サリチル酸さんの公開しているデータをそのまま3Dプリンタで出力。Ender-3だと大きさの問題で1回では出力できないので、2分割して出力してから接着した。微妙に地面から浮いてる部分があったりエッジが面取りされてたりして印刷中にベッドから浮きやすいので、出力するときはラフトかブリムをつけた方が良さそう。

ファームウェア

QMKが使ってるマイコンに対応していないのでArduino IDEで自作。BLEまわりの処理はAdafruitが公開しているライブラリを参考にしつつ、スイッチが押されたら定義済みのHIDキーコードを送るようにすればOKだった。400行ないくらいだけどブログに貼ると長いのでGistに。

Firmware for Sunrise70 keyboard · GitHub

材料費

  • 基板とスイッチプレート x5セット: $65.4(≒8,500円)
    • 基板: $16.5
    • スイッチプレート: $32.1 (穴が多くて追加料金)
    • 送料: $15.8 (Standard Global Direct Line)
    • PayPal手数料: $1
  • ISP1807搭載Microボード x1: 3,300円
  • Kailh BOX Slient Pink x70: 5,390円
  • キーソケット x70: 1,309円
  • Majestouch キーキャップセット x1セット: 2,691円
  • 2uスタビライザー x4: 880円
  • ダイオード(1N4148W) x80: 200円

これ以外にピンヘッダ・M2のネジ・ゴム足・長めのUSBケーブルなどを買っていることを考えると、1台作るのにおよそ16,000円かかったらしい。1/3はスイッチの値段なのでこんなもんかという感じ。

基板とスイッチプレートがあと4セット余ってるので、欲しい人がいたら原価でお譲りします。@_nibralまでDMください。

作ってみての感想

この記事はSunrise70で書きました。(これが書いてみたかった)

*1:日本語配列で一般的な4.5uのスタビライザーは手に入りにくい