9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zincで自作キーボードデビューしてみた

Last updated at Posted at 2020-07-14

#自作キーボードデビューのきっかけ
TwitterでTLを眺めていると、なんかめちゃくちゃ可愛いキーボードを見つける。

え、なんすか、Boothで売ってる?それください。

#筆者スペック

  • 機械工学科出身(not電子電気系)
  • 卒研でちょっとだけマイコン触ってた
  • 仕事でも多少の電子工作したり
  • でも表面実装部品のはんだ付けとかは無理
  • 非ITエンジニア
  • プログラミングはJavaScriptとかPythonはちょっと知ってる
  • gitはほぼ初心者
  • その辺歩いてる人よりは若干詳しいかな?レベル
  • 自作キーボードは気になりつつも、グッと来る物がなくスルーしてた

#誰向けの記事か

  • Zincが気になっている人
  • Windows&日本語キーボード環境で自作キーボードデビューする人
  • ZincでVIA Configurator使いたい人

#Zincについて

Zincのコンセプト説明から引用すると
ロースタッガードでありながら分割型で、なおかつオール1uキーのすっきりしたキーボード
です。

自作キーボードと言えば分割型のイメージがある方もいると思いますが、
キーが碁盤目状に並んだ格子状配列(Column-StaggeredやOrtholinear)の物が流行りつつあり
普通のキーボード配列は斜め(Raw-Staggered)なので、格子状配列とのギャップに躓いてしまう人がいるそうです。
なので、キーが斜めに配列されているZincは初心者が自作キーボードデビューするのに向いているという事ですね。

あと、乳白色のアクリルプレートを採用しているのも珍しく、いい感じにほわっとバックライトが光る点も良いところ。
結構ギークみが強いキットが多い中、Zincはオシャレ!(筆者の主観です)

#キーキャップ選び
Zincで使うキーキャップを選ぶ時の注意点はキーが全て1uサイズである点です。
1つのキーキャップセットで必要なキーを網羅したい場合、全て1uで入っているか確認しておく必要があります。
(1uのEnterキーとかなかなか無いんですよね…。)

オール1uなキーキャップセットはマイノリティな上、イケてるキーキャップはGroup Buy(GB)と言う受注生産的な注文方法が多く、一期一会な物です。
しかし、気に入るキーキャップが手に入るまで待つのはつらい…
ので、私は遊舎工房さんやTALP KEYBOARDさんで取扱いのあるR2 XDA 40v2 Dye-sub keycapsを選びました。

ほんとはKAT Milkshakeとか、MDA ORTHO VoIDとか欲しかったんですが、これはこれでシンプルかつ挿し色もあって良いかなと。
ちなみに、1uなキーキャップセットを探すときは「ortholinear」「ortho」「all 1u」みたいな単語を入れて検索すると良いみたいです。

#キースイッチ選び
Cherry MX互換なスイッチを選びましょう。
キースイッチってメーカーが色々ありますが基本的にどれもCherry MX互換です。
赤軸、茶軸、青軸などなど色んな種類があるので、店頭で試してみたりキースイッチお試しセット的な物を先に購入して、気に入った物を選ぶとよいです。
今回はなんとなく赤軸、なんとなくGateronにしました。

私はここで失敗したんですが、Zincは全体的に白いキーボードなのでキースイッチも白やクリアをベースにしたスイッチの方が全体的に色がまとまって良いかもしれません。
あと、他のキースイッチも試してみたい人はMill-Maxソケットと言うキースイッチを取り外し可能にする部品があるので、予め購入しておきましょう。(ソケット化、ホットスワップ化と言います)

(1個40円ぐらいするけどな!!!)
ホットスワップ化しておくと、こんな感じでスポッとスイッチを引っこ抜けます。

#TRRSケーブルとUSBケーブル
Zincは分割型のキーボードなのでキーボード同士をつなぐケーブルが必要で、それがTRRSケーブルです。
よくイヤホンなんかについてるジャックはTRSケーブルで線が三本、TRRSケーブルは四本です。
マイク付きイヤホンなんかはTRRSですね。要はオーディオ用のケーブルを流用出来ます。
(ちなみにZincはTRS/TRRSどちらを使っても大丈夫なように設計されています)
USBケーブルはUSB A⇔MicroBのよくあるやつです。
今回は遊舎工房さんの自作ケーブルキットを購入して自作しました。
買えば早いし確実ですが、このキットは好きな色を組み合わせて作れます。
おしゃれなキーボードにはおしゃれなケーブルが必要ですよね!


