はじめに
最近、1キーのキーボード(?)が気になっています。
先々週のisopad に続いて、今週末はwonkyを組立てました。
wonkyは40%keyboardさん設計の1キーのキーボードで、マイコンボードはSeeed Studio XIAO SAMD21(Seeeduino XIAO)を使っています。
Seeed XIAOシリーズは、Seeed Studio XIAO RP2040に加えて、Seeed Studio XIAO nRF52840(XIAO BLE) が技適を取得、先日Seeed Studio XIAO ESP32C3が発表されました。Bluetoothに加えてWifiまで使えるようになります。
そして、電源ピン配置と形状互換があるため、同じ基板でマイコンボードを差替えて使えるのが何より嬉しいですね。
といっても私は、有線を優先します。
データの入手方法
基板のガーバーデータは、gitにからダウンロードできます。
ライセンス
CC BY-SA 4.0 Deed | Attribution-ShareAlike 4.0 International | Creative Commonsで公開されています。感謝します。
基板の発注
基板は(いつもの)JLCPCBへ発注しました。
JLCPCBは、PCB(プリント基板)を5枚2ドルから作れるのに加えて、日本の新規ユーザーは30ドルのクーポンがもらえます。
それ以外に現在7ドルクーポンが使えます。
追伸:「JLCPCB$7」クーポンのコードは健在です!!https://t.co/FFKzF0FTzT
— JLCPCB日本 (@JLCPCB_Japan) 2022年2月19日
送料は、Standard Global Direct Line敷居値3.9ドルを有効に使った結果、基板は1mm厚30枚で6.3ドルでした。
最近標準の1.6mmだけでなく1mmも同じ値段で作れるようになっています。
小さい基板を作るときに便利になっています。
基板の色で変わりますので、注意してください。(黄色が高くなった記憶あり)
一番送料が安いStandard Global Direct Lineを指定5月16日に発注して、28日に受取りました。
基板データレビューは、ダウンロードしたデータそのままですんなりと終わりました。
組立
wonkyは黒で仕立てようと部品を集め、マイコンボードはXIAO RP2040を使いました。
ピン配置
XIAO RP2040を使ったので、40%clubの下の記述から、どのGPIOピンを使うか確かめます。
念のためにテスタを使って、配線を確かめます。
It uses only 3 of the pins on the XIAO. D1- switch, D2-LED, D3-WS2812B.
同じシリーズ名、電源ピンが同じなので、特に注意するピンはありません。
ハンダ付け
オリジナルの設計では、WS2812Bの電源を5Vから取っていますが、RP2040の出力電圧を考慮して3.3Vに繋ぎ変えました。WS2812Bの仕様外となりますが、今後3.3Vを使う工作が増えると考えて実績を積んでいきます。
基板にXIAO RP2040を載せるとき、5Vにピンヘッダを入れない(接続しない)ようにして、元々5Vが流れていたWS2812BのVDD配線に3.3Vを供給しました。
WS2812Bの▽マークは3番ピン、基板の白丸は1番ピンの印です。
WS2812Bはハンダ付けが難しい上にwonkyはベタグランド(格子状)が効いているので、特に3番ピンにハンダが載りにくくなっています。
3番以外のピンをハンダ付けして、固定した後に3番ピンをハンダ付けしたほうが位置ずれし難いのでお勧めです。
ファームウエア
ファームウエアは(今回も)PRK Firmwareを使いました。
PRK_Firmwareは、uf2のインストールに1回とkeymap.rbに1回のドラッグ&ドロップで簡単に動かすことができます。
ファイルのダウンロードとドラッグ&ドロップ、必要なのはテキストエディタだけです。
オリジナルのSeeeduinoとRP2040を下の表のように読み替えます。
Seeeduino XIAO | XIAO RP2040 | |
---|---|---|
switch | D1 | P27 |
switch_LED | D2 | P28 |
WS2812B | D3 | P29 |
keymap.rb
コメントは、ボードのLEDを試したものを残しています。
# Initialize a Keyboard kbd = Keyboard.new # wonky XIAO-RP2040 GPIO_OUT = 1 HI = 1 LO = 0 # XIAO-RP2040は、GPIOの25番が # ボード上のUSE_LEDのカソードにつながっている # XIAO RP2040のWS2812Bは12番 # NEO_PWR = 11 XIAO-RP2040 USE_LED = 25 WS2812B_DIN = 29 SW_LED = 28 # そのピンを初期化 # gpio_init(NEOPIX) # gpio_init(NEO_PWR) gpio_init(SW_LED) gpio_init(USER_LED) # そのピンを出力ピンとして設定 # gpio_set_dir(NEOPIX, GPIO_OUT) # gpio_set_dir(NEO_PWR, GPIO_OUT) gpio_set_dir(SW_LED , GPIO_OUT) gpio_set_dir(USER_LED , GPIO_OUT) # gpio_put(NEOPIX, HI) # gpio_put(NEO_PWR, LO ) gpio_put(SW_LED , HI ) #ON gpio_put(USER_LED , HI ) #OFF # Initialize GPIO assign kbd.init_pins( [ 24 ], # Dummy XIAO-RP2040 GPIO24 NC_PIN [ 27 ] # wonky XIAO-RP2040 ) # default layer should be added at first kbd.add_layer :default, %i[ KC_A ] # Initialize RGB class with pin, underglow_size, backlight_size and is_rgbw. rgb = RGB.new( WS2812B_DIN , # pin number XIAO RP2040のWS2812Bは12番 4, # 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!
記念撮影
週末KEEB_PDにツイートすること目標に動いている。
I'm not wonky, am I?
— 𝕜urihara (@kurihary) 2022年5月29日
Keyboard: wonky ,XIAO RP2040
Switch: Gateron CAP ブラッククリスタル V2 Blue
Keycap: Homyl 104 key DIY black transparent keycap#KEEB_PD #KEEB_PD_R98 #prk_firmware pic.twitter.com/7bAuhbusuI
お得なキャンペーン情報
最近は、コントローラボードの作例にキーボードが増えて嬉しいですね。
Seeed XIAO RP2040
お一人様1デザインにつきPCBAボード2枚まで100%無料とさせていただきます。
カスタムデザインには、Seeed XIAO RP2040が含まれている必要があります。
https://blog.fusionpcb.jp/blog/?p=2679blog.fusionpcb.jp
www.seeedstudio.com
XIAOメカニカルキーボードコンテスト
入賞すると$1000クーポン!!
youtu.be
www.fusionpcb.jp
余り基板の処分
wonkyの余り基板を捨てるのはもったいないので、匿名で処理が簡単なメルカリを使って配布します。
2枚組で逐次出品して行きますので「自作キーボード」「wonky」で探してください。