Helixという自作キーボードを作った際のメモです。
いいところ・悪いところ
いいところ
- 左右分離キーボード、間に皿を置くことで、食事中もPCができる!!! (新たな発見…絶対需要ある)
- 人生において「キーボードを自作した」という実績を解除できる
- 好きなスイッチを、毎日好きなだけ押せる
悪いところ
- 基板を左右別々に専用のものにしたほうが分かりやすそう
- チップLEDのハンダ付けは確かに初心者向けではない…LEDの予備が片手毎3つしかないことを考えると、あまり練習もできない
どうでもいいところ
- ソフトウェア・インフラ・ネットワークエンジニアの人でIoTに手を出した人の集まりと、組み込み系エンジニアでIoTに手を出した人の集まり、全然繋がりがなさそう
購入
遊舎工房で購入
説明文に以下のようにあるように、いくつかの部品を別に購入する必要があります。
組み立てにはこの他にキースイッチとキーキャップが必要です。 また左右の接続の為のTRRSケーブルと、PCと接続するためのUSBケーブルが別途必要です。
私は、キースイッチとしてKailhロープロスイッチを買いました。 5行版はキーが64個必要だったため、割とバカにならないお値段になってしまいました。
キーキャップには「Kailh用刻印あり」のものを購入しました。 作っていて分かりましたが、Helixは、例えTab, Shift等のキーでも全部キー幅が同じなのですが、このキーキャップはTab等は幅が異なるため、一部使えないです…。
作成
ビルドガイド
詰まった点:
- 本当にダイオードとLEDは裏面からの実装で良いのか不安になる(本当にそれでいい)
- LEDのハンダ付け(後述)
- アクリル板の保護シートを剥がし忘れた
- Arduino Pro Microへの書き込み(後述)
- 左右どっちにUSBケーブルを接続すればよいのか分からない(答え:左?。少なくとも基板上で指定する場所はなく、ソフトウェアで認識?)
やっといたほうが良いこと:
- ダイオードは片側だけハンダ付けしてカソードが正しいことを確認
- LEDは全部付けたら点灯を確認
- キーキャップは1列付けたくらいで認識することを確認(後述)
(参考)作業環境
- はんだごて:goot RX-802AS(昔買った高いやつ…温調。こて先はRX-80HRT-2B)
- はんだ:有鉛 φ0.6mm(http://www.elepla-shop.net/oc/index.php?route=product/product&manufacturer_id=21&product_id=177)
- ピンセット:安いやつ
LEDのハンダ付け
温度
LED(SK6812MINI)は、素子の樹脂が高温だと溶けてしまうので、本当に220度程度でのハンダ付けが必要です。
LEDのデータシート p.10を見てみると、リフローはんだ付けでの最高温度(Tp)は、有鉛で215℃、鉛フリーで255℃となっています。 そのため、私はコテ温度を245℃にしてハンダ付けしました(1つの故障もなくできました)。
https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf
結局、以下のようにやると効率が良かったです:
- まずは基板側のランドすべてに予備ハンダ
- 低温にしてLEDをハンダ付け(この際、GNDはベタグラウンドに熱を奪われるため、最後に付ける)
高さ調節はしませんでした。そもそもLED全部が基板の穴に押し込めないようになっているため。
動作確認
- 一旦片手分を全部ハンダ付け(Arduinoに近い側のN個だけでも良いかも?) → ファームウェア書き込み済み のArduino Pro Micro(スプリングピンヘッダ使用のため基板に抜き差し自由)をUSB接続すると可能
(※逆に、LEDごとに電圧をかけて動作確認が出来なさそうです。∵このLEDはDinにデジタルデータ入力が必要)
キーの動作確認
1行ごとに、キーの入力有無を視認できるソフト(kbv:https://forest.watch.impress.co.jp/docs/review/1068076.html)で確認
Arduino Pro Microへの書き込み
Windows機で普通にできました。
参考:ファームウェアの書き込みガイド
書き込みタイミング
- Helix基板上のResetボタンを 二度 押し
- リセット後8秒程度だけ、Bootloaderとして認識される(QMK上でもCaterina device connected: Arduino Micro bootloader (COM8)のように表示されるはず…ただつなげたり、8秒経つとArduino Micro (COM7)のようになる)(2020/07/05 補足 必ずしもデバイス認識音が鳴るとは限らない)
- 間髪を入れずFlashボタンを押す
最初戸惑うかも。デバイスマネージャも見ながらやるといいかも
2020/07/05 補足
リセット時のデバイスマネージャ画面を録画してみました。参考にしてみてください。
失敗時のログ:Arduino Microとして認識された場合
*** Caterina device connected: Arduino Micro (COM7) -- 0000:0000:0000 {4d36e978-e325-11ce-bfc1-08002be10318}
*** Caterina device connected: USB 入力デバイス -- 0000:0000:0000 {745a17a0-74d3-11d0-b6fe-00a0c90f57da}
*** Caterina device connected: USB Composite Device -- 2341:8037:0008 {36fc9e60-c465-11cf-8056-444553540000}
*** Attempting to flash, please don't remove device
>>> avrdude.exe -p atmega32u4 -c avr109 -U flash:w:"C:\Users\***\Desktop\helix_rev2_default_oled_backlight.hex":i -P
C:\Users\***\AppData\Local\QMK\QMK Toolbox\0.0.10\avrdude.exe: option requires an argument -- P
Usage: avrdude.exe [options]
Options:
-pRequired. Specify AVR device.
(中略)
-? Display this usage.
avrdude version 6.3, URL: http://savannah.nongnu.org/projects/avrdude/
成功時のログ:Arduino Micro Bootloaderとして認識された場合
*** Caterina device connected: Arduino Micro bootloader (COM8) -- 2341:0037:0008 {4d36e978-e325-11ce-bfc1-08002be10318}
*** Attempting to flash, please don't remove device
>>> avrdude.exe -p atmega32u4 -c avr109 -U flash:w:"C:\Users\***\Desktop\helix_rev2_default_oled_backlight.hex":i -P COM8
avrdude.exe: warning at C:\Users\***\AppData\Local\QMK\QMK Toolbox\0.0.10\avrdude.conf:14976: part atmega32u4 overwrites previous definition
C:\Users\****\AppData\Local\QMK\QMK Toolbox\0.0.10\avrdude.conf:11487.
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% -0.00s
avrdude.exe: Device signature = 0x1e9587 (probably atmega32u4)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "C:\Users\fenrir\Desktop\helix_rev2_default_oled_backlight.hex"
avrdude.exe: writing flash (27572 bytes):
Writing | ################################################## | 100% 2.07s
avrdude.exe: 27572 bytes of flash written
avrdude.exe: verifying flash memory against C:\Users\fenrir\Desktop\helix_rev2_default_oled_backlight.hex:
avrdude.exe: load data flash data from input file C:\Users\fenrir\Desktop\helix_rev2_default_oled_backlight.hex:
avrdude.exe: input file C:\Users\fenrir\Desktop\helix_rev2_default_oled_backlight.hex contains 27572 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 0.27s
avrdude.exe: verifying ...
avrdude.exe: 27572 bytes of flash verified
avrdude.exe done. Thank you.
*** Caterina device disconnected: Arduino Micro bootloader (COM8) -- 2341:0037:0008 {4d36e978-e325-11ce-bfc1-08002be10318}