「自作キーボード」タグアーカイブ

自作キーボード用の小さいマイコンボード候補

前回の投稿(もう3か月以上前・・・)の最後に、ATOM LiteだとDeep Sleepでも電池が持たなさそうなのでM5STAMPを試したいと書いた。

M5STAMP以外にも小さめのマイコンボードがある

BTキーボードにはM5STAMPがよさそうだけど、Seeed XIAO(無印?)とSeeed XIAO RP2040というのもちょっと気になる。Seeedのサイトをみると、XIAOのBLE対応版もあるみたい(日本未発売&OUT OF STOCKなので今のところ入手できなさそう)

仕様を表にしてみた

ItemPriceProgramming
Environment
ButtonUser LEDWifi
Bluetooth
USB interfaceMiscellaneousProcessorCoreStorageNet weightProduct size
M5Stamp
Pico Mate
$5.00Arduino
MicroPython
User ButtonRGB LED
(Neo Pixel x1)
2.4GHz
IEEE 802.11 b/g/n
(Max 150Mbps) /
Bluetooth V4.2
BR/EDR
BLE standard
noneESP32-PICO-D4
Datasheet
Xtensa LX6 (2 core)
@240MHz
SRAM 520KB
FLASH 4MB
2.6g18*24*4.4
mm
M5Stamp
C3 Mate
$6.00Arduino
(MicroPython)
User Button
Reset Button
RGB LED
(Neo Pixel x1)
2.4GHz
IEEE 802.11 b/g/n
(Max 150Mbps)
Bluetooth V5
TypeCESP32-C3
Datasheet
RISC-V (1 core)
@160MHz
ROM 384KB
SRAM 400KB
RTC SRAM 8 KB
FLASH 4MB
3.8g34*20*4.5
mm
Seeeduino
XIAO
$5.40Arduinonone
(リセット用のパッドあり)
RGB LED
(3Colors x1)
TypeCSAMD21G18
Datasheet
ARM Coretex-M0+ (1 core)
@48MHz
SRAM 32KB
FLASH 256KB
?g20*17.5*3.5
mm
Seeed
XIAO RP2040
$5.40Arduino
MicroPython
CircuitPython
Boot Button
Reset Button
RGB LED
(Neo Pixel x1)
(3Colors x1)
TypeCRP2040
Datasheet
ARM Cortex-M0+ (2 core)
@133MHz
SRAM 264KB
FLASH 2MB
?g20*17.5*3.5
mm
Seeed
XIAO BLE nRF52840
XIAO BLE nRF52840 SENSE
(IMUとマイク付き)
$9.90
($15.99)
Arduino
MicroPython
CircuitPython
Reset ButtonRGB LED
(3Colors x1)
Bluetooth V5TypeCNFC
Zigbee
Battery charging chip:
BQ25101
nRF52840
Datasheet
ARM Cortex-M4 (1 core)
@64MHz
SRAM 256KB
FLASH 1MB(on-chip)
FLASH 2MB(on-board)
?g21*17.5*?
mm

いつの間にかいろんなのが発売されてたのだな

こうやって並べて見比べてみると、XIAO BLEがバッテリ充電IC付きなので、この基板とバッテリだけあればなんでもできそう。品切れ状態なのが残念。あとこのXIAO BLE技適未取得機器なので日本で使うには総務省への特例申請が必要。

あとはM5Stamp PicoにはなかったUSB Type CのコネクタがM5Stamp C3にはついてるので書き込みが気軽にできそう。こっちはいろんなとこに在庫あるようなので買ってみよう。

最後に

年末年始の間に一個ぐらい記事を書こうとおもってたけど、マイコンの仕様表つくっただけで力尽きてしまった・・・

BLEキーボードを作ってM5STACKのコンテストに応募した

紹介ページ

コンテスト応募にはProtoPediaという作ったもの記録サイト?を使うことになっていたので、アカウント作成して作品作成の過程を登録した。

