Skip to content

Latest commit

 

History

History
187 lines (111 loc) · 13.2 KB

README.md

File metadata and controls

187 lines (111 loc) · 13.2 KB

静電容量 corne mini (corne miniEC) Build Guide

corne miniec

静電容量 corne mini は goropikari によって設計されました。オリジナルの corne シリーズ を設計された foostan 氏とは無関係です。この製品に関する問い合わせを foostan 氏にすることはお控えください。

部品

必要なもの

品目 数量 備考
PCB 左右用 https://pikarikbd.booth.pm/items/4530773
アクリルプレート 左右用 corne mini 用のアクリルプレートを購入してください。(厚さは 2 mm にしてください)
https://shop.yushakobo.jp/products/keyboard_acrylic_plate?variant=37715871236257
TRRS ジャック 2 https://akizukidenshi.com/catalog/g/gC-06070/
タクトスイッチ(オプション) 2 原理上はなくてもよいです。今回の firmware では XIAO RP2040 をストレージとして認識させるか否かの制御のために使っています
https://akizukidenshi.com/catalog/g/gP-08073/
7pin socket(オプション) 4 マイコンを取り外し可能にする場合のみ必要です
https://www.hirosugi-net.co.jp/shop/g/g24084/
ハーフピッチ 16pin ソケット(オプション) 2 静電容量スイッチスキャン用モジュールを取り外し可能にする場合のみ必要です。16ピン用は売っていないので20ピン用をカットして使います
https://www.hirosugi-net.co.jp/shop/g/g18851/
M2 8.5mm スペーサー 10 https://www.hirosugi-net.co.jp/shop/g/g2395/
M2 10mm スペーサー 4 マイコンカバー用。マイコン部分をどのようにはんだ付けするかによって最適な高さは変わります。「マイコンカバー用スペーサー」にどれくらいの隙間ができるのかの写真を貼ってありますので参考にしてください。
https://www.hirosugi-net.co.jp/shop/g/g2398/
M5 2mm スペーサー 10 https://www.hirosugi-net.co.jp/shop/g/g3318/
M2 4 mm 低頭ねじ 10 https://wilco.jp/products/F/FX-E.html#page3
M2 4 mm ねじ 18 M2 4 mm ネジは全て低頭ネジにしても構いません
https://www.hirosugi-net.co.jp/shop/g/g36905/
ゴム足 8 https://www.amazon.co.jp/dp/B08WYNYLSK
静電容量スイッチスキャン用モジュール 2 2023/1/20 時点ではハーフピッチピンヘッダーもつけていただけていますが、もしつかなくなっていたら別途購入してください
https://nogikes.booth.pm/items/2710697
Seeed Studio XIAO RP2040 2 - https://akizukidenshi.com/catalog/g/gM-17044/
- https://talpkeyboard.net/items/63534f58f5197322fceb6487
- https://www.switch-science.com/products/7634?gclid=Cj0KCQiAn4SeBhCwARIsANeF9DKmqjOd5mDyTjdRjlI8Az9yD6eNxgfJHfWghG-0v4dwvCrwWmRG_JkaAuxmEALw_wcB
NEW NIZ EC SWITCH 36キー分 - https://shop.yushakobo.jp/products/5224
- https://shop.beekeeb.com/product/niz-ec-switch/
- https://www.nizkeyboard.com/products/2019-new-niz-ec-switch
コニカルスプリング 36キー分 - https://shop.yushakobo.jp/products/4679
- https://shop.beekeeb.com/product/niz-ec-switch/
ラバーシート 36キー分 - https://shop.yushakobo.jp/products/a0500er-01-1
- https://btoshop.jp/products/adelcpru?_pos=1&_sid=f788dfe94&_ss=r
キーキャップ 36キー分 MX 互換のもの。イメージ写真で使っているものは Majestouch Xacro 交換用キーキャップです
O リング(オプション) 36キー分 キーを押したときにキーキャップとネジが衝突する場合があります。その場合は O リングをつけてストロークが浅くなるように調整してください。
https://shop.yushakobo.jp/products/a0400or-02-1
TRRSケーブル 1 https://shop.yushakobo.jp/products/trrs_cable?_pos=2&_sid=739f146d9&_ss=r

実装

写真のように置いたときの向きが左右の表面です。(写真は v0.1 のものです。v0.2 とはシルクが若干異なりますが動作に違いはありません)

基板写真

ハンダ付け

写真のようにピンソケット、タクトスイッチ、TRRS ジャックを置きハンダ付けします。

ソケット・ジャック仮置き写真

マイコン、静電容量スキャンモジュールにピンヘッダーをハンダ付けし、下記の写真のような向きで配置します。

マイコン

スイッチ

トッププレートに M2 8.5 mm スペーサーを低頭ネジで固定します。低頭ネジでない普通のネジで止めるとキーを押したときにネジの頭とキーキャップが衝突することがあります。

