はやしたろうさん(@w_vwbw)が設計した自作テンキーキット『Shotgun チェリーパイ』を購入したので、使ってみた記録とレビューです。
はじめに
Shotgun チェリーパイとは
Shotgun チェリーパイは、CherryMX互換キースイッチが使える自作テンキーパッド(マクロパッド)。
最大の特徴は、キーボードの心臓部であるコントローラーボードとして、RP2040マイコンを搭載したRaspberry Pi Picoを採用していることです。
世界的な半導体不足によりAtmega32U4を搭載したProMicroの価格が上昇している中、新たな選択肢として話題になることの多いRP2040マイコン、要注目です!
【購入先】
【委託】Shotgun チェリーパイshop.yushakobo.jp
Shotgun チェリーパイのいいところ
1. 見た目がカッコいい!
テンキーサイズのマクロパッドは自作キーボードの入門用として人気があり、たくさんのキットが販売されています。その中でも、Shotgun チェリーパイは税込み3,000円というリーズナブルな価格設定でありながら、アクリル積層の美しいケースが付属しているのが魅力的なポイント。
シンプルで高級感のあるデザインが、個人的な好みにドンピシャでした。
2. レイアウトの自由度が高い!
テンキーパッドとして需要のある様々なキーレイアウト(1u、2uの組み合わせ)に対応しているだけでなく、最大5つのロータリーエンコーダーを搭載可能。創作支援マクロパッドとしての活躍も期待できます。
Shotgunチェリーパイのビルドガイドより引用
3.PRK Firmwareを採用!
Raspberry Pi Picoを搭載しているShotgun チェリーパイは、自作キーボード向けの新しいファームウェアとして注目されているPRK Firmwareで動作します。
キーマップを(スクリプト言語の)Rubyで書けて面倒なコンパイルが要らないので、初心者でも気軽に手が出せそうな気がする!
4.Remapも使える!
Remapとはブラウザからグラフィカルな画面でキーマップを変更可能な大変便利なサービス。Shotgun チェリーパイには、RP2040に対応した非公式のQMKが用意されており、それを使えばRemapでもキーマップの変更が可能です。
PRK Firmwareに挫折したときも安心ですね。
Shotgun チェリーパイの組み立て
画像は本文の内容とはあまり関係ありません。
レイアウトを決める!
Shotgunチェリーパイはレイアウトの自由度が高いので、どういう用途で使いたいのか、組み立て前にしっかりイメージを固めておく必要があります。イメージしづらいときはKeyboard Layout Editorを使ったり、実際にキーキャップを並べてみるといいかもです。
動画視聴用デバイス(案)
お絵描きデバイス(案)
組み立てる!
実際の組み立ては、一般的な自作キーボードとほぼ同じです。
ダイオード、リセットスイッチ、スイッチソケット、Raspberry Pi Picoをはんだ付けしたあとで、キースイッチを取り付けてケースを組み立てたら完成。これにオプションでLEDやロータリーエンコーダーのはんだ付け、スタビライザーの取り付けなどの作業が加わります。
詳しい組み立ての手順は、本家のビルドガイドがメチャメチャ丁寧に解説してくださっているので、そちらを参照してください。 github.com
スイッチの数が少ないぶん作業自体は楽ですが、基板がコンパクトなために部品間のスペースが狭いので注意。
あとLEDの向きが基板の表と裏で変わります。私は気づかずにやらかしてしまって泣く泣く修正しました…!
ちょっとびっくりなことに、ダイオードとリセットスイッチ、スイッチソケットはキットの代金に含まれています。お買い得すぎるでしょ…!
ファームウェアを書きこむ!
Raspberry Pi Picoの表面にあるBOOTSELボタンを押しながらPCと接続すると、RPI-RP2というUSBメモリとして認識されます。
すでにShotgunチェリーパイを組み立て終わっている場合は、USBケーブルをつないだままキーボードのリセットスイッチを2度押しでもOKです。
次に、あらかじめダウンロードして解凍しておいたファームウェア(拡張子uf2)を、RPI-RP2にコピーします。
Raspberry Pi Picoが自動的に再起動して、PRK Firmwareというドライブに変わります。
そのドライブにビルドガイドで配布されているkeymap.rbを入れてやると、Shotgunチェリーパイをキーボードとして使えるようになります。
以上です。
簡単!
★PRFファームウェアの入手先
Releases · picoruby/prk_firmware · GitHub
★Shotgunチェリーパイ用のkeymap.rbの入手先
GitHub - Taro-Hayashi/Shotgun-CherryPie
キーマップを変更する
PRK Firmwareの設定ファイル(keymap.rb)の正体は、単なるテキストファイルなので、Visual Studio Codeなどのテキストエディタで簡単に編集することが可能です。
そして書き換えたkeymap.rbを、PRK Firmwareドライブ内のkeymap.rbと置き換えてやる(上書き保存する)だけで、即座にキーマップの変更が反映されます。
簡単!
(ただし再起動に5秒くらいかかりますが…)
keymap.rbのサンプル
私が使っているYoutube視聴用デバイスのkeymap.rbです。
※画面輝度の調整は、WindowsとMacで使用するキーが違うので、Windowsで使うときはお使いの機種に合わせて修正してください。上のキーマップはMac用です。
簡単な解説(超・初心者向け)
いじってはダメな部分
kbd = Keyboard.new
1行目。おまじないです。いじっちゃダメ。
kbd.init_pins( [ 9, 10, 11, 12, 14 ], [ 5, 4, 2, 3 ] )
3行目。キーのマトリクス読み込みに使われているピン番号を指定しているパートです。使用するキーボードによって変わります。製造元で配布されているkeymap.rbをベースとして使用する場合は、変更する必要はありません。
kbd.start!
82行目。おまじないです。いじっちゃダメ。
いじっても大丈夫な部分
kbd.add_layer :default, %i[ KC_NO KC_RABK NEXT KC_L KC_NO KC_LABK KC_END KC_RIGHT KC_NO KC_C KC_F KC_SPACE KC_F KC_DOT KC_HOME KC_LEFT KC_MUTE KC_COMM PREV J_LOW ]
8行目。デフォルトレイヤーのキーマップを定義している部分です。
Shotgunチェリーパイの場合は、USBポートを上にした状態の5行×4列で記述されています。
たとえば「KC_L」というのは、キーボード右上隅のキーを押すと、アルファベットの「L」が入力されることを表しています。
このKC_*を、使いたいキーコードに書き換えてキーマップを設定します。
★キーコードについてはPRK_FirmwareのWikiを参照してください。
Keycodes · picoruby/prk_firmware Wiki · GitHub
★また、はやしたろうさんがまとめてくださった一覧表も参考になります。
https://github.com/Taro-Hayashi/PRKFirmware0.9.7Keycode
なお、KC_*と書いていないキーについては(NEXT、J_LOWなど)あとで解説します。
kbd.add_layer :lower, %i[ KC_NO RGB_HUI RGB_HUD RGB_TOG KC_NO RGB_SAI RGB_SAD KC_NO KC_NO RGB_VAI RGB_VAD KC_NO KC_NO RGB_SPI RGB_SPD KC_NO KC_NO RGB_MOD RGB_RMOD J_LOW ]
16行目。2枚目のレイヤー(lower)のキーマップを定義している部分です。今回のサンプルでは、LEDの制御に使っています。
2枚目のレイヤーが必要ない場合は、まるっと削除しても大丈夫です(逆に新しいレイヤーを追加することもできます)。
kbd.define_mode_key :J_LOW, [ :KC_J, :lower, 150, 150 ]
24行目。ひとつのキーに別の機能を追加するための設定です。
こちらの例では、単押しする(150ミリ秒以内に手を離す)と 「J」を入力し、長押しするとlowerレイヤーのキーマップが有効になる「J_LOW」というキー(Mode Key)を定義しています。
kbd.define_composite_key :NEXT, %i(KC_N KC_LSFT)
25行目。ひとつのキーで、修飾キーなどとの同時押しを入力するための設定です。
こちらの例では、左シフトキーと「N」キーを同時に押したのと同じ効果を持つ「NEXT」というキー(Composite key)を定義しています。
encoder_1 = RotaryEncoder.new(27, 28) encoder_1.clockwise do kbd.send_key :KC_RIGHT end encoder_1.counterclockwise do kbd.send_key :KC_LEFT end kbd.append encoder_1
28行目。ロータリーエンコーダーで入力されるキーを定義している部分です。
上下2箇所の KC_* を書き換えることで、ロータリーエンコーダーを時計回りに回したときと、反時計回りに回したときに入力されるキーを変更することができます。
なおプッシュ機能を持つロータリーエンコーダーのプッシュ時の入力内容は、通常のキースイッチと同じ扱いになります(キーマップの部分で定義する)。
rgb = RGB.new( 0, 28, 0, false ) rgb.effect = :swirl kbd.append rgb
73行目。LEDの制御を定義している部分です。
各パラメーターの詳しい内容は、PRK FirmwareのWikiを参照してください。
RGBLED · picoruby/prk_firmware Wiki · GitHub
Keymap.rbの解説は以上です。
Remapでキーマップを変更する
Shotgunチェリーパイには非公式ながらRaspberry Pi Picoで動作するQMK Firmwareが用意されており、それを使うとRemapでキーマップの変更が可能になります。
抜き差しする際にマウント解除などの手間が必要なくなるので、特にこだわりがない場合はQMK Firmwareのほうが便利かもしれません。
ShotgunチェリーパイをQMK Firmwareで使用する手順は以下の通りです。
- リセットボタン2回押しでRaspberry Pi Picoを初期化。
- Shotgunチェリーパイ用のQMK Firmware(uf2ファイル)を、RPI-RP2ドライブにコピー。
あとは勝手にQMK Firmwareで動くキーボードとして認識されるようになります。 なお、その際にPRK Firmwareドライブは消えてしまうので、必ずバックアップを取っておきましょう。
ShotgunチェリーパイはRemapに登録済みなので、ブラウザでアクセスすればすぐにキーマップの変更が出来るようになります。
まとめ
Shotgunチェリーパイはとても魅力的な価格設定で、しかも優れたデザインと機能性を備えた自作マクロパッドです。
ビルドガイドも丁寧でわかりやすく、必要な部品の多くが同梱された状態で頒布されているので、自作キーボードの入門用としてもおすすめできます。またPRKファームウェアの入門用として、自作キーボードに慣れた方も楽しめるのではないかと。
そんなわけでShotgun チェリーパイを使ってみた個人的な記録でした。
最後までお読みいただきありがとうございました。