作り方は遊舎工房さんが以下に書かれているので、買う前に見ておくと難易度が想像できると思います。
https://github.com/yushakobo/self-made-trrs-cable
https://github.com/yushakobo/self-made-usb-cable
はんだ付けの経験があれば作れるかなとは思いますが、TRRSケーブルの方がはんだ付けの難易度が高いです。
作ってみて気を付けた方が良いなと思ったのは

  • ケーブルスリーブの長さを調整する時にたるみがないようにちゃんとしごく
  • はんだ付けする時のコネクタの向きがそのまま完成時の向きになるので、確認しながらやる
  • USBケーブルの端子部の白い樹脂部品は半田ごての熱で溶けるので手早くやる

ってとこですかね。
TRRSケーブルとUSBケーブルを同じデザインで揃えられるので自作ケーブルキットはオススメです。
最近国内でケーブルを好きにカスタマイズして注文できるお店↓も始まったようなのでそっちも良いかもしれません。
https://exmecables.com/
※開店ほやほやでレビュー記事とかもないので、購入の際は自己責任で…

#Zincの組立て
ではZincを組み立てていきます が
基本的なところは公式のビルドガイドやビルドログがいくつかあるので、そちらを参考に。

ここでは、上記の記事に載っていない部分や私が躓いた部分についてまとめます。

##MogeMicro対策
例によって2液のエポキシ系接着剤で固めました。

ただ、盛れば良いというわけではなくMicroB端子上面とコンスルーが取りつく位置には盛らないようにしましょう。
干渉しちゃうので削る事になります。
今ならわかる、ダメダメな盛りっぷり↓

##ProMicroにVIA対応ファームを焼く
ここが一番躓いたところです。
Windows10でファームウェアを焼く方法は以下の記事を参考にしたのですが、なかなかすんなり行かず焦りました。笑
qmk_firmwareをWindows上でmakeする方法
記事の通りDebianをインストールしました。
以下、躓きポイントと対処方法

  • sudo apt install gitでgitのインストールが出来ない
    sudo apt upgradeしてからgitのインストールをしましょう

  • gitのインストール時、なんか聞かれる
    →「容量これだけ使ってインストールするけどええか?」の確認だと思うのでそれっぽいメッセージならYを入力

  • git cloneする指定先がわからない
    https://github.com/monksoffunk/qmk_firmware/tree/feature/zinc_via を指定するとmasterブランチをcloneしてしまうので
     ブランチ名(feature/zinc_via)を指定してcloneしましょう↓
     git clone -b feature/zinc_via https://github.com/monksoffunk/qmk_firmware.git
     プルリクを指定する方法もあるらしい。
     その内QMK FirmwareにZincの製作者さんのプルリクがmergeされればcloneするのはQMK Firmwareのmasterでいいと思います。

  • git cloneerror: chmod on hoge failed: Operation not permittedってエラーが出る
    →NTFSフォーマットのストレージに保存しているファイルやフォルダで所有者や権限が変更できないというエラーのようです。
     海外のフォーラムで解決方法を見つけました。
     How to solve Operation not permitted on cloning repository
     sudo umount /mnt/c
     sudo mount -t drvfs C: /mnt/c -o metadata
     /mnt/cの部分はそれぞれの環境に合わせて適宜書き換えて下さい!

  • VIAファームウェアを指定してmakeする方法が分からない
    readme_jp.mdを読もう!make zinc:viaでいいです。
     (読まずに製作者さんに問い合わせてしまった)

hexファイルをmake出来たらQMK ToolboxでProMicroに書き込みましょう。

##ダイオードの実装
基板のバージョンがいくつかあり、私が購入したのはrev.1d_tabでした。
公式ビルドガイドではProMicroの下部に位置するD7のみ上面となっていますが
rev.1d_tabでは全て裏面の実装でOKです。

##LEDの実装
自作キーボードに於いて鬼門とされるのがLED実装ですが
Zincはタブ付きLED(SK6812MINI-E)に対応しているので、かなり楽(らしい)です。
LEDを取り付ける穴に裏からLEDを嵌め込む際、LEDの角が若干削れますが気にしないでいいです。

