kuriharaのブログ

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

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

オープンソースのキーボード 『Bad Wings Pocket』を組立てました。

はじめに

オープンソースのキーボードBad Wings Pocketを組立てました。🦇
Bad Wings PocketはHazel's Garageさん設計の36キーのキーボードです。
コントロールボードはWaveshare RP2040-Zeroを使っています。
ダイオードレスなので、「速く打鍵しないでね。」ということです。

ビルドガイドは4行にまとまっていますので注意ください。

Bad Wings Pocket

設計者のHazel's Garageさんは、Bad Wingsシリーズの他にもKailh X Switchesを使った超うすうす分割キーボードdustなどを公開しています。

github.com
github.com

データのダウンロード

データはhttps://camo.githubusercontent.com/22c94af738eb5889ae19608895ea194c60a6509f59a94f4a55e77c3f693840a8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f68617a656c732d6761726167652f7361747061643f6c6162656c3d253230266c6f676f3d6372656174697665636f6d6d6f6e73266c6f676f436f6c6f723d253233666666666666267374796c653d666c61742d737175617265のライセンスで公開されています。ありがとうございます。
github.com

github.com

基板の発注


基板と3DプリントはいつものJLCPCBへ注文しました。
見積、注文が簡単、安くて、速い。

基板の金額

MERCHANDISE TOTAL: $2.00
SHIPPING CHARGE: $0.99
PAYPAL FEE: $0.50
ORDER TOTAL: $3.49

基板はオプションなし、最適価格の$2/5枚で発注しました。
発送はOCS NEPを使って$1、PAYPAL代を入れても日本円でワンコインです。

3Dプリントの金額

OCS NEPは使えませんが、OCS Expressを使っても送料は$2程度です。
着替用に素材を変えてプリントし、送料を薄めたくなります。
私は半透明レジンの追加に合わせて、まとめて注文しました。

到着

今回も基板が7日、3Dプリントは10日で届きました。



参考ビルドスレッド

良吉さんのtwitterスレッドを参考にしました。

組立



スイッチは、PiPi Mherkin を作った時の残りSWを流用しました。
白が似合いそうですが、押しやすいように長めのSWを選びました。


kurihara.hatenadiary.jp

ハンダ付け


ハンダ付けは、いつもの3倍くらいの時間がかかりました。
SWの位置合せが難しいです。




半透明レジンのサンディング


JLCPCBの新しい半透明レジンは、現在サンディングのメニューがありません。
サポート痕、積層痕を取るために、サンドペーパーがオマケについてきました。

金属と比較すると樹脂は柔らかいので、比較的楽に削れます。
しかし、磨くとなると底なしの時間が掛かってしまいます。

800番では、マッド(すりガラス程度)な仕上がりです。
twitterによるとクリアコートの塗料を使って透明度を上げる試みがあります。

研磨や塗装は、深すぎて危険な沼です。(^^;)


PRK firmware

オリジナルのファームウエアはQMKです。
良吉さんはkermiteを使っています。

私はPRK firmwareを使いました。簡単だから。。。。

/sourceの中のKicadの回路図を参考にWaveshare RP2040-Zero のGPIO番号に合わせて、keymap.rbを編集していきます。
 


keymap.rb

簡単と書きましたが、回路図を見るとキーマトリクスが複雑でした。
現品合わせで動作確認用のkeymap.rbを作りました。
上手い書き方が分かる方、教えてください。

# bad_wings_pocket with waveshare RP2040_zero
# Initialize a Keyboard
kbd = Keyboard.new

# Initialize GPIO assign
kbd.init_pins(
  [ 29 , 28 , 27 , 26 , 3 , 4 , 5 , 6  ],     # row0, row1,... respectively
  [ 13 , 12 , 11 , 10 , 9 ]    # 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_A    KC_S    KC_D        KC_F      KC_G      
  KC_Z    KC_X    KC_C        KC_V      KC_B    
  XXXX    XXXX    KC_3        KC_4      KC_5        
  KC_P    KC_O    KC_I        KC_U      KC_Y
  KC_SCOLON  KC_L KC_K        KC_J      KC_H                 
  KC_SLASH KC_DOT KC_COMMA    KC_M      KC_N              
  XXXX    XXXX    KC_8        KC_7      KC_6      
]

# Initialize RGB class with pin, underglow_size, backlight_size and is_rgbw.
rgb = RGB.new(
  16,   # pin number RP2040_zero上のRGB LEDは、GPIOの16につながっている
  1,    # size of underglow pixel
  0,    # size of backlight pixel
  false # 32bit data will be sent to a pixel if true while 24bit if false
)

sleep 1
rgb.effect = :swirl
rgb.speed  = 28

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

kbd.start!

アルバム


Lチカ

基板にLED使っていないので、Waveshare RP2040-ZeroをLチカ。



KEEB_PD

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



JLCPCBのお得な情報

新規ユーザの特典

現在、JLCPCBは新規ユーザは$54クーポンの特典があります。

20230220184842

X(旧Twitter)アカウントフォローの特典

加えてX(旧Twitter)アカウントをフォロー+DM=$10クーポンの特典もあります。


半透明レジンの3Dプリントがはじまりました。
また、CNCも始まりました。



部品情報

talpkeyboard.net

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