小型30%キーボード「TATA30」~ビルドガイド&仕様~

"TATA30"はQMKのTapDance機能により「タタッ」とキーを入力することから名付けられた小さくコンパクトなオーソリニア配列の30%キーボードです。また中央にOLEDとロータリーエンコーダを配置し、キー入力だけでない機能を備えています。
本記事はビルドガイドとして、TATA30の組み立て手順と仕様について記載しています。TATA30の仕様だけ知りたいという方は、3.仕様をご参照ください。

更新履歴

2023/9/26 初版公開
2023/10/22 1.ご用意いただくものにケースのダウンロードリンクを追記
2023/11/12 ファンクションキーについて追記
2024/2/12 Vialに対応したファームウェアについて追記

0.組み立ての前に

  • はんだごてを使用して制作します。はんだごての小手先は高温になり、やけどや火事の原因になりかねませんので取り扱いにはくれぐれもご注意ください。
  • 作成の前に、当ビルドガイドに一通り目を通していただき、必要な物が充足しているかや作業順序についてお確かめください。
  • 作成には数時間程度かかりますので時間に余裕をもってお取り掛かりください。

1.ご用意いただくもの

ご用意いただく必要があるものは、①BOOTHで頒布しているキット、②別途ご用意いただく部品、③はんだごてなどの組み立て工具です。それぞれBOOTHの販売ページに記載しておりますのでご確認ください。

cerbekoskeyboard.booth.pm

またBOOTHにも記載しておりますが、別途3Dプリントケースを作成(調達)する必要があります。ケースの3Dモデルは、こちらから無料でダウンロードできます。

cerbekoskeyboard.booth.pm

写真のものは、JLCPCBで以下のとおり調達しました。

  • キーボードトップケース:Imagine Black
  • キーボードボトムケース:Imagine Black

3d.jlcpcb.com

2.組み立て

以下の手順で組み立てることを推奨いたします。順序を間違えるとリカバリーが難しい場合がありますので、組み立て前に一通り手順をご確認ください。

ファームウェアの書き込み

*****

Vialに対応したファームウェアを公開しました。リンク先よりファームウェアをダウンロードして書き込みしてください。書き込みは、はじめてXIAO RP2040へ書き込む場合はBOOTボタンを押しながらUSBを接続、以前にファームウェアを書き込み済みであれば、Qキーを押しながらUSB接続すると、XIAO RP2040のドライブが表示されます。ここへダウンロードしたuf2ファイルをコピー(ドラッグ&ドロップ)します。すると自動的にリブートされ、ファームウェアが書き込まれます。

github.com

Vialでは、簡単に自分の好きなようにタップダンスやコンボを設定することができ、とてもお勧めです。

get.vial.today

*****
Remapよりファームウェア(uf2ファイル)をダウンロードします。

remap-keys.app

Remapは、Web ブラウザーからQMKファームウェアを操作し、キーボードのキーマップを変更したり、LEDを設定したりできるウェブサイトです。キーボードカタログという機能からファームウェアをダウンロードできる仕組みとなっています。

XIAO RP2040の”BOOT”ボタンを押しながらUSBを接続すると、XIAO RP2040のドライブが表示されます。ここへダウンロードしたuf2ファイルをコピー(ドラッグ&ドロップ)します。すると自動的にリブートされ、ファームウェアが書き込まれます。

ファームウェアの書き込みは以上で終了です。

②LEDの取り付け

TATA30では、写真の位置にLEDを取り付けることができます。f:id:Cerbekos00:20230924143048j:image

LEDには取り付ける向きがあり、”SK6812MINI-E”は”GND"にナナメの切り込みが入っています。

f:id:Cerbekos00:20211217225401p:plain

このナナメがどこに位置しているかによって正しい向きかどうかを判断します。またLEDの接続の仕組みとしてシリアル接続となっています。”4 DIN”(データイン)からLEDの信号を受け取り、"2 DOUT"(データアウト)へ信号を渡しています。

以下、別の基板の写真となっていますが、TATA30でも同じとなります。LEDの正しい向きは次の写真のとおりです。

LEDの端子4か所をはんだ付けします。LEDは高温に弱いため、260度程度で、1か所ずつはんだ付けしては時間を空ける(その間に他のLEDをはんだ付けする)というのを繰り返すようにします。

溶接・溶着を円滑にしてくれるプリント基板用フラックスなどを使用するとはんだが乗りやすいためお勧めです。

ダイオードの取り付け

正しいダイオードの向きは下のとおりとなります。

ダイオードは小さく、ピンセットでつまみながら取り付けることになります。取り付け操作しやすいよう片側に予備はんだを行います。

ダイオードの向きに注意してピンセットでつまみながら、予備はんだをはんだごてで温め、スライドするようにダイオードをはんだづけします。

反対側をはんだ付けしてダイオードの取り付け完了です。