LEDに4つのタブが付いていますが、はんだ付けする際はまず全部のLEDでタブを一本だけはんだ付けして、
全部終わったら次のタブをはんだ付けして…という風に一本ずつやっていきます。
LEDは熱に弱いので一本はんだ付けする毎に冷却時間を設けてあげる事で熱によるダメージを抑えます。
このやり方で、初めてのLED実装でも一つの犠牲を出す事なくできました!
ファームを書き込んだProMicroを取り付けてUSBケーブルを挿すとLEDが点灯します。

##Mill-Maxソケットでのホットスワップ化
他のキーボードを買う予定がないので、Zincで色んなスイッチを試せるようにホットスワップ化します。

Gateronのスイッチでソケットを嵌めようとするとピンが曲がりそうになります。ちょっと斜めから入れる感じでスッと入ります。
ソケットが基板に密着するようにしっかりスイッチを嵌め込んでからはんだ付けしましょう。

ソケット内部にはんだが流入するとスイッチを外せなくなるので慎重に。

1個怪しい感じになりましたが、見なかったことに。まぁソケットを温めながらスイッチ引っ張れば抜けるでしょ(?)

#VIA Configurator
キーキャップも取り付けて、デフォルトのキーマップで動作するのを確認出来たら
VIA Configuratorで色々弄りましょう!
バックライトLEDの色がリアルタイムで変わるのが面白い。
詳しい使い方はサリチル酸さんの記事でどうぞ!
https://salicylic-acid3.hatenablog.com/entry/via-manual

##Adjレイヤーに0x5~で始まる謎のキーが割り当てられてる

keymap.cを見るとZinc独自定義のキーが割り当てられてるようですが、うまくいってない?
無くてもいいので割り当てを外しました。
もう少しちゃんと追っかけてもいいんですが、とりあえず動いてるのでヨシ!

##LWinキーとLAltキーが入れ替わる
Win環境な人はなんかそういう仕様らしい。
気持ち悪いけど素直に入れ替えて配置しよう。

#キーマップはこんな感じになりました

パソコン側が日本語配列のキーボードなので、VIA Configurator上の表示と実際に入力される文字がちぐはぐになってしまいます。
特に括弧関係はマジでわけわかりません。誰だこんな仕様にした奴。
仕方ないのでどのキーを押すと何が入力されるかを自力で図にしました。(Googleスライドを使った)
マクロも2種類登録してみました。
・Lower+Win で「Ctrl+Alt+Del」Windowsのログインやタスクマネージャー用。
・Lower+V で「Ctrl+Alt+V→V→Enter」これはExcelで値のみ貼り付けをするショートカット。
マクロは便利そうだけどいまいちグッとくる活用方法が思いつかない~。
調べてたら「マクロで簡単パスワード入力!」みたいな記事を見かけたけど正気か?

#keymap.cをいじる
その名の通りキーマップを定義しているファイルです。
どうせVIA Configuratorでいじるのでデフォルトのままでいいんですが
LowerやRaiseを押している間だけバックライトの色を変えてみます。
実はデフォルトでそんな記述がありますが、Zincに最適化されていないので
以下のように書き換えます。

keymap.c
// Light LEDs 0 to 48 in azure when keyboard layer 1 is active
const rgblight_segment_t PROGMEM lower_layer[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 54, HSV_AZURE}
);
// Light LEDs 0 to 48 in orange when keyboard layer 2 is active
const rgblight_segment_t PROGMEM raise_layer[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 54, HSV_ORANGE}
);

光らせるLEDの位置と色は{0,48, hoge}で良いと思って最初はそうしたんですが
最後の6つに反映されなかったので{0,54, hoge}としています。よくわからん。
使える色はQMKの公式ドキュメントに一覧があります。

なんか頑張ればいろんな事が出来るようですが(押下キー位置を起点にアニメーションするとか)
とりあえずサクッと出来たのはこの程度。

#自作キーボードで困ったときは
日本の自作キーボード好きが集まるDiscordサーバーがあります!
Self-Made Keyboards in Japan Discord Server を開設した話
どうしても分からない時は聞いてみると良いかも。問診室があります。
あと色んな情報も入ってくるので、眺めてるだけでも楽しい。

Zincを設計/頒布している25KEYSさんのDiscordもあります。
https://discord.com/invite/scD6N3V

#まだ沼の入口に過ぎない
とりあえず初めての自作キーボードが完成しました。

職場に持って行ったら非ITな職場なので「え、それなに…?」って反応が結構ありましたw

もっとおしゃれなキーキャップが欲しいし、静音なスイッチも気になる。
自作キーキャップにもチャレンジしてみたい。
この沼はなかなか深そうだぞ…!!

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?