スペーサー

次にハウジングをトッププレートにハメていきます。このときハウジングとスペーサーが干渉してハウジングがハメられない箇所が何箇所かあります。その部分ではハウジングの干渉している部分をニッパーなどを使って切り落としてください。

ハウジングをハメたらプランジャーをハウジングに入れていきます。プランジャーはハウジングのレールに沿うように入れてください。

正しい向き
軸

間違った向き
軸

ラバーシートを切り出しハウジングにかぶせ、コニカルスプリングを配置します。

string

(余談) ラバーシートの側面に穴を開けると打鍵が軽くなります。一方でタクタイル感が減りリニアに違い打鍵感になります。写真では直径 3 mm の穴を1キーあたり4つ開けています。

hole_sheet

マイコンカバー用スペーサー

マイコンカバーをつけるための M2 10 mm スペーサーをネジで止めます。このときまだマイコンカバーはつけないでください。

ちなみに 10 mm スペーサーを使用した場合のマイコンとアクリルプレートの距離はこのような感じです。マイコンはピンヘッダーのプラスチックを取ることで高さを抑えています。

メイン基板・ボトムプレート・ゴム足

メイン基板を乗せ、スペーサーのところに M5 2 mm スペーサーをおいてください。 最後にボトムプレートをかぶせネジで止め、ゴム足を貼り付けてください。

Firmware

XIAO RP2040 用の CircuitPython をダウンロードします。 (動作確認は version 8.0.4 で行いました。)

bootloader mode で起動し、ダウンロードした uf2 ファイルをコピーします。手順は公式 doc を参照してください。bootloader mode に起動するときだけマイコンのスイッチを押す必要がありますが、これ以降はマイコンのスイッチを押す必要はないためこの作業が終わったらマイコンカバーをつけてよいです。

コピーし終わると CIRCUITPY という名前でストレージがマウントされます。 後のためにストレージ名を左手用のマイコンは NYQUISTL, 右手用は NYQUISTR にリネームしておいてください。リネームを行わないと分割キーボードとして機能しません

次にマウントされたストレージに firmware プログラムを配置します。

git clone --recursive https://github.com/goropikari/CorneMiniEC

kmk_firmware ディレクトリ配下の kmk ディレクトリをまるごとストレージ直下に配置、firmware ディレクトリ配下の Python プログラムをストレージ直下に配置します。

全てのファイルを配置したあとは以下のようなディレクトリ構成になります。

.
├── boot.py
├── code.py
├── kmk/
├── scanner.py
└── settings.toml

両手のマイコンに配置したら一度 USB ケーブルを抜き再度接続してください。このときはストレージとしてマウントされません。USB ケーブルは左右どちらに接続しても構いません。 タイピングしてみてキーが入力されたら成功です。デフォルトのキーマップは Dvorak 配列です。

キーマップ変更

USB ケーブルを抜き、タクトスイッチを押しながら USB ケーブルをつなぐと再びストレージとして認識されます。code.py を修正してお好みのキーマップにしてください。 タクトスイッチがない場合は、タクトスイッチを設置する場所にある端子をピンセットなどでショートさせながら USB ケーブルをつなぐとストレージとしてマウントされます。

閾値調整

settings.pyDEBUG=0 になっている部分を DEBUG=1 にし、USB ケーブルを抜き差しすると各スイッチの電圧が出力されるようになります。このときはキーを押しても何も入力されません。

出力は picocomMu editor を使うと見ることが出来ます。下図は Mu editor を使って出力値をプロットしているところです。 閾値

この出力値を参考に閾値を調節してください。初期値は下記のように設定されています。

low_threshold=0.6,
high_threshold=0.7,

ここで high_threshold, low_thresholdtomsmalley/custom-topre-guide における Actuation Depth, Release Depth にそれぞれ対応します。 簡単に言うとある電圧(high_threshold)よりも上ならばキーが押された、ある電圧(low_threshold)よりも下ならばキーが押されていないと判定しています。

firmware をバグらせたら

キーマップやその他設定をいじっているとバグらせてしまうことが多々あります。その結果コードの書き換えが一切出来ない状態になることがあります。そのようなときは下記の記事を参考にマイコンを初期状態にリセットしてみてください。

https://zenn.dev/link/comments/c6600bde683fe6

KMK firmware documentation

KMK firmware はバージョンタグが切られておらず、それに伴い website も常に最新の記述になってしまっているため、この静電容量 corne mini で使用した KMK firmware とは設定項目が変わっている可能性があります。そのため corne mini が使っている kmk firmware 時点でのサイトを Docker image にしました。もし本家の記述でうまく設定できなかった場合はこちらの docker image をお使いください。

docker run -p 3000:3000 goropikari/kmk_website:corne_miniec_v0.1

http://localhost:3000 にアクセス