自分でキーボードを設計するための第一歩

私がキーボード沼に浸かってから約一年半経った先日、ついに自分で基板を設計して試作をしました。界隈の方々からすると沈む速度がゆっくりな私が、基板設計への一歩を踏み出したときに、役に立ったと思うものを紹介していこうと思います。

基板を設計する流れをつかむのに役に立ったもの

これは、foostanさん著の「自作キーボード設計入門」に大変お世話になりました。キーボードをデザインするところから始まり、基板の設計・発注・組み立てまで、ツールの具体的な使い方まで分かりやすく書かれています。

基板を設計するためのソフトウェア

KiCad

基板を作成するためのCADで、論理回路の作成から基板上の配線、製造業者に渡すファイルの作成までこなせるソフトウェアです。「自作キーボード設計入門」を読めば必要な操作は分かると思います。オンラインショップで基盤が品切れになっているけど、入荷するまで待てないといった時に、githubで公開されている基盤データからKiCadを使って製造用ファイルを作成し、業者に発注するという使い方をしたことがある方もいるでしょう。

Inkscape

ドロー系のグラフィックツールで、アクリルプレートの設計をする際に使用します。これも、業者に発注する際のファイル作成までできます。「自作キーボード設計入門」では、別のグラフィックツールが紹介されていますが、私はこちらの方が手に馴染みました。3Dプリンタでのケース製造もやってみたいですねぇ。

組み立てる時に使用するツール

はんだシュッ太郎NEO

何回も試作をする場合、もうこの基板は使わないかな…と思った時に、ダイオードやPCBソケットを次の基板に流用できた方がお財布にも優しいかと思います。はんだ付けした部品をとりはずす時、はんだ吸い取り器や吸い取り線を使うよりも労力が少なく、おすすめです。

スプリングピンヘッダ

これも何回も試作をする場合におすすめ(というか無いとやってられない)です。Pro Micro側だけはんだづけすればよいため、PCBからPro Microをはがす手間がまるっと省けます。遊舎工房さんから購入できます。

 

下の画像は、初めて設計したキーボードの基板です。Advent Calenderでの記事公開に間に合わせたかったのですが、時間が足りませんでした。

f:id:emizping:20181202171507j:plain

それでは、良いEnd Gameを!

 

この記事は、Nyquist (Kailh Speed Copper)で書きました。

Helix 組み立て(4)

タクトスイッチ・TRRSジャック・OLED用ソケットの取り付け

それぞれはんだ付けします。TRRSジャックは左右で取り付ける位置がずれてきます。

左側

f:id:emizping:20180225104804j:plain

右側

f:id:emizping:20180225104821j:plain

 

OLEDモジュールのヘッダピン取り付け

裏面にヘッダピンの黒い方が来るように取り付けます。

f:id:emizping:20180225105144j:plain

スイッチの取り付け

PCBの上に上面用プレートを乗せ、その上からスイッチをはめて端子をはんだ付けします。

f:id:emizping:20180225105302j:plain

横から見ると画像の様になります。

low profileスイッチだと、PCB・プレート・スイッチの間に隙間はありません。

f:id:emizping:20180225105552j:plain

ここまで来たら、一度動作確認をすると良いと思います。

スペーサとネジの取り付け

動作確認ができたら、スペーサを取り付けます。

f:id:emizping:20180225110105j:plain

最初にOLEDをソケットに差し込み、OLED保護プレート用を取り付けてから、PCBと底面プレートの間のスペーサを取り付けます。f:id:emizping:20180225110339j:plain

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

f:id:emizping:20180225110512j:plain

Helix 組み立て(3)

LEDの取り付け

向きに気を付けて取り付けていきます。

PCBの〇のある箇所とLEDの裏面パッドの一番大きい箇所をあわせます。同じ行は全て同じ向き、奇数行と偶数行は180度回転させた位置になります。(PCBの〇が見えなくなっているところもありますが、この規則に従って向きを決めればOKです)

向きを決めたら、ビルドガイド通り、はんだごての設定温度を220度程度にしてはんだ付けを行います。

ちなみに、私のはんだごてでは最低温度が240度でしたが、特にLEDを壊すことはありませんでした。 f:id:emizping:20180216210942j:plain

