Skip to content

Latest commit

 

History

History
322 lines (200 loc) · 15.2 KB

build_guide.md

File metadata and controls

322 lines (200 loc) · 15.2 KB

小石(miniEC) Build Guide

miniec

販売ページ

部品

キット同封物

名前 数量
メインPCB 2
トッププレート 2
ボトムプレート 2
マイコンカバー 2
TRRS ジャック ※ 2
タクトスイッチ ※ 2
M2, 8 mm スペーサー 14
M2, 5 mm ねじ 28
M4, 2 mm スペーサー 10
ゴム足 8

※ はんだ付け済みの場合は同封されていません。

その他必要なもの

名前 数量 備考
ProMicro 2 動作確認済みは以下です
- https://shop.yushakobo.jp/products/pro-micro
- https://talpkeyboard.net/items/62e24e6f8a0bd07fe2d38137
2.5~3.5 mm 12pin ピンヘッダー or コンスルー 4 ピンヘッダーであれば ProMicro を購入するとおそらく同封されています。コンスルーは遊舎工房や TALP KEYBOARD から購入できます。
- https://shop.yushakobo.jp/products/31
- https://talpkeyboard.net/items/5e056626d790db16e2889233
スイッチ 36キー分 使用できるスイッチに関しては「動作確認済みスイッチ」をご参照ください
キーキャップ 36キー分 NIZ, BTO のスイッチだと CherryMX 用のものが使えます
TRRS or TRS ケーブル 1 - https://shop.yushakobo.jp/products/trrs_cable
- https://www.amazon.co.jp/gp/product/B08T5TT859/

実装

表裏

チップがすでにはんだ付けされている面が裏です。

表

裏

ProMicro・TRRS ジャック・タクトスイッチのハンダ付け

写真のように ProMicro、TRRS ジャック、タクトスイッチ(リセットスイッチ)を配置しハンダ付けします。実装面をお間違えなきようお気をつけください。 最終的にチップが表面に出ないのが正しいです。

はんだ付け

はんだ付け 2

スイッチ

トッププレートに M2, 8mm スペーサーをネジで固定します。

スペーサー

次にハウジングをトッププレートに嵌めていきます。(使用するハウジングに応じた記述に従ってください)

NIZ のスイッチの場合

ハウジングを下図のような向きにプレートに嵌めていきます。(NiZ のハウジングの場合はあまり向きにシビアではありませんが、中央にくるように配置してください。)

niz_switch

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

正しい向き
軸

間違った向き
軸

トッププレートの穴の大きさの影響でプランジャーの滑りが悪くなることがあります。その場合は穴をヤスリで削って拡張してください。

BTO のスイッチの場合

プランジャーに O リングを通し、プランジャーを嵌めます。プランジャーはハウジングのレールに沿うように入れてください。

プランジャー

bto switch

ハウジングを下図のような向きにプレートに嵌めていきます。爪が引っかかる向きに注意してください。(穴のサイズ的に間違った向きにはそもそもハマりません)

bto switch plate

スペーサーが隅にある部分ではハウジングサイズが大きいためスペーサーと干渉します。その部分はハウジングの角をニッパーで切ったり、ヤスリで削ってください。(下の写真は東プレスイッチですが BTO のスイッチでも同様のことが起こります。)

topre switch

トッププレートの穴の大きさの影響でプランジャーの滑りが悪くなることがあります。その場合は穴をヤスリで削って拡張してください。

東プレスイッチ(Realforce) の場合

Realforce を分解しハウジング等を入手します。 ハウジングを下図のような向きにプレートに嵌めていきます。爪が引っかかる向きに注意してください。(穴のサイズ的に間違った向きにはそもそもハマりません)

topre switch

スペーサーが隅にある部分ではハウジングサイズが大きいためスペーサーと干渉します。その部分はハウジングの角をニッパーで切ったり、ヤスリで削ってください。

topre switch

トッププレートの穴の大きさの影響でプランジャーの滑りが悪くなることがあります。その場合は穴をヤスリで削って拡張してください。

すべてのスイッチ共通

ラバーシートから5スイッチ分ずつ6行分と親指キー用を1スイッチ分ずつハサミで切り出します。 片手分の切り出し方の例として下の写真の赤線で囲った部分のように切り出すのがおすすめです。 全てを1スイッチ分ずつ切り分けたほうが後述する穴あけがやりやすいですが、コニカルスプリングがずれやすくなるのでまとめて切り出したほうが入力が安定します。

ラバーシート写真

(オプション) ラバーシートの側面に穴を開けると打鍵が軽くなります。一方でタクタイル感が減りリニアに違い打鍵感になります。

穴を開けたラバーシート写真

切り出したラバーシートをスイッチに乗せ、コニカルスプリングを1つずつ配置します。コニカルスプリングは重なりやすいので1つずつになっていることを確認しながら配置してください。重なっていた場合入力がおかしくなることがあります。この時テーブルに直置きした状態で作業するとうまくハメられないため基板を浮かせた状態にしてください。 名刺やカードの短辺がおおよそ3キー分くらいの長さなのでプラスチック製のカードケースなどが使えると思います。 この作業のためだけのスタンドの 3D モデルも用意しているため 3D プリンターを所有されている方は印刷して使用してみてください。

spring

プランジャーが落ちきった状態で作業をする。