https://protopedia.net/prototype/2434

最初に動画と写真素材を選んでから、作品の概要から作成過程、思い入れポイントを順に入力していく流れ。作品作りの過程を記録するという目的があるので、いろんな人が書くであろう記事にある程度統一感が出るように、記載内容をガイドしてくれている感じ。

平型端子をかしめた

ProtoPediaでは画像素材の枚数に縛りがあったので、向こうに載せられなかった写真をこっちに1枚載せておく。

今回はアーケードのゲーム機で使われるような大きなボタンスイッチを使ったんだけど、それの端子が平型端子(ファストン端子)とかいう名前らしい。

もともと持ってたQIコネクタ用のカシメ工具でカシメてみたけどうまくカシメられず。思い切ってHOZANのP-707を買ったらかなりいい感じにカシメられるようになったので満足。

あと今回はアマゾンでいい感じの より線6色セットを買えたのも満足ポイント。被膜がシリコンなので、はんだゴテを当てても溶けなくて扱いやすい。

最後に

今回はATOM Liteで作ったけど、DeepSleepしてもあまり電池が持たなさそうだったのでスイッチ付きの電池ボックスを使った。

このキーボードの作成途中に発売開始された、M5STAMPという小さなボードが省電力性能よさそうなので、これをつかって電源スイッチなしで一定時間でDeepSleep、キー押下で復帰するような、より普通のBLEキーボードっぽいふるまいのできるものを作ってみたい。

キーボード作り中断してる

いきなり基板設計から始めたものの、キットのキーボードも試してみたくてRE64というのを買ってみた。(基板のみ)
RE64を選んだ理由は分割タイプではあるものの配列がHHKに近いという点。

基板のみ購入だったのでアクリルパネルの部分は3Dプリント品で代用。

アクリル板よりも少し薄め(1.6mm)で印刷したのでちょっとたわむけどまあまあいい感じ。

ちょっと満足してしまった

RE64を作ってる前後で自作キーボードの基板も届いたけど、RE64を作ったことで少し満足してしまって結局自作基板のほうは はんだ付けしてないまま放置している・・・

最後に

RE64の配列はHHKとほぼ同じなんだけど、個人的には数字キーの分割が少し違う。。。
右手で6を押したいのだけどRE64は左手側に6があるのでちょっと(かなり)違和感あり。

キーボード作り中(基板発注した)

作り方を調べる

10日前にキーボード作ってみようと思い立って、まずは作り方を勉強した。AVR単体やArduinoは使ったことがあるので、基板づくり部分がメイン。

最初に自作キーボード設計入門を購入した。書籍の記載通りにKicadの操作を試すことで、基本的なKicadの使い方が把握できたのがよかった。

わからんことをつぶやいたら親切な人が教えてくれた

あとはKicadの使い方しっかり覚えたくてKicad入門実習テキストも購入した。

レイアウトを決める

レイアウトを作れるサイトでHHKBを左右分割したようなレイアウトを作ってみたけど、↑の配列だと右手側のマトリクスが5x7で1キー余るのが微妙だなーとおもって結局左右対称な形に落ち着いた。

親指を充実させてみたのと、サイズ違いのキーキャップ揃えるの大変そうな気がしたので大半を1Uサイズにした。

基板を設計する

自作キーボード設計入門をみながらやってたんだけど、両面対応の基板設計がよくわからずちょっと苦戦した。具体的にはキーごとにLEDをつけようとしたんだけど、自作キーボードのキットを持ってないので両面にどうやって配線したらいいのか思いつかず。そもそもKicadに慣れてないので今使ってるLEDのフットプリントが両面対応になってるのか、LEDをはめ込む用の穴が開いてるのか、そもそも穴が必要なのか・・・などなど。

結局自動配線がうまくいかないこともあって、初回の基板注文ではLEDをあきらめることにした。最終的な形はこんな感じ。