すべて取り付け終えたら、前回用意したPro MicroをPCBに挿して点灯を確認します。

f:id:emizping:20180216211931j:plain

LEDは下の画像の様につながっているみたいです。途中のLEDが壊れていたり向きを間違えたりすると、それ以降のLEDが点灯しません。一個ずつ順に直す必要があります。

f:id:emizping:20180216212003j:plain

 

Helix 組み立て(2)

ビルドガイドと順番を変えて、先にPro Microにスプリングピンを取り付け、ファームウェアを書き込んでおきます。

ビルドガイドではLEDをはんだ付けする時は、はんだごての温度を220度程度で行わないとLEDが壊れるとの記述がありました。私のはんだごてでは最低でも240度までしか設定を下げられなかったので、その温度でもLEDが壊れないかテストをするために、先にPro Microへファームウェアを書き込むことにしました。

Pro Microにスプリングピンを取り付ける

四角い切れ込みが入っている方がPro Micro側、切れ込みが無い方がHelix PCB側です。

f:id:emizping:20180214154935p:plain

Pro Micro一つにつき、スプリングピンを二つ使いますが、両方とも切れ込みが同じ側を向くようにします。

f:id:emizping:20180214160042j:plain

Pro Microにスプリングピンをさしただけではぐらつくので、PCBを使って安定させてからはんだ付けを行います。下の画像のように、USBコネクタがPCB側に向くようにします。Pro Microは左側用・右側用共に同じ向きです。また、スプリングピンを使っているため、PCB側ははんだ付けをしません。

f:id:emizping:20180214155248j:plain

 

ファームウェアを書き込む

準備

makeとavrdudessを使えるようにする必要があります。

Windows向けの手順は、こちらBashのインストール・AVRDudessのインストールを参照。

ソースのダウンロードと展開

https://github.com/qmk/qmk_firmware/の、clone or downloadボタンからzipファイルをダウンロードし、適当なフォルダに展開します。

ビルド

ビルドも基本的にこちらと同様の操作を行います。

qmk_firmware-master/keyboards/helix/rev2/keymaps/default フォルダを同じ階層にコピーし、名前を変えて自分の設定を行うようにします。

makeは、qmk_firmware-master フォルダで、make helix:<自分の設定フォルダ名> を実行します。

とりあえず、バックライトLEDが壊れていないことをテストするためには、以下の箇所だけ変更すればOKでした。

rules.mk

RGBLIGHT_ENABLE = yes

config.h

RGBLED_NUM 32
RGBLIGHT_LIMIT_VAL 120

keymap.c

bool TOG_STATUS = true; /* テストが終わったらfalseに戻す */

不要のようです。(2018/02/18追記)

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

書き込みも基本的にこちらと同様の操作を行います。

まだリセットスイッチを実装していないため、画像の様にGNDとRSTをショートさせてPro Microをリセットします。(画像では金属のピンセットを使用。画像ではUSBケーブルを繋いでいませんが、実際には繋いでおく必要があります) Windowsでは、リセットするとUSB機器を取り付けた時の音が鳴ります。f:id:emizping:20180214162413j:plain

 

Helix 組み立て(1)

遊舎工房さんが作られた、分離型格子配列キーボードHelixの組み立ての記録です。

ビルドガイド・ファームウェアのカスタマイズ方法・PCBのデータなどがGitHubで公開されていますので(LINK)、それを見ながらゆっくり進めていこうと思います。

今回組み立てる構成

Helixには、いくつか選択式となっている機能・部品があります。今回の構成は以下の通りです。

  • ダイオードは表面実装用を使用
  • バックライトとして表面実装型LEDを使用
  • OLEDモジュールを使用
  • Kailh low profileスイッチを使用
  • 行の数は5(2018/02/12追記)

以下、実際の組み立てです。

どちらのPCBを左側・右側にするか決める

PCBは2枚とも同じもので、左右で裏表が逆になります。

キーボードを上から見た場合、最初の画像が左側。

f:id:emizping:20180212153903j:plain

次の画像が右側になります。

f:id:emizping:20180212153920j:plain

 

