kuriharaのブログ

ゴルフと電子工作と山での暮らし。ありもの使い、ないもの作り。

オープンソースPCBのキーボードCrowBoardをRaspberry Pi Picoほぼ互換のYD-PR2040をのっけてPRK FirmwareでLチカ

はじめに

CrowBoardは、コントローラにRaspberry Pi Picoを使った36キーの オープンソースPCB自作キーボードです。
黒い基板に白いカラスが映えるデザインなので、緑基板のPi Picoから黒いYD-PR2040へ変えてみました。
CrowBoardのファームウエアは、KMK、QMKが紹介されています。
私は、使い慣れたPRK_Firmware を使いました。

紹介記事

redditのこの記事でCrowBoardを知りました。

www.reddit.com

keyboarddweebs

作者さんと思われるKeyboardDweebsといサイトから通販できます。
オープンソースに対する熱い思いが伝わってくるサイトです。

データのダウンロード

CrowBoardのデータは、最初はKailh Choc V1専用基板でしたが、現在はMX用の基板も追加されています。

github.com

ライセンス

Don't forget. This keyboard is open sourced. You're welcome to make changes, manufacture your own, and sell them.

https://cdn.shopify.com/s/files/1/0643/1460/5785/products/279390801_10160088698725762_4381705606970029745_n.jpg?v=1652308322&width=600

CrowBoard V1 PCB Kitkeyboarddweebs.net

このキットのPi Picoには事前にKMKがインストールされているようです。

If you purchased a kit from KeyboardDweebs.net, your Pico came pre-flashed.

発注

基板は、いつものJLCPCBへ発注しました。

Shipping Charge: $11.53
Order Total: $27.63

5枚の値段なので、1枚あたり800円弱です。

OCS Expressを使って発注から9日で届きました。

組立

ビルドガイド

ダイオード36個とスイッチ36個だけのシンプルな構成です。
ベタグランドがない配線パターンだけの基板なので、面実装ダイオードのハンダ付けも簡単でした。
注意するのは、ダイオードを□のパターン側に線を向けるぐらいですね。

github.com

組立開始

YD-PR2040化について

YD-PR2040は、電源周りのピンがPi Picoと少し違います。
5V,3.3V,GNDのピン配置は同じです。GPIOの定義を変えるか、配線カット、ジャンパで何とかなります。
CrowBoardは、電源を使うLEDがないのでキーに使っているピンも後追いで確かめます。

Aliの一見Pi Pico互換に見えるマイコンボードの中には、GNDまで違うボードがあるので、注意ください。(2022/09/06追記)
kurihara.hatenadiary.jp


結果よし

結果的にYD-PR2040とCrowBoardのシルクが注意するところが分かるようになっていました。


ファームウエア

ビルドガイドには、KMKとQMKについて説明があります。
だたし、QMKについては安定していないようです。

Please note: This has to be done in a linux enviroment as far as I am aware. I don't believe QMK Msys is supported either. At least in my testing.

ファームウエアは、いつものPRK Firmwareを使いました。
PRK Firmwareは、uf2のインストールに1回とkeymap.rbに1回のドラッグ&ドロップで簡単に動かすことができます。

ファイルのダウンロードとドラッグ&ドロップ、必要なのはテキストエディタだけです。

最近のアップデートでターミナルへメッセージが出力できるようになりましたので、ミスタイプなど見つけやすくなっています。

PRK Firmware

PRK_Firmwareの最新版をダウンロード、ブートボタンを押しながら認識されたドライブにドラッグ&ドロップします。
github.com

keymap.rb

KMKのkb.pyを参考にCOL,ROWピンを定義します。

github.com

チェック用のkeymap.rbです。
これをPRKFirmwareとして認識されたドライブにドラッグ&ドロップします。
これだけで、キー入力とLチカ

# Initialize a Keyboard
kbd = Keyboard.new

# Initialize GPIO assign
kbd.init_pins(
  [ 14, 15, 16, 17  ],            # row0, row1,... respectively
  [  6,  7,  8,  9, 10, 18, 19, 20, 21, 22 ]    # col0, col1,... respectively
)
# default layer should be added at first
kbd.add_layer :default, %i[
  KC_Q    KC_W    KC_E    KC_R    KC_T    KC_Y   KC_U     KC_I    KC_O    KC_P  
  KC_A    KC_S    KC_D    KC_F    KC_G    KC_H   KC_J     KC_K    XXXXXXX KC_L
  KC_Z    KC_X    KC_C    KC_V    KC_B    KC_N   KC_M     KC_1    KC_2    KC_3
  XXXXXXX XXXXXXX KC_4    KC_5    KC_6    KC_7   KC_8     KC_9    XXXXXXX XXXXXXX
]

rgb = RGB.new(
23, # pin number YD-RP2040のWS2812Bは23番
0, # size of underglow pixel
1, # size of backlight pixel
false # 32bit data will be sent to a pixel if true while 24bit if false
)

rgb.effect = :rainbow_mood

kbd.append rgb # `kbd` is an instance of Keyboard class that should be newed in advance

kbd.start!

アルバム

Lチカ



KEEB_PD


JLCPCBのお得な情報

新規ユーザの特典

現在、JLCPCBは新規ユーザは$54クーポンの特典があります。
加えてtwitterアカウントをフォロー+DM=$10クーポンの特典もあります。

jlcpcb.com
twitter.com

ファイルマネージャ

JLCPCBは、サイトのユーザインタフェースが使い易いのも気に入っています。
例えば、ファイルマネージャにはアップロードしたデータ(見積りだけ、キャンセルを含む)が残っていて、ファイルをクイックすると見積の画面が開きます。
まとめてオーダーした1部を発注したり、3Dプリントでは素材を変えたりの操作が簡単です。