Shotgun チェリーパイを組み立ててみた

はやしたろうさん(@w_vwbw)が設計した自作テンキーキット『Shotgun チェリーパイ』を購入したので、使ってみた記録とレビューです。

はじめに

Shotgun チェリーパイとは

Shotgun チェリーパイは、CherryMX互換キースイッチが使える自作テンキーパッド(マクロパッド)。

最大の特徴は、キーボードの心臓部であるコントローラーボードとして、RP2040マイコンを搭載したRaspberry Pi Picoを採用していることです。

世界的な半導体不足によりAtmega32U4を搭載したProMicroの価格が上昇している中、新たな選択肢として話題になることの多いRP2040マイコン、要注目です!

【購入先】

booth.pm

【委託】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でキーマップの変更が可能になります。

remap-keys.app

抜き差しする際にマウント解除などの手間が必要なくなるので、特にこだわりがない場合はQMK Firmwareのほうが便利かもしれません。

ShotgunチェリーパイをQMK Firmwareで使用する手順は以下の通りです。

  1. リセットボタン2回押しでRaspberry Pi Picoを初期化。
  2. Shotgunチェリーパイ用のQMK Firmware(uf2ファイル)を、RPI-RP2ドライブにコピー。

あとは勝手にQMK Firmwareで動くキーボードとして認識されるようになります。 なお、その際にPRK Firmwareドライブは消えてしまうので、必ずバックアップを取っておきましょう。

ShotgunチェリーパイはRemapに登録済みなので、ブラウザでアクセスすればすぐにキーマップの変更が出来るようになります。

まとめ

Shotgunチェリーパイはとても魅力的な価格設定で、しかも優れたデザインと機能性を備えた自作マクロパッドです。

ビルドガイドも丁寧でわかりやすく、必要な部品の多くが同梱された状態で頒布されているので、自作キーボードの入門用としてもおすすめできます。またPRKファームウェアの入門用として、自作キーボードに慣れた方も楽しめるのではないかと。

そんなわけでShotgun チェリーパイを使ってみた個人的な記録でした。

最後までお読みいただきありがとうございました。