静電容量 corne mini は goropikari によって設計されました。オリジナルの corne シリーズ を設計された foostan 氏とは無関係です。この製品に関する問い合わせを foostan 氏にすることはお控えください。
写真のように置いたときの向きが左右の表面です。(写真は v0.1 のものです。v0.2 とはシルクが若干異なりますが動作に違いはありません)
写真のようにピンソケット、タクトスイッチ、TRRS ジャックを置きハンダ付けします。
マイコン、静電容量スキャンモジュールにピンヘッダーをハンダ付けし、下記の写真のような向きで配置します。
トッププレートに M2 8.5 mm スペーサーを低頭ネジで固定します。低頭ネジでない普通のネジで止めるとキーを押したときにネジの頭とキーキャップが衝突することがあります。
次にハウジングをトッププレートにハメていきます。このときハウジングとスペーサーが干渉してハウジングがハメられない箇所が何箇所かあります。その部分ではハウジングの干渉している部分をニッパーなどを使って切り落としてください。
ハウジングをハメたらプランジャーをハウジングに入れていきます。プランジャーはハウジングのレールに沿うように入れてください。
ラバーシートを切り出しハウジングにかぶせ、コニカルスプリングを配置します。
(余談) ラバーシートの側面に穴を開けると打鍵が軽くなります。一方でタクタイル感が減りリニアに違い打鍵感になります。写真では直径 3 mm の穴を1キーあたり4つ開けています。
マイコンカバーをつけるための M2 10 mm スペーサーをネジで止めます。このときまだマイコンカバーはつけないでください。
ちなみに 10 mm スペーサーを使用した場合のマイコンとアクリルプレートの距離はこのような感じです。マイコンはピンヘッダーのプラスチックを取ることで高さを抑えています。
メイン基板を乗せ、スペーサーのところに M5 2 mm スペーサーをおいてください。 最後にボトムプレートをかぶせネジで止め、ゴム足を貼り付けてください。
XIAO RP2040 用の CircuitPython をダウンロードします。 (動作確認は version 8.0.4 で行いました。)
bootloader mode で起動し、ダウンロードした uf2
ファイルをコピーします。手順は公式 doc を参照してください。bootloader mode に起動するときだけマイコンのスイッチを押す必要がありますが、これ以降はマイコンのスイッチを押す必要はないためこの作業が終わったらマイコンカバーをつけてよいです。
- bootloader mode への入り方
- circuit python インストール方法
コピーし終わると 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.py
で DEBUG=0
になっている部分を DEBUG=1
にし、USB ケーブルを抜き差しすると各スイッチの電圧が出力されるようになります。このときはキーを押しても何も入力されません。
出力は picocom や Mu editor を使うと見ることが出来ます。下図は Mu editor を使って出力値をプロットしているところです。
この出力値を参考に閾値を調節してください。初期値は下記のように設定されています。
low_threshold=0.6,
high_threshold=0.7,
ここで high_threshold
, low_threshold
は tomsmalley/custom-topre-guide における Actuation Depth, Release Depth にそれぞれ対応します。
簡単に言うとある電圧(high_threshold)よりも上ならばキーが押された、ある電圧(low_threshold)よりも下ならばキーが押されていないと判定しています。
キーマップやその他設定をいじっているとバグらせてしまうことが多々あります。その結果コードの書き換えが一切出来ない状態になることがあります。そのようなときは下記の記事を参考にマイコンを初期状態にリセットしてみてください。
https://zenn.dev/link/comments/c6600bde683fe6
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 にアクセス