この要領で、頑張ってすべてのダイオードをはんだ付けします。

④XIAO RP2040の取り付け

XIAO RP2040のはんだ付けを行います。PCBを裏面にし、XIAO RP2040を画像の向きで載せます。向きを間違えないように注意してください。

f:id:Cerbekos00:20230924141547j:image

中央へ調整したら、位置がずれないようにPCBの表面からマスキングテープを貼ります。
f:id:Cerbekos00:20230924141655j:image

PCBの裏面に戻り、横から表面実装のはんだ付けを行います。
f:id:Cerbekos00:20230924141734j:image
こちらは別のキーボードのPCBですが、はんだ付けの仕上がりのイメージはこのような感じです。
f:id:Cerbekos00:20230924141617j:image

左右全箇所はんだ付けが終われば、この工程は完了です。

ホットスワップソケットの取り付け

ホットスワップソケットの正しい向きは白い線が隠れるような向きです。

こちらも予備はんだをしておく方がはんだ付けしやすいと思います。

ホットスワップソケットを正しい向きで乗せ、ピンセットで押さえながら、予備はんだを温めます。ソケットがストンと穴にはまるまで行います。

反対側もはんだ付けして完了です。

ソケットははんだのつけ忘れが割と多いので、つけ忘れがないかを全体的に確認しましょう。

⑥OLEDモジュールの取り付け

TATA30ではOLEDモジュールに付帯しているピンソケット、ピンヘッダのうち、ピンヘッダだけを使用します。ピンソケットは使用しません。

f:id:Cerbekos00:20230924151510j:image

ピンヘッダをPCBの表面から差し込みます。差し込んだ後、垂直にズレがないことを確認しながらマスキングテープで固定します。

f:id:Cerbekos00:20230924150936j:image

PCB裏面からピンヘッダをはんだ付けします。f:id:Cerbekos00:20230924151548j:image

PCBの表面に戻り、OLEDモジュールをはんだ付けします。OLEDディスプレイがPCBと平行になるようマスキングテープなどを使って調整しながら高さを調整し、はんだ付けをしてください。

f:id:Cerbekos00:20230924151818j:image

これでOLEDの取り付けは終了です。

⑦エンコーダの取り付け

エンコーダをPCBの表面からしっかり差し込みます。差し込んだ後、PCBから浮いていないかを確認します。

f:id:Cerbekos00:20230924152135j:image

PCB裏面からはんだ付けします。

以上で、エンコーダの取り付けは終了です。

⑧動作確認

USBケーブルを差し込み、動作を確認します。

<OLEDの確認>

OLEDディスプレイへロゴなどが表示されているかを確認します。
もしOLEDが点灯しない場合、下記について順に確認してみてください。

  • はんだの量が足りていない、または多すぎて隣と接合している → はんだごてやはんだ吸い取り線を使いはんだの量を調整してください。

<LEDの確認>

LEDはインジケータとなっているため、通常時は点灯しません。このためLEDの点灯確認は、CAPSLOCK状態とするか、レイヤー切り替えをする必要があります。
もしLEDが点灯しない場合、下記について順に確認してみてください。

  • はんだの量が足りていない、または多すぎて隣と接合している → はんだごてやはんだ吸い取り線を使いはんだの量を調整してください。
  • LEDの取り付け向きが誤っている。 → はんだ吸い取り線を使い、慎重にはんだを除去してから向きを正しく取り付け直し、はんだ付けしてください

<キースイッチの確認>

現状はキースイッチを取り付けていないため、ピンセットでホットスワップソケットの両端を導通させて文字が表示されるかを確認します。
反応しない場合、下記について順に確認してみてください。

<エンコーダの確認>

エンコーダはプッシュ、左右の回転に対応しています。デフォルトキーマップでは以下の動作となります。

  • プッシュ:CAPS_WORD状態とする
  • 時計回りの回転:変換
  • 反時計回りの回転:無変換
⑨ケースの取り付け

ケース中央にアクリル板を取り付けます。寸法がギリギリのため入りにくい場合は紙やすりなどでアクリル板を少しだけ削ってみてください。

f:id:Cerbekos00:20230924160010j:image

PCBの上からトップケースを被せます。f:id:Cerbekos00:20230924155927j:image

キースイッチを取り付けます。

f:id:Cerbekos00:20230924160044j:image

ボトムケースを配置し、基板を取り付けたトップケースを上から取り付けます。ポロンシートを敷く場合は淵に乗るような形にして取り付けます。ちなみにポロンシートの圧厚みは1.5㎜程度がオススメです。

f:id:Cerbekos00:20230924160319j:image

キーキャップを取り付けて完成です。

f:id:Cerbekos00:20230924160112j:image

お好みで背面にゴム足を取り付けてください。

3.仕様

①デフォルトキーマップ

デフォルトキーマップは次の写真とおりです。REMAPから変更いただくことが可能です。「Any」はカスタムキーコードになっており、タップダンス(後述)が登録されています。