OLEDモジュール使用のためのジャンパ

OLEDモジュールを使用するために、左右それぞれの表面4箇所ずつをジャンパします。パッドが上下に並んでいるので、はんだで繋ぎます。

左側

f:id:emizping:20180212154307j:plain

右側

f:id:emizping:20180212154320j:plain

 

ダイオードを取り付ける

ダイオードをPCBにはんだ付けします。裏面に取り付けます。

ダイオードには向きがあります。今回使用する表面実装用ダイオード(Group Buyで購入したもの)では、ラインがある方がカソードでした。

f:id:emizping:20180212155220p:plain

これを、スルーホールダイオード用のパッドの、内側のパッドにはんだ付けします。丸いパッド側がアノード、四角いパッド側がカソードになるように取り付けます。画像では、下側がカソード(ダイオードのラインがある方)です。

f:id:emizping:20180212155844j:plain

あらかじめカソード側のパッドに少しはんだをのせておき、その上からダイオードをのせてはんだこてをあてて固定すると作業がしやすいと思います。

(1) 片側だけはんだをのせる

f:id:emizping:20180212160608j:plain

(2) 先ほどはんだをのせた側だけ固定する

f:id:emizping:20180212160707j:plain

(3) もう一方もはんだ付けする

f:id:emizping:20180212155844j:plain

HelixのPCBでは、ダイオードの向きは全て同じです。再度向きの確認をしておくと、後戻りの可能性を減らせると思います。

 

 

Nyquist 組み立て(5)

ファームウェアのビルドとPro Microへの書き込み(Windows向け)

bashとAVRDudessのインストール

手順はこちらを参照。

ファームウェアソースのダウンロードと展開

https://github.com/qmk/qmk_firmwareから、Clone or Download → Download ZIPを選択して、qmk_firmware-master.zipをダウンロードします。ダウンロードしたファイルを適当なフォルダに展開します。

ファームウェアのビルド

  1. bashを起動します。(ファイル名を指定して実行→bash など)
  2. ソースを展開したフォルダ以下の、keyboards/nyquist に移動します。(cd /mnt/d/documents/qmk_firmware_master/keyboards/nyquist)
  3. keymapsフォルダ以下に、適当な名前のフォルダを作成し、その中に設定・キーマップを記述したファイルを格納します。(ほかのフォルダに格納されているファイルをコピーするだけでも、とりあえずは動作すると思います。カスタマイズについては後述)
  4. keyboards/nyquistフォルダに戻って、"make 3で作成したフォルダ名" とタイプしてビルドします。正常終了すると、qmk_firmware_master/.build フォルダ以下に、nyquist-rev1-3で作成したフォルダ名.hex というファイルができます。

キーマップのカスタマイズ

keymaps以下のフォルダ内に、サンプルの設定が格納されているので、keymap.c, config.hをコピーして、適宜 modifyすればよいと思います。

今回は、I2C通信を使用するので、config.h で以下の定義を行います。

#define USE_I2C

#undef USE_SERIAL

 ビルドしたファームウェアをPro Microへ書き込む

1.AVRDudessを起動する。
2.どちらかのPro MicroとPCをUSBケーブルで繋げる。
3.AVRDudessについて、以下の3か所を設定する。

 ・Programmer(-c) : Aterm AppNote AVR109 Boot Loader(赤枠)
 ・MCU(-p) : ATmega32U4(赤枠)
 ・Flash : ビルドしたhexファイル(黄色枠、ファームウェアのビルドで作成したファイル)

f:id:emizping:20170811220609p:plain

4.Port(-P)のリストを見て、リストにあるCOMx の名前をメモしておく。図ではCOM1。

f:id:emizping:20170811220854p:plain

5.Pro Microの隣にあるタクトスイッチを押すと、4でメモしたCOMポートに加えて、新たにCOMxポートが出現するので、それを選択する。(スイッチを押して何秒か経過するとポートが消えるので、素早く正確に)

f:id:emizping:20170811220914p:plain

6.Program!を押下して、ファームウェアを書き込む。ウィンドウ下部のログを見て、書き込みが終わっていることを確認する。
7.反対側のPro Microも同様の手順でファームウェアを書き込む。