sumadoratyper's log : 2023-12-07

  1. QMK Firmware を色々改造して最強の Corne Cherry を仕立てる - 壁ツェーン

    Performance Mode

    あんまり気にする人いないと思うんですが、OLED の更新ってそこそこ時間かかるんですよね。それがキー入力のレイテンシーに影響するとなると音ゲーするときちょっとやだなあと思って、 OLED の更新を完全に止めるモードを実装しました。

    こう書くと簡単そうですがやってみると意外と大変で、更新を止めたはずなのに勝手に再開してしまうという現象に数時間悩まされました。結果からいうとこれは oled_active 変数周りの挙動の仕様で、OLED の自動消灯がビルドオプションで有効になっている場合ループ毎に毎回 oled_on が走るという罠にも程がある挙動をしていました。いやまあわかるけどさ……。

    この変数だけを使っていたのではどうにもならなさそうだぞ、ということで oled_driver.c に追記して oled_paused という変数を新たに導入、これが true の間は OLED に I2C でコマンドを送信する関数は全て即座に終了するという感じにしました。これでようやく所望の動作になりました。

  2. Keychron C1 Pro/C2 Pro Review - RTINGS.com

    4 Chord Split Delay
    2.9 ms
    8 Chord Split Delay
    7.2 ms

    現状のQMK仕様のほぼ理論値出てるね.

  3. ErgoDox EZ Review - RTINGS.com

    4 Chord Split Delay
    2.9 ms
    8 Chord Split Delay
    7.5 ms

    こっちもほぼ理論値に近い.

  4. qmk_firmware/keyboards/ergodox_ez/info.json at 834fb0b1fe47d20aac27eda39f165b96fe4ddaa6 · qmk/qmk_firmware

    "build": {
        "debounce_type": "sym_eager_pr"
    },
    "ws2812": {
        "pin": "D7"
    },
    "rgb_matrix": {
        "driver": "is31fl3731"
    },
    "processor": "atmega32u4",
    "bootloader": "halfkay",
    "debounce": 30,
    

    QMK Firmwareなキーボードの中でErgoDox EZだけSingle-key Latency小さいのは工場出荷時点でEager Debounceに直してあるんだろうなと思ったけど案の定. sym_eager_pk じゃなくて sym_eager_pr なのはなんでだろう. ATmega32U4だから負荷小さい方を選んだのかな? DZ60RGB-WKLでは sym_eager_pk でもScan 1,300Hz出てたから問題ないと思うけど.

  5. 何度も書いてるけど高性能なMCU積んだところで本当に誤差でしかないな. Single-key Latencyや8k Chord Split Delayが精々~0.5ms減る程度. ATmega32U4で十分.

  6. notes.sumadoratyper.net で公開予定の『音ゲー用QMK Firmwareの設定等』に載せるデータを纏めてるけど, ゲーミングデバイスメーカーのhypeは酷いなあと思う次第であります. Polling Rate 8,000Hzとか音ゲー的にはマジで何の意味もないし, 光学スイッチがメカニカルスイッチより速いみたいなのも大嘘.

  7. 一部抜粋:

    KeyboardFirmwarePolling Rate (Hz)Single-key Latency (Wired, ms)4k Chord Split Delay (ms)8k Chord Split Delay (ms)Notes
    Corsair K70 MAXN/A8,0004.44.56.8磁気スイッチ, ラピッドトリガー
    Keychron C1 Pro/C2 ProQMK1,0009.42.97.2STM32L432KB (80MHz)/STM32F402RC (84MHz)
    ErgoDox EZQMK1,0002.92.97.5ATmega32U4 (16MHz), sym_eager_pr, debounce time 30ms
    EVGA Z20N/A4,0002.25.58.6光学スイッチ
    Corsair K65 PRO MININ/A8,0000.85.18.7
    ZSA MoonlanderQMK1,00011.23.08.9STM32F303 (72MHz)
    Corsair K70 PRO MINI WIRELESSN/A8,0001.24.79.0
    ASUS ROG Strix Flare II AnimateN/A8,0002.25.39.0
    Razer Huntsman V2N/A8,0000.95.99.6光学スイッチ
    Keychron Q Pro Series [Q1 Pro, Q2 Pro, etc.]QMK1,0009.04.29.7STM32L432 (80MHz)
    Razer BlackWidow V4 ProN/A8,0001.76.19.7
    Razer BlackWidow V4 75%N/A8,0001.64.59.8

    仕様上Chord SplitなQMKより遅延してるPolling Rate 8,000Hzさん……w いやマジでこれ詐欺だろ. 訴えていいか?

    Razer Huntsman V2の値が間違っていた(テーブルがずれていた)のを修正しました.

  8. Break-in Machine, 3時間 ≒ 54k actuations回し終わった. 一応様子見ながら回してたけど, 少なくとも3時間連続で回しても全く問題ないみたい. というか1時間半と3時間の時点でモーターの温度に変化なかったからもっと長時間回して大丈夫だと思う.

  9. Broken-in Nixieは…… ThereminGoatの言う通り120kくらいまではまあ改善の余地ありそうだなって感じ. 50k程度じゃ不十分っすね.

  10. さて洗浄と乾燥ですよ……

  11. 水溶性ペースト + 超音波洗浄器でも完全には取れないようだ. 特にボトムハウジング. 諦めて乾燥させてからマイクロアプリケータで除去しよう.

  12. 箸ネイティブで良かった. パーツ取るのにめっちゃ便利.

  13. しかしバネが全く汚れてないあたりドームとの接触は皆無ってことよな. いや知ってるけど. MX2Aでドームが研磨されてるのはマジで何なんだ……?

  14. 流石にドライブースはいいわ. 小さい洗濯ネット(ダイソーのマスク用のものを使用)に入れて振って水切って干しておけば明日には組み立てられるでしょう.

  15. Diamond-Polished NK Dream Creamを先に作った方がいいか. 一旦それをDZ60RGB-WKL/Frog Mini HHKB Navyに載せて使えるようにする. 使えるキーボード一枚できてからDiamond-Polished Cherry MX Brownを作ってFM60-Sに半田付け, Frog Mini HHKB Silverに載せて完成させる. そうするとNK Dream Creamを半田付けしてる最中でもまともに使えるキーボードができる.

  16. 色々と分散してるの面倒だしやっぱりこの日記以外は全部 sumadoratyper.net 以下でやるか.

  17. テンプレート書くのめんどくせ〜.