Otaku Split rev.1 ビルドガイド(部品実装編)
必要な道具
- はんだづけ道具一式(フラックス・吸い取り線など必須ではない消耗品含む)
- テスター
前提
メイン基板のスイッチが載る上を向く面・オタクスプリットと書かれているほうを表面と呼称します。
表面と逆に下を向く面・主に表面実装部品が取り付けられる面を裏面と呼称します。
promicroが取り付けられる位置が観測者から遠い位置にある向きを正向きとし、promicroを取り付ける側の長辺を奥側と呼称します。スイッチが並んでる長辺は逆に手前側と呼称します。
読み進めるにあたっての注意事項
promicroで有線利用をする場合の内容です。 現在写真は都合によりBLE micro pro実装の写真です。
表面・裏面というのは部品を取り付ける面をさしています。スルーホール部品の場合は表面に取り付けるとすると裏面からはんだ付けすることになります。表面実装部品は取り付ける側ではんだづけを行います。表面は主に高さがある部品を取り付けます。
裏面
- ダイオード(33+40)
- ソケット(33+40)
- (右手のみ)ジャンパ抵抗[R3]
promicroの並びにもダイオードを取り付ける場所が2箇所ずつあります。 これはBLE micro proのボタン電池の回路で使う部分なのでpromicroだけで使う人には取り付けても取り付けなくても動作は変わりません。 ダイオードは余分が同梱されており、かつpromicro理由では何があっても問題がない場所なのでここで練習してもいいかもしれません。
裏面の実装の写真
右手のみの部品
ジャンパ抵抗の写真
表面
- リセットスイッチ
- promicro(ZigZag)
- TRRSジャック
- 1608抵抗
スライドスイッチ(側面フットプリント[SW35]および[SW42])
1608抵抗(旧スライドスイッチ)
スライドスイッチのフットプリントのうち、中央とその手前一つに対して1608抵抗をはんだ付けしてください。ダイオード同様に片方を予備はんだすれば難しくありません。
スライドスイッチの流れで表面の項目に入っていますが、裏面につけても動作に違いはありません。
1608抵抗はダイオードと異なり向きはありません。
スライドスイッチは左右とも手前のまま使います。切り替えるとUSBを刺した側によらず右手が左手の入力内容、左手が右手の入力内容になります。
スライドスイッチを取り付けない場合、promicroのきれはしでスライドスイッチのフットプリントの真ん中3つのうち、手前側2本を繋ぐと同様の動作をします。
表面の実装の写真
BLE micro proを使う場合
まず左右の内側に取り付けるはずだったスライドスイッチを 取り付けないでください。 代わりに、上部取り付け位置に取り付けてください。
BLE micro pro 自体は取り付けるだけで使えますが、電源としてボタン電池を使う場合は以下の部品を調達・取り付けてください。
I2Cを通信に使いたい場合
左右いずれかにプルアップ抵抗を追加してください。
- 抵抗(1608) x2
SMD部品実装の小技
promicroの取り付けに関して
読んでみてよくわからなかったらすべてはんだ付けしてください。そして各ピンヘッダを少しの長さだけ残してニッパで切り落としてください。少しの長さを残すというのは、promicroに何らかの不具合が生じた際に役に立ちます。すこしピンが残っていると部品を取り外す際にはんだこてを当てやすくなり、はんだが除去しやすくなります。
ZigZag
Otaku Split rev.1ではpromicroのフットプリントにkeebioのZigZagを採用しています。これはソケットを使わずに挿抜可能な状態なまま接点を確保できるフットプリントです。このフットプリントはもともと「ピンヘッダを確実に直角にはんだづけする」ことを目的として設計されたフットプリントの副産物のようです。
一発でうまくいく場合と、何本かのピンが一部ピンが実際には接していないことがあります。その場合でも不良ピンだけをはんだ付けすれば動作するので交換が容易になります。
左手promicro向き写真(右手はUSB向きのみ180度変更、部品面下のまま)
動作確認
ネジ止めやスイッチ取り付けをする前に、動作確認をします。
microUSBケーブルでPCに接続し、スイッチソケットの左右金属部分をピンセットなどで繋ぐと電気が流れるので何かしらが入力されます。全キー入力されることを確認してください。
入力確認の方法の一つはSwitchHitterなどのソフトウェアを使うことです。メモ帳などで確認しにくいEnter/Esc/BackSpaceや修飾キーなども押した/離したことが記録されます。
日本語キーボード特有のキーはソフトウェア上では反応がないことがあります。半角全角、無変換、変換、カタカナひらがな、YEN(BackSpaceの左)、アンダーバー(RO)の6キーが日本語独自キーです。これらはメモ帳など文字入力可能な場所で適当な入力と組み合わせることで動作がわかると思います。
また、このキーボードは論理配列がキーキャップ表記通りとは限らないので、「変なところのキーが押されるな/入力が確認できないな」と思ったらファームウェア上のキーマップがどうなっているかを確認してください。
押しても入力されないキーがあった場合
まず入力できないキーになんらかの法則性がないか確認してください。例えば1行/1列単位か、ばらばらであるかです。法則性を見つけることで、原因と確認項目を絞り込むことができます。
目視やテスターで動作不良を確認していきます。
1行/1列単位で丸ごと入力がされない場合はpromicroの該当ピンに接点不良がある可能性が高いです。はんだづけをしてください。
特に法則性がない場合は、ダイオードもしくはソケットにはんだづけ不良もしくははんだづけのし忘れがある可能性があります。
Otaku Split rev.1 ビルドガイド(部品実装後)
この記事の内容は一通りのはんだづけが必要な部品を実装した後の話です。
プレート割
左右とも、トッププレートがスイッチ差し込む部分とカバー部分で分割するようになっています。溝に沿って割れますので、えいっって力を入れて折ってください。
スイッチの取り付け
トッププレートの向きを、メイン基板と重ねて確認してください。すべてのスイッチ穴からメイン基板のソケット・スイッチ穴が見えたらその向きです。トッププレートが被ったら向きが間違っています。
正しい向きで差し込めるように、まずトッププレートの四隅にスイッチを取り付けてください。 そして、メイン基板のソケットにスイッチの足を差し込んでください。
ひたすら全スイッチをはめていってください。たまに足が曲がっています。押し込んだときの「感じ」を感じてください。
動作確認
PCにmicroUSBケーブルで接続して、一通りの入力ができることを確認してください。入力できない場合、ソケットに刺さっていない(足が曲がっている)、ソケットがはがれている、ダイオードの向きを間違えてる、どこかはんだ付けするのを忘れているなどの問題があります。ラジオペンチがあると便利です。
トッププレートへのスペーサー・ねじの取り付け
2.2mm穴と5mm穴が開いています。5mm穴がスペーサー用の穴です。5mm穴からトッププレートの2.2mm穴が見える穴を使います。5mm穴からスペーサーをいれ、逆側からネジを入れて締めます。
四隅だけとめてあればよいです。中央は好みで留めてください。
底板の取り付け
スペーサーの逆側に底板をネジで固定します
カバーの取り付け
12mmスペーサーを使って底板にカバーを固定します。
このとき、ネジ穴に少し余裕があるので底板がスイッチから板を遠ざかるように板にすこし力を加えながらネジを締め付けてください。スイッチに近づけてしまうと、キーキャップとカバーが擦れててしまうことがあります。
キーキャップの取り付け
思うとおりに取り付けてください。 JP108配列に対して、6YBとスペースキー部分3個ずつが不足しています。これらは、カーソルキーやテンキーのあたりからもってきてください。
Majestouch/Archissのキーキャップ(Majestouchハイプロ除く)は行ごとに形状が4種類あります。一番下をR1(行1)としたばあい、R1,R1,R2,R3,R4,R4と並んでいます。つまりCtrlとZとテンキーの1は同じ形状で、数字とファンクションキーとHomeは同じ形状です。
コミックマーケット96に出展します(月南ラ38a)
天高工房はコミックマーケット96に出展します。 配置情報は 8月12日月曜日 南地区ラ-38aです。南3ホールです。どうやら新しくできた 西館の奥の建物の4階 のようです。遠い...
キーボード島はラの20番台なので隣の隣の島です。Vimとかニキシー管とかそんな感じの島です。
販売情報
オタクスプリット
日本語配列ベースの分割キーボードです。Barocco難民さん如何でしょうか。
物理配列と論理配列にどんなものが組み込めるのかはQMK configurator : otaku_split/rev1をぽちぽちして確認してください。
キット(MXソケット, promicro別売り) : 13,000円
部品実装済み : 20,000円
ともに追加で以下を別途購入ください。
- MXスイッチ 73個
- 日本語キーキャップセット
- microUSBケーブル(通信可能なもの)
- オーディオミニプラグケーブル(3極もしくは4極)
在庫が思ったよりなかったので、基板発注に失敗したら実装済みが5枚とかそんな感じの販売数になりそうです。
すいはんきー
ゲーミング左手キーボードです。設計者はレンタルボックス共同運営(?)の@kakunpc 氏です。qmk名は suihankey
。
キット : 7,000円
別途購入が必要なものは以下です。
- MXスイッチ 18個
- 1uキーキャップ 18個
- MX用スイッチソケット 18個
- promicro, コンスルー 1式
- OLED(SSD1306)
- microUSBケーブル(通信可能なもの)
特徴
主にファーストパーソン・シューティングゲームやMMORPGなどのオンラインゲームで使うことを想定して作った左手用キーボードです。 QMKConfiguratorで自由にキーマップを割り当てられるので、FPSの移動用のキーマップやMMORPGのスキルショートカットとしても使えます。 リバーシブルなので2つ購入して右手分も用意すれば36キーのコンパクトキーボードにもなります。 また、ゲーマーが大好きなLEDで光らせるのにも対応しています。
Angel64
タブレット向けキーボード by kakunpc。
キット : 10000円
タブレットで使うことを想定して作ったコンパクトキーボードです。 コンパクトでありながら64キー備えてあり、またBLEMicroProというBluetoothLowEnergyに対応したProMicroを使用することで、無線化にも対応できます。 急なミーティングや出張など、iPadProやAndroidタブレットと一緒に持ち運んで利用するのを想定して設計しました。 一部部品の購入が別途必要なキットとなります。 ProMicro or BLEMicroPro x 1 コンスルー x 2本 Chocキーソケット x 64個 Kailh chocスイッチ x 64個 Kailh chocスイッチ用キーキャップ 1U x 54個 Kailh chocスイッチ用キーキャップ 1.5U x 8個 Kailh chocスイッチ用キーキャップ 2U x 2個 microUSBケーブル
キーボードにちょっとだけ詳しくなれる本(既刊・技術書典6)
技術書典で書いた本です。部品実装した後のデバッグの話と、現状こんな感じでキーボードが流行ってるよ、みたいな話を書いてます。
1,000円
一人月Tシャツ
まだ何人月か余ってるので買ってください。若干数持っていきます。
2,500円
その他リンク
基板のシルク
シルク
「(基板の)シルク」とはシルクスクリーン印刷で基板上に印刷された何らかの図形のことを指します。
主に、部品番号の表示や、部品の取り付け向きを指示するために印刷されます。
他にも基板名などの情報を盛り込んだりします。
キーボードにおけるシルク
主にダイオードとpromicroの取り付け向きくらいでしか意識しないのではないでしょうか。
ダイオードの向き表記は様々なものがありますが基本的には部品のカソード(-)側に記されている線を示す表記になっています。具体的には「本」や「コ」です。以下のURLの画像など参考にしてください。
キーボードではSOC123という規格サイズのダイオードがよく使われます。KiCADのこのサイズのフットプリントでは「本」ではなく「コ」のみが使われているため、初期には「向きがわからない」という人が多数出ました。
部品番号
最近では、どんな図案で依頼しても大体綺麗に印刷してくれることからデザイン性を重視した基板が作られています。付加価値的にもよい話なのですが、一つ問題があります。どういう理由かはわかりませんが、部品番号を省略しがちなことです。
部品番号を省略することで発生する問題は二つです。部品表と実装箇所の関連付けが写真を使わないとできないということと、部品実装時に回路図との突合せができないことです。promicroを使ったキーボードであれば、実装する部品の種類が非常に少なく一目でどこに実装すべきかがわかります。一方で、例えば複数の容量の抵抗やコンデンサが混在した場合は、実装間違いの原因となります。
はんだづけ不良や部品の不良で動作不良が見られるとき、部品番号が省略されていると回路を追えません。例えば、スイッチのパッドを剥がしてしまったとしましょう。同じ行と同じ列のキーからそれぞれ行の共通部分と列の共通部分を引っ張り出して繋ぐのですが、必ずしも見た目の行列と回路上の行列一致するとは限りません。また、LED(WS2812/SK6812)の接続確認でも困るでしょう。
すべて家庭PCBAするならともかく、他者に部品を実装させるなら部品番号は必ず表記するようにしましょう。
BLE micro proで分割キーボードを定義する
この記事は古いバージョンの内容の記事です。
今回はotaku_split_BLE/rev1を定義します。
動作確認のためには、最低限BLE micro pro2台とPC、BLEで接続可能なホストデバイス、そしてmicroUSBケーブルを2本用意しておくとよいでしょう。
- ひな形をコピー
- rules.mk
- .c.hのrename
- rev1.c内の読み込みファイルの変更
- rev1.hの移植
- config.hの書き換え
- master/config.hの書き換え
- slave/config.hの書き換え
- keymap の書き換え
- ビルド、書き込み
- 動作確認
- 最後に
- 〆
ひな形をコピー
ひな形なんて存在しないので、まずキーボードフォルダを作ります。今回はotaku_split_BLE/rev1
にします。
作成したフォルダの下にkeyboards/ergo42_BLE
以下をまるっとコピーします。
rules.mk
DEFAULT_FOLDERを現在のキーボードフォルダ名に変更してください。
今回はDEFAULT_FOLDER = otaku_split_BLE/rev1
です。
.c.hのrename
ergo42_BLE.h ergo42_BLE.cをフォルダ名にリネームします。QMKでは今いるフォルダ名なので、今回は rev1.c rev1.hになります。
rev1.c内の読み込みファイルの変更
rev1.c内のinclude文を変更します。
#include "rev1.h"
rev1.hの移植
qmk/qmk_firmwareで利用しているrev1.hをコピーします。
config.hの書き換え
必要な部分を書き換えます。最低限の変更項目は以下の通りです。
#define MANUFACTURER #define PRODUCT #define DESCRIPTION #define MATRIX_ROWS #define MATRIX_COLS
master/config.hの書き換え
マスターデバイスで使う定義です。 ピン定義とどちらの手かを定義します。
具体的には以下です。
#define THIS_DEVICE_ROWS #define THIS_DEVICE_COLS #define MATRIX_ROW_PINS #define MATRIX_COL_PINS
ピン番号は PINX(X=正の数)
です。追加の2ピンには0と25が割り振ってあるため、1から24の数字で割り振れるのでそんなにつらくないです。
stonehenge30_BLE/rev1内にあるpin_assign.h
をコピーして(いらない部分を削除して)includeすると、promicroと同じピン名で定義できるはず...だったんですけどどうも私の環境ではうまくいきませんでした。
また、msys2上のvimでは Shift+insertで貼り付けができます。
slave/config.hの書き換え
スレーブデバイスで使う定義です。 master/config.hと同様です。もし左右で異なるピンを割り振っていた場合はMATRIX_ROW_PINS_RIGHTなどの値に適宜置き換えてください。
keymap の書き換え
LAYOUTマクロは移植済みなので、キーマップのコア自体はそのままの移植で大丈夫です。
そのあとに、BLEのデバイス検索・接続などの機能の入り切りのためのカスタムキーコードを定義して適当なキーに割り当てる必要があります。ergo42_BLEからカスタムキーコードと関数呼び出し周りを上手に移植してください。
一通りすべての機能が「マスターデバイス上で」使えるようにしておいてください。大体どれも使うことになります。また、スレーブにもまたがっていると、スレーブがうまくつながらなくなったときに死にます。
ビルド、書き込み
マスターとスレーブで書き込みコマンド・書き込みファームウェアが異なります。
"マスター用 make otaku_split_BLE/rev1/master:default:nrfutil "スレーブ用 make otaku_split_BLE/rev1/slave:default:nrfutil
それぞれビルドが終わったら書き込むデバイスの検索をはじめますので、検索が始まったら該当するBLE micro proのにリセットを掛けながらUSBケーブルで接続してください。ピン名としてはRSTではなくBOOTだったかもしれません。書き込みが完了したら抜いてもらって構いません。
動作確認
まず、マスターにUSBケーブルを差し込んで USB_EN
を実行してください。これはマスターとホストデバイスをUSB接続可能にするキーコードです。事前にテスターなどでデバッグをしているとは思いますが、一通りのキーが入力できることを確認してください。
次に、AD_WO_L
を押して検出可能モードにしてください。タイムアウト時間がいくらかは知りませんが、しばらく適当なデバイスで接続可能なデバイス一覧に表示されるようになります。
適当なデバイスで接続をして、BLE経由で入力ができることを確認してください。
忘れてましたが、スレーブデバイスにもUSBケーブルを接続して電源を供給し動作確認をしてください。
最後に、電池で動作確認してみてください。
最後に
うまく定義できたらせきごんさんのリポジトリにプルリクエストを投げてついったーで宣伝しましょう。
私はあとでなげます。
〆
書き換えなければいけない場所が分かっていれば特につらくないと思います。
思ったより書いてきそうなので積極的に使っていきたいなーと考えています。
エンドユーザー向けには厳しいので、QMK configuratorをうまいこと使ってキーマップ書き換えを楽にする話をかかないとなーと思っています。
Otaku Split rev.1 ビルドガイド
Otaku Split 概要
オタクスプリットは「とにかくキーボードをたたき割りたい」人の逃げ場をなくすために設計されたキーボードです。 移行コストを可能な限り下げる工夫を盛り込んであります。「慣れるのが大変そうだから...」なんて言わせません。 「はんだづけはちょっと...」な人のために実装済みも用意しました。スイッチはめてキーキャップ被せるだけ*1で使い始めることができます。
- 普段使っているキーボードとほとんど変わらないスイッチ配置
- 分割時に戸惑いがちな運指分担が重複する6,Y,Bの3キーを両手に配置
一方で、ただ分割しただけではなく、よりモダンな体験が得られる工夫も盛り込まれています。
- スペースキーを細切れにして左右3キーずつ確保したのでモダンな「親指活用」の打鍵体験が得られる
左手33キー右手40キー、合計73キーとなっています。 日本語物理配列を基として、市販の日本語交換用キーキャップのみで足りるように設計をしました。
スイッチはMXスイッチ専用で、スイッチ向きはKailh準拠のいわゆるNorthFaceです。
本記事では利用をはじめるまでの方法を、いくつかの記事に分割して紹介します。
ファームウェア書き込み
組み上げたあとに問題らしい問題が見つからないのに動作しない...と困る場合があります。問題の切り分けを容易にするために、組み立て前にpromicroにデフォルトファームウェアの書き込みを推奨しています。
PCに全く認識されないという場合は大抵はケーブルの不良が原因です。まれにpromicro自体の不良が原因のこともあります。
QMK toolboxをダウンロードする
最新版は0.0.11です(2019/08/02現在)。変更が追えていないので随時修正します。
とりあえずWindowsではウィルス検出がされることになっていますが、これはBootloadHIDをウィルスとして誤検出しているものです。偽陽性というやつです。実際にはウィルスはいないので実行してください。
QMK WEBページからhexをダウンロードする
Keyboard from qmk.fm
がうまく動作しないので、同等であるhttps://qmk.fm/keyboards/
からダウンロードしたhexファイルを使います。otaku_split/rev1
です。
QMK toolboxで書き込む
- Local fileにhexを読み込ませる
- autoflashにチェックを入れる
- promicroにUSBを差し込む
- リセットボタンを押してリセットをかけてちょっと待つ
うまくいかない場合はまずケーブルが通信可能か確認してください。次にQMK configurator自体を再起動してください。リセットを2回連続で押すのも試してみましょう。それでもダメなら念のためArduinoIDEで書き込みをしてみてください(リセット不要)。ArduinoIDEでは書き込めるけどQMK toolboxではうまく書き込めないことはよくあります。
万が一通信可能なケーブルで、通信できないのにpromicroが発熱していたら急いでUSBケーブルを引き抜いてください。不良promicroです。
QMK toolboxの使い方に関して以前書いた記事
はんだづけが必要な部品の実装
はんだづけ後の組み立て
次のステップ
組み立て・動確お疲れさまでした。とりあえず写真を撮影して、#自作キーボード とか #オタクスプリット とタグをつけてSNSに投稿してみてはいかがでしょうか。
色々な意見はありますが、私はキーボードキットのことをPCのベアボーンキットと同程度のものだと思っています。 このキットは適当なMXスイッチとMX用キーキャップ、そしてデフォルトキーマップのファームウェアがあればとりあえずは使えます。しかしそれはキーボードとして最低限の動作はするよ!というだけの、あくまでも最低限のものです。
キーボードキットに手を出してしまうような人間であれば、使っているうちに大小の不満が発生するでしょう。あのキーよく使うんだけど使いやすい場所にないな、とか。このスイッチ重い/軽いとか。このスイッチとキーキャップの組み合わせの音が不満だとか。めんどくさがらずに、不満とその理由を書き出してコストと突き合わせて対策をしていきましょう。「こんなことやってみたよ!」とどこかにまとめて公開すると「そうか!こんなことができるのか!こんなことをしてもよいのか!」と参考に改造するフォロワーがきっと現れるでしょう。きっと想像もできないような魔改造が含まれているに違いありません。楽しみですね!
任意キーマップのファームウェアの作り方
QMK configuratorを使うことを推奨しています。
上記URLを開くと、デフォルトキーマップが読み込まれます。キーマップ一覧からドラッグアンドドロップをするか、キーを選択肢てキーボードの任意キーを入力することで任意位置のキーコードを置き換えることができます。
QMK独自機能も含めた主なキーコードの説明は以下をご覧ください。
また、QMK上では各キーコードはANSIでの内容になります。日本語配列とは表示が異なりますが、同じ位置にあるキーは大体同じキーコードを発行することを覚えておくと何とかなると思います。
編集が終わったらCOMPILEを押してください。芋が焼き終わったらFIRMWAREを押してhexファイルをダウンロードしてください。
もしキーマップを編集していた場合は3. Keymap.jsonからダウンロードできます。次回は右側の上矢印からアップロードすることで、編集した内容を読み込めます。
書込みはQMK toolboxで行ってください。
デフォルトキーマップ
現在初期値がすべてKC_NOになっているので、基本的なキーコードを打ち込むのがめんどくさいという人は以下のjsonファイルをkeymap.jsonとして読み込ませてください。ひな形として使うことができます。一度ダウンロードしてから読み込ませてもいいですが、雲に上矢印のアイコンボタンを押して、gistのrawのURLを入力するとダウンロードせずに読み込ませることができます。
デフォルトキーマップが追加されました。上記jsonとはちょっと違います。
オタクスプリットrev1のQMK configurator向けサンプルキーマップです。keymap. ...
CapsLockの位置にEscを突っ込んであることと、そこら中にLT()が突っ込んであること以外は定番で入れてあります。
出来たkeymapは、保存機能はないのでkeymap.jsonの左側、ダウンロードボタンでjsonファイルをダウンロードしてください。読み込ませることでまた編集することができます。
keymap.jsonボタンの右側にある印刷ボタンから、一覧表示ができます。スクリーンショットを撮影したのち、可能であればkeymap.jsonを添えて #オタクスプリット ハッシュタグを付けて投稿していただけますと幸いです。slackでもお待ちしております。
より複雑な設定
より複雑な設定や拡張をしたい人は、qmk/qmk_firmware
をgit clone
してsh ./util/qmk_install.sh
してmake otaku_split/rev1:default
をしましょう。そのうえでQMKのドキュメントを読んで、独自キーマップを編集してください。
その他の記事の紹介
ビルドログ(組み立て記録)やビルドガイド(組み立て説明)記事の紹介です。通常利用者はビルドログを、製作者はビルドガイドを書くものですが、まさかの利用者の方にビルドガイドを書いていただきました。この記事も充実させていきます...
ビルドガイド
めっちゃ詳細なものを@k69 氏に書いていただきました。各箇所を写真で詳しく説明していただいています。
ビルドログ
pcbnewのpythonコンソール
自分用メモ
パス
KiCADのインストールフォルダ。WindowsだったらC:\Program Files\KiCAD
とかそんな感じの場所
shell.run(COMMAND)
でcd
など実行可能なので、起動後にプロジェクトフォルダに移動するといい感じ
cdとlsはそのままつかえた。
定型
とりあえずimport pcbnew
はしとくとよさげ。
pcb=pcbnew.GetBoard()
もしておくとよいかも。