kuriharaのブログ

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

このブログは【広告/PR】を含む場合があります。

オープンソースのキーボード『CrowBoard』をセカンドソースRaspberry Pi PicoのっけてPRK Firmwareで動かす。

はじめに

CrowBoardは、コントローラーボードにRaspberry Pi Picoを使った36キーの オープンソースの自作キーボードです。
約1年前に作っていたChoc版を流行りの赤基板で作ってみました。
ついでにホットスワップソケット対応のMX版も作ってみました。

2022年8月28日の記事

kurihara.hatenadiary.jp

リミックス

コントローラーボードをオリジナルのRaspberry Pi Picoから互換ボード*1に変更しました。
最近、USB-Cを使うことが多いし、Raspberry Pi Pico互換ボードは$2程度とオリジナルの半額になっているのでお財布に優しい。

Choc赤基板は、Pi Picoから紫のPICO-BOOTへ変更
MX黒基板は、Pi Picoから黒いYD-PR2040へ変更

紹介記事

reddit

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

www.reddit.com

KeyboardDweebs

作者Alex MillerさんKeyboardDweebs – Lots of Keyboard Stuffのサイトでは完売になっています。

データのダウンロード

CrowBoardのデータは、最初はKailh Choc V1専用PCBデータでしたが、現在はMX用のデータも追加されています。
3Dプリントのデータも追加されていました。

github.com

ライセンス

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

KeyboardDweebsはオープンソースに対する熱い思いが伝わってくるサイトです。

Make it your own! If you are a business, order some and start selling.


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

https://keyboarddweebs.net/products/crowboard-v1-pcb-kitkeyboarddweebs.net

github.com

発注

基板はいつものJLCPCBへ注文しました。
見積、注文が簡単、安くて、速い。

それぞれ最小発注数量5枚の値段です。
1枚あたり500円程度のワンコインです。

これに送料が加わります。
MX版を例に発送方法でOCS Expressを選ぶと

トータルで約4,000円です。

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

送料を薄めたいので、まとめて作りたくなります Yo 。(^^;

組立

ビルドガイド

ダイオード36個とスイッチ36個だけのシンプルな構成です。

ベタグランドがない配線パターンだけの基板なので、コテの熱を取られ難く、面実装ダイオードのハンダ付けも簡単でした。ハンダ付けの練習にもお勧めの基板です。

注意するのは、ダイオードを□のパターン側に線を向けるぐらいですね。

github.com

組立開始

基板の縁をPOSCAで塗る (2023/08/20追記)

ハンダ付けする前にポスカで基板の縁を塗ります。
基板が見える自作キーボードでは、必須の作業らしい。
(忘れていました)

ダイオードのハンダ付け

ダイオードのパターンは、リードタイプと面実装タイプが選べるようになっています。

ダイオードの向きを表すシンボルのシルクがないので、スルーホールの□のパターン側にダイオード線を合せるようにハンダ付けします。

YD-PR2040化について

YD-PR2040は電源周りのピンがPi Picoと少し違いますが、5V,3.3V,GNDのピン配置は同じです。

Aliの一見Pi Pico互換に見えるコントローラーボードの中には、GNDまで違うボードがあるので、注意ください。

kurihara.hatenadiary.jp

CrowBoardは電源を使うLEDがなくて、基板シルクの22までの配線なので、そのまま使えます。

3V3_EN -> 23
ADC_VREF -> 29


PICO-BOOT化について

PICO-BOOTは電源周りのピンも同じです。

PICO-BOOTの情報

LEDはGPIO25をHIにすると光ります。


github.com

できた



ファームウエア

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

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

PRK Firmware

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

github.com

PICO-BOOTのRPI-RP2容量

keymap.rb

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

github.com

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

# Initialize a Keyboard
# CrowBoard 

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
)

# CrowBoard YD-RP2040

# 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   KC_L   KC_MINUS
  KC_Z     KC_X     KC_C        KC_V      KC_B     KC_N    KC_M         KC_COMMA  KC_DOT KC_LSFT        
  KC_NO    KC_NO    KC_LCTL     KC_LGUI   RAISE_SPC LOWER_SPC KC_ENTER  KC_BSPACE KC_NO    KC_NO
]
kbd.add_layer :raise, %i[
  KC_1    KC_2    KC_3        KC_4      KC_5      KC_6      KC_7      KC_8      KC_9     KC_0     
  KC_EXLM KC_AT   KC_HASH     KC_DLR    KC_PERC   KC_CIRC   KC_AMPR   KC_ASTER  KC_LPRN  KC_RPRN   
  KC_PLUS KC_MINUS KC_ASTER   KC_SLASH  KC_EQUAL  KC_N      KC_INSERT KC_LBRC  KC_RBRC   KC_LSFT 
  KC_NO    KC_NO   KC_LCTL    KC_LGUI   RAISE_SPC  LOWER_SPC  KC_ENTER KC_BSPACE KC_NO    KC_NO
]
kbd.add_layer :lower, %i[
  KC_F1    KC_F2      KC_F3       KC_F4      KC_F5     KC_F6      KC_F7     KC_F8     KC_F9     KC_F10   
  KC_AT    KC_BSLASH  KC_SCOLON   KC_SCOLON  KC_QUOTE  KC_LEFT    KC_DOWN   KC_UP     KC_RIGHT KC_PIPE  
  RGB_TOG  RGB_MOD    RGB_HUI     RGB_HUD    KC_B      KC_N       KC_M      KC_LBRC  KC_RBRC  KC_LSFT 
  KC_NO    KC_NO      KC_LCTL     KC_LGUI    RAISE_SPC LOWER_SPC  KC_ENTER  KC_BSPACE KC_NO    KC_NO
]

#                   Your custom     Keycode or             Keycode (only modifiers)      Release time      Re-push time
#                   key name        Array of Keycode       or Layer Symbol to be held    threshold(ms)     threshold(ms)
#                                   or Proc                or Proc which will run        to consider as    to consider as
#                                   when you click         while you keep press          `click the key`   `hold the key`
kbd.define_mode_key :ALT_Q,       [ :KC_Q,                 :KC_LALT,                     150,              150]
kbd.define_mode_key :GUI_X,       [ :KC_X,                 :KC_LGUI,                     150,              150 ]
kbd.define_mode_key :RAISE_SPC,   [ :KC_SPACE,             :raise,                       150,              250 ]
kbd.define_mode_key :LOWER_SPC,   [ :KC_SPACE,             :lower,                       150,              250 ]

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!

VIAL対応のQMKも追加されていた!!

あら、VIAL対応のQMKの.uf2も追加されていますね。

github.com

アルバム


KEEB_PD

KEEB_PDという、毎週日曜19:00~21:00にいい感じのキーボードの写真をツイートするイベントに参加しています。



JLCPCBのお得な情報

新規ユーザの特典

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


20230220184842

部品の購入先

MBK Choc Low-Profile Keycapsshop.yushakobo.jp

talpkeyboard.net


誤字脱字など、コメントいただけると嬉しいです。

*1:*タイトルはソース、*ソースと書きたかったYo。セカンドソース?ジェネリック

誤字、脱字や間違いはコメント欄で教えてください。m(_ _)m