cscs64を購入して作りました #cscs64

cscs64を作成しました。

github.com

[https://twitter.com/hatano/status/1134666427489607681:embed]

作業ログ

キースイッチソケットとダイオード、他諸々の部品は普通に半田付けしていきます。 cscs_family/buildguide.md at master · hatanoh/cscs_family に書いてある通り細かいパーツがキットには入っており、それを半田付けしたかったのですが悲しいことに紛失してしまいました。

なので秋月電子で、昇圧型DCDCコンバータ StepUP・DIP 3.3Vタイプ Ver2丸ピンICソケット ( 8P)を書いに行き半田付けしました。 ソケットを利用する場合は、14mmのスペーサで丁度良い感じでした。

後はBLE Pro microを取り付けて終了ですが、若干取り付け方が特殊だった(ピンをずらすなど)のでビルドガイドを良く読んで実装しました。

ファームウェア書き込み

ファームウェアの書き込み(無線)を読んで、cloneしてきます。

書き込む前に以下の設定を諸々済ませていきます。

Python周りのsetting

ここでは僕の環境であるMac OSX(High Sierra)を前提に説明していきます。 以下の流れでpyenvを入れて設定します。

# install
$ brew update
$ brew install pyenv

# setup
$ pyenv install 2.7.15
$ pyenv local 2.7.15
$ pyenv rehash
$ pip install nrfutil

Mac特有の変更

書き込み時にusb_serialが見つからないとエラーが出る場合(MacOSなど?)を参照

nRF5_SDKをダウンロード

nRF5_SDK_v15.x.xからnRF5_SDK_15.0.0_xxx的な名前のzipファイルをダウンロード それを解答して、僕はホームディレクトリに置いておきました。

その後、.zshrcなんかに以下の環境変数を追加しておきます。

export NRFSDK15_ROOT=$HOME/nRF5_SDK_15.0.0_a53641a

書き込み

今回はcscs64を購入したので、以下のコマンドで書き込みます。

make cscs64_ble/master:cscs64:nrfutil # 左
make cscs64_ble/slave:cscs64:nrfutil # 右

Detecting USB port, put your controller into dfu-mode now...........という表示が出たら、リセットボタンを押しながらBLE micro proにusbをさします。 すると、以下のような表記が出て書き込みが完了すると思います。 何かしら書き込みが失敗した場合、電源が入っているかもしれないので電池を抜いて再チャレンジします。

Detected controller on USB port at /dev/tty.usbmodem14511
Programming Started
  [####################################]  100%
Device programmed.

Python3周りでのエラー

Traceback (most recent call last):
  File "/usr/local/bin/nrfutil", line 10, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/nordicsemi/__main__.py", line 867, in generate
    package.generate_package(zipfile_path)
  File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/package.py", line 407, in generate_package
    Package.normalize_firmware_to_bin(self.work_dir, firmware_data[FirmwareKeys.FIRMWARE_FILENAME])

というエラーが出て、python3.7系のライブラリを参照していました。 とりあえずライブラリを消して再インストールしたらエラーが出なくなりました。

$ pip3 uninstall nrfutil
$ pip uninstall nrfutil
$ pip install nrfutil

起動

キースイッチなどをソケットに挿入し、プレートをネジで締めます。 ネジをしっかり締めないと若干プレートが浮いてスイッチが効かないみたいなことになったので、しっかり締める感じです。

その後電池を入れて電源をON

cKANAキーとBを押すとペアリング待ち受けしてペアリングできると思います。 デフォルトでのcKANAキーは左手の右下から左に2番目のキーです。 keyboards/cscs64_ble/keymaps/cscs64/keymap.cで確認できます。

電池の消耗が早くなるけど、文字早く打てる環境が欲しい

デフォルトの状態だと早く打ちすぎると「っっっっっっっt」とかの状態になったりします。

これがつらかったので、keyboards/cscs64_ble/config.hに以下の設定を追加しました。

## ここは最初から書かれているので値を変更
#define BLE_NUS_MIN_INTERVAL 15
#define BLE_NUS_MAX_INTERVAL 40

## 追記
#define BLE_HID_MAX_INTERVAL 40
#define BLE_HID_SLAVE_LATENCY 7

これで頻度高めで左右やPCとの通信をしてくれるので快適にタイピングが可能になりました。

最後に

cscs64がまだ遊舎工房さんのショーケースにあるのかは不明ですが、もし興味が湧いた人がいたのなら買ってみてもいいかもしれないです。 良いキーボードライフを