②TapDance

タップダンスは、一定時間内のタップ(キー押下)数により出力するキーコードを変える機能です。物理的な1つのキーに対し複数のキーを割り当てることができます。
TATA30では、以下のタップダンスを登録しています。カッコ内はカスタムキーコードです。REMAPではキーマップを自由に変えることができますが、タップダンスに戻す場合はカスタムキーコードを設定する必要があります。

キーコード 1回タップ 1回長押し 2回タップ 2回長押し 2回タップして別のキーをタップ
0x5700 KC_SPC layer_on(1) KC_ENT KC_SPC KC_SPC×2
0x5701 KC_Q KC_LCTL KC_ESC caps_word_on KC_Q×2
0x5702  KC_COMM KC_RCTL KC_SCLN KC_SCLN KC_COMM×2
0x5703 KC_DOT KC_RSFT KC_SLSH KC_SLSH KC_DOT×2
0x5704 KC_P layer_on(2) KC_MINS KC_MINS KC_P×2

具体的なタップダンスの例として、TATA30の右端にあるPのキーは、タップで”P”、ダブルタップで”-”となります。1回長押しでレイヤー2がオンになり、ダブルタップ後に別の文字が入ると”p”が2回入力されます。ダブルタップ後に長押しすると、”-”が連打されます。

タップダンスについてのより詳細な挙動や仕様については、QMKドキュメントをご参照ください。

docs.qmk.fm

③CAPS_WORD

起動すると特定の文字が入力されるまでCAPSLOCKを働かせる機能です。左右シフトキーの同時押しやKC_F24キー、またはQキーのタップダンスで起動させることができます。スペースやEnterを押すか、何も押さないで10秒経過すると解除されます。

docs.qmk.fm

④OLED

OLEDディスプレイに以下の情報を表示します。

f:id:Cerbekos00:20230924191555j:image

  • ロゴ
    • 月と妖精
  • 現在のレイヤー
    • Layの文字の後にレイヤー番号を表示
  • モディファイアキー
    • 押下中のモディファイアキーを以下の頭文字で表示
      • Ctrl:C
      • Shift:S
      • Alt:A
      • GUI:G
      • CAPS_WORD:W
  • 打鍵数
    • Typeの文字の後にキーボードが起動してからの打鍵数を表示
  • Tapping Term
    • モディファイアキーやタップダンスが有効となる時間(ミリ秒)を表示
    • このTapping Termは、エンコーダの回転で調整できるようにしています(Layer3を押しながらエンコーダの左右の回転でできます)。ただし、キーボードの電源がオフになるとリセットされます。デフォルトは180(ミリ秒)です。
⑤LEDインジケータ

レイヤーオン、CapsLock、NumLock状態のときLEDがカッコの中の色に変わります。

  • Layer1(赤)
  • Layer2(青)
  • Layer3(緑)
  • CapsLock(黄)
  • NumLock(マゼンタ)
⑥エンコーダ

ロータリーエンコーダはプッシュと左右の回転に対応しています。デフォルトキーマップでは次のキーが設定されています。

  • プッシュ:CAPS_WORD状態とする
  • 時計回りの回転:変換
  • 反時計回りの回転:無変換

f:id:Cerbekos00:20230924191720j:image

もちろんRemapによりキーアサインを変更することができます。エンコーダの左下の青色のところをクリックすると左右の回転の割り当てを変更することができます。

また、TATA30では別のレイアウトとして、エンコーダではなくキースイッチを用いることができます。この場合はレイアウトオプションをクリックして変更してください。

⑦ファンクションキー

F22~F24キーに次のキーを設定しています。デフォルトキーマップではアサインされていませんが、REMAPからキーを設定できます。

キーコード タップ
F22 Shiftキーが押された状態/解除
F23 Ctrlキーが押された状態/解除
F24 CAPSWORD状態/解除
⑧ソース

ソースコードはこちらで公開しています。タップダンスを自分好みに創作したい場合などにご活用ください。

github.com

おわりに

独立したモディファイアキーもスペースもエンターもない超小型30%キーボード「TATA30」。タップダンスやOLEDを搭載して少しでも使いやすく実用的なキーボードになるように工夫を凝らしてみました。私はデフォルトに設定しているキーマップに落ち着きましたが、キーマップの好みは千差万別。もっとゆっくり入力したいからTappingTermを上げようとかエンコーダにもっと違うことさせようなど、ぜひ色々なキーマップを試して楽しんでご使用いただければ幸いです。

『果たしてあなたはTATA30を使いこなすことができるでしょうか…⁉』

最後に、気が向いた方は完成した"TATA30"をTwiiterで見せていただけると、作者として大変うれしく思います。(ハッシュタグは#TATA30でお願いします!)

それでは、良いキーボードライフを。

f:id:Cerbekos00:20230924191855j:image