stand

ProMicro カバー

左右用のカバーが一つの基板として連結しているので切り離し、バリをヤスリで削ってください。

promicro cover

PCB に M2 8 mm スペーサーを取り付け、カバーをネジで固定してください。

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

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

m4 spacer

bottom plate

Firmware 焼き

以降の動作確認は Linux(Ubuntu 22.04) で行っています。その他の OS をお使いの場合は適宜内容を読み替えてください。 Windows をお使いの場合は WSL で docker を使い firmware を build した後に生成された hex ファイルを qmk toolbox を使用して firmware を書き込むのが比較的楽だと思います。 QMK Firmware は version 0.24.11 を元にしています。公式サイトのドキュメンテーションとは version が異なることがあります。その場合は version 0.24.11 の Doc をご参照ください。

QMK Firmware 環境構築

ローカル環境に構築

sudo apt-get update
sudo apt-get install -y git python3-pip make gcc-avr binutils-avr avr-libc avrdude vim gcc-arm-none-eabi ripgrep wget libc6-i386 libc6-dev-arm64-cross

git clone --depth 1 --recurse-submodules --shallow-submodules -b v1 https://github.com/goropikari/miniEC
cd miniEC
python3 -m venv env
source env/bin/activate
python3 -m pip install -r requirements.txt
ln -s $(pwd)/keyboards/miniec qmk_firmware/keyboards/miniec
cd qmk_firmware

Docker を使う場合

docker pull goropikari/qmkfm:0.24.11
git clone --depth 1 -b v1 https://github.com/goropikari/miniEC
cd miniEC

firmware を焼くときはこのリポジトリにある keyboards ディレクトリ以下を bind mount しています。閾値や keymap を変えるときはこのリポジトリ内のファイルを編集してください。 ビルドしてできた hex ファイルは build ディレクトリ以下に生成されます。

vial を使う場合(試験的)

vial 対応は試験的です。今後もサポートするかは未定です。 vial 0.7.1 で動作を確認しています。

vial.md をご参照ください。

入力テスト用キーマップ

入力テスト用のキーマップを焼いて全キーが入力できるか確認してください

# ローカル環境を使う場合
make miniec:test:flash

# docker を使う場合
QMK_VERSION=0.24.11 ./docker_build.sh miniec:test:flash

Waiting for USB serial port - reset your controller now (Ctrl+C to cancel).... と出たら reset switch を2回押して firmware を書き込んでください。

QMK_VERSION=0.24.11 ./docker_build.sh miniec:testflash を抜くとコンパイルするだけで終わります。WSL を使用している場合はこちらの方法が推奨です。

うまく入力ができなかった場合は後述の「閾値を調整する」を参考にしきい値を調節してください。

入力がうまくできるようになったら keyboards/miniec/keymaps/default/keymap.c をお好みのキーマップに編集して firmware を焼き直し完成です。

# ローカル環境を使う場合
make miniec:default:flash

# docker を使う場合
QMK_VERSION=0.24.11 ./docker_build.sh miniec:default:flash

閾値を調整する

静電容量無接点方式スイッチではキーを押したときの静電容量の変化もとい電圧の変化を検出して押下判定をします。 keyboards/miniec/config.h にある HIGH_THRESHOLD に設定した値を超えるとキーが押された状態、LOW_THRESHOLD を下回るとキーが押されていない状態と判定されます。

hid_listen を使うと各キーの電圧(スケールされている)を見ることが出来ます。公式ページからバイナリを落としてくるか下記のように docker で立ち上げ、キーボードを PC に繋いでください。QMK Toolbox でも同様の出力を得られるようですが確認できる環境を持ち合わせていないため未確認です。

docker run --rm -it --privileged -v /dev:/dev goropikari/hid_listen:1.01

下は2回分の読み取り値の例です(USB ケーブルが刺されている側だけの値が出力されます)。 キーを押していない状態が 70 以下、押した状態では 282 と他よりも高くなっています。 全キー分の値を見つつ最適な HIGH_THRESHOLD, LOW_THRESHOLD の値を決めてください

Waiting for device:
Listening:
  67  64  48  45  46  45
  18  37  45  34  30  63
  28  50  40  48  43  78

  64  68  47  41  41  32
  40  38  40  39  28  60
  27  52  39  46  43 282 <- 押したキー

キーを押したときに文字が入力されて邪魔な場合は何の文字も入力されない keymap を用意しているので一度そちらに firmware を焼き直してみてください。

# ローカル環境を使う場合
make miniec:blank:flash

# docker を使う場合
QMK_VERSION=0.24.11 ./docker_build.sh miniec:blank:flash

トラブルシューティング

うまく機能しない場合に調査すべきポイントを wiki にまとめています。

オプション

ケース

小石用ケースの 3D モデルを配布しております。左用, 右用

ご家庭の 3D プリンター、もしくは専門の業者に依頼して印刷してご使用ください。 こちらのケースはボトムプレートの代わりにご使用ください。その際、M4 2 mm スペーサーは使わないでください。

miniec case

miniec case trrs hole

miniec case promicro hole

写真のケースは JLCPCB Resin Imagine Black で作りました。

プレートデータ

ご自身でケースを作成されたい方はボトムプレートのデータを KiCad, svg 形式で配布しておりますのでご活用ください。