配線してる途中でチップの周辺に空間が足りなくなって外形を広げたせいで、TRRSジャックとProMicroのUSBの口が基板のフチからだいぶ遠くなってしまった。特にUSBケーブルのほうがちゃんと刺せるか少し心配。(基板とProMicroとの隙間大きめにすれば大丈夫と思っている)

一枚目を作ってみてまだよくわかってないのが、きれいに配線する方法。参考にした書籍に書かれてる通りにFreeRouterを使ってみたんだけど、一日待っても配線終わらず。なにかが致命的に間違ってたりするのかな。

結局手動で配線したけど同じ形のキーが多数並んでいるのに、配線をコピペする方法がわからなくて全部の配線を手で引いてるので形がそろってない。キーを斜めに配置してる部分の角度が30度だけど、Kicadの設定でちょうど30度を指定する方法がわからず。配線の角度完全フリーにしたせいでいよいよ統一感のない配線になってしまった。

基板を注文する

完璧を目指してると終わらなさそうだったので、いろいろわからない状態のままだけどとりあえず基板を注文してみた。業者はよく使われてそうなelecrowさんを選択。書籍に書いてる通りにKicadのデータをまとめてzipファイルをUploadして注文。基板の色が選べるので黒にしてみた。生産が1週間+配送1週間なので半月ぐらいで届くのかな?

最後に

ひとまず一枚目の注文まで終わったので、次回はもうちょっと基板の作り方を勉強してから二枚目のキーボードに挑戦する予定。今回のは最小単位の5枚、送料込みで5000円ぐらいぐらいかかったけど、10cm x 10cm未満だとかなり安くできるみたいなので、小物用の基板とかも気軽に設計&注文してみたいな。

追記

elecrowのサイト上で注文の状態が「in production」になってたので、データには問題がなくて、無事に製造始まったのかなーと思ってたら、外形(基板の輪郭)のデータが入ってないよってメールが来た。見直したらたしかに入ってなかったし、よくよく思い出してみると注文時zipファイルを作るときに外形のファイルを(なぜか)消した記憶も蘇ってきた。

外形ファイルも含めたzipファイルを作り直してメールに添付して送ったら、今度はOK!って返事をくれた。基板到着するの楽しみ。

キーボードを作ってみようかな

以前、電卓を作ってみたことはあるけど、あのときは基板なしで全部空中配線だった。

以前作った電卓のキースイッチ配線

ちなみに、今使っているのは、会社用が「HHKB Professional HYBRID Type-S」(和田さんのサイン付き)、自宅用が「Thinkpad Trackpoint Keyboard II」で、どちらも英字配列のものをDvorak配列で使っている。

電卓の時と同様に3Dプリンタでフレームだけ作って、空中配線頑張ればとりあえずキーボードは作れそうな気はしてるけど、今回は基板を注文してみたい。

以前、レーザープリンタとアイロンで自作基板を作ったときは、回路を設計するのにEagleを使ったような記憶があるけど、いつの間にかAutodeskの製品になっていたので、今回はKiCadを使ってみる。

形はHHKBを2分割したようなものにする

キーボードの形状はCHOCO60というのを参考にする。マイコンはProMicroがド定番みたいだけど、できればSeeeduino XIAOを使ってみたい。ピンの数足りないかな・・・。

キーキャップは以前買ったのがどこかにあるような気がするのでとりあえずキースイッチだけ注文してみた。TALP KEYBOARDさんで、Gazzew Boba Gum サイレントリニアキースイッチ ピンク 5ピン 52gというのを70個注文した。今思えば、ダイオードも一緒に注文しとけばよかったな。

とりあえずKiCadで回路図作ってみる

まずはシンプルにキーとダイオードとマイコンを並べてみるか。そういえば、左右分割のマイコン同士ってどうやって通信してるんだろうか。電源とGNDとDATAの3線でいけてるっぽいけど。QMKのソースコード見ればわかるんかな。