sumadoratyper's log : qmk

  1. REALFORCE GX1 Review - RTINGS.com

    Wired 8.1 ms

    4 Chord Split Delay 6.6 ms
    8 Chord Split Delay 15.9 ms

    遅延周りの実装は大分アレっぽいですね. 流石にここまで遅延あると全押しめっちゃ黄ばみそう

  2. REALFORCE R2 Review - RTINGS.com

    Wired 14.0 ms

    4 Chord Split Delay 6.0 ms
    8 Chord Split Delay 21.0 ms

    R2のレビューもあった. 遅延最悪すぎワロタ.

  3. HHKB Studio Review - RTINGS.com

    4 Chord Split Delay 14.2 ms
    8 Chord Split Delay N/A

    This keyboard has inadequate chord split performance and isn't suitable for playing rhythm games.

    HHKB Studioはもっと酷かった. 酷すぎて「計測する価値なし」になることとかあるんだ.

  4. メイドインジャップなキーボードに遅延周りのまともな実装を期待するのはやめるべきだと(DHARMAPOINT/bitFerrousは例外かも). EC Switchのまともなゲーミングキーボードが欲しかったらTopreではなく, GK898B PROを買うかEC60でQMKを使った方が良いでしょう. いやECでもメカニカルと同等のQMK理論値出るのかは知らんが.

  5. Keychron Q5 Max [Q1 Max, Q2 Max, etc.] Review - RTINGS.com

    4 Chord Split Delay 5.6 ms
    8 Chord Split Delay 13.9 ms

    PCB Latency 1msだからeager debounceのはずだけど, なんでchord split delayは酷いことになってるのこれ. ErgoDox EZ (sym_eager_pr)はちゃんとQMK仕様の理論値出てるのに.

  6. Keychron V5 Max [V1 Max, V2 Max, etc.] Review - RTINGS.com

    4 Chord Split Delay 6.3 ms
    8 Chord Split Delay 8.9 ms

    こっちは同じくPCB Latency 1msだけどchord split delayは4kがちょっと遅いものの, 8kは理論値+2ms程度とまともだな.

  7. NuPhy Halo96/Halo75 V2 Review - RTINGS.com

    4 Chord Split Delay 7.6 ms
    8 Chord Split Delay 13.3 ms

    これも酷いことになってるな.

  8. 現状のQMK仕様の理論値ちゃんと出せてるやつとそうでないやつの違い何.

  9. 磁気式(ホール効果)分割キーボードを自作してみた - goropikariの備忘録

  10. 静電容量無接点方式分割キーボードを自作した - goropikariの備忘録

  11. 静電容量無接点方式 corne mini を自作してみた - goropikariの備忘録

  12. 図面の描き方 - Self-Made Keyboards in Japan

  13. 加工限界 - Self-Made Keyboards in Japan

  14. ねじ - Self-Made Keyboards in Japan

  1. Firefox 121.0, See All New Features, Updates and Fixes

    Web Platform

    The :has() selector is now supported. This allows authors to match an element that has, or "anchors", at least one element matching its relative selector.

    The hanging and each-line keywords are now supported for the text-indent CSS property, offering more convenient paragraph layout options for styles such as bibliographies, poetry, etc.

    The balance keyword is now supported for the text-wrap CSS property, which can improve the appearance of short multi-line text blocks such as long headings or captions by harmonizing the line lengths.

    Lazy loading iframes are now supported (<iframe loading=lazy>). Lazy loading iframes are only loaded when visible, so non-critical iframes can load later when needed to speed up initial page loads, reduce initial network usage, etc.

    Support has been added for tail call elimination in WebAssembly language to improve support for functional languages.

    :has(), 正式に対応してたのか.

  2. 声の可愛い女に生まれて美幼女3Dモデル被って何の前触れもなくLove & Justice踊り出して99%のリスナーを置いてけぼりにしたい人生だった……

  3. 男の性欲抜きで美少女コンテンツを享受したい人生だった……と思うことがあるけど, 俺が女だったところで男の娘とTSへの抵抗が一切なくなってるくらいしか違いなさそう. というか同性であることを免罪符にVTuberにセクハラコメしまくったり, ちんぽ生やしてドールとセックスしたいだの言ってそうでアレ.

  4. Hall Effect switches + QMK/ZMK + combos? : ErgoMechKeyboards

  5. Rapid Trigger, BMS的にはどうでもいいし, タイピングには寄与するのだろうけど現状では悲しいことに俺くんの打鍵力が追いついてね──────!!!となるだけだから今組んでもしょうもない.

  6. とはいえ来年中には色々出揃うだろうし, 来年末〜再来年あたりには移行してるのかなあ.

  7. Frog以外叩くとTyping Angle or/and Front Heightがしんどいわ. もうFrogしか使えん.

  8. Croktopus/effective-keyboard-height: Defining a standard method of measuring, sharing, and comparing a custom keyboard's "front height"

  9. How a Matrix Works | QMK Firmware

  10. How Keyboards Work | QMK Firmware

  11. Hugoのテンプレートはほぼ書き終えてる(とりあえずこのまま公開できる状態ではある)し, sumadoratyper.net のCloudflare R2 + Workers構成への移行は30分程度で終わるだろうから, あとは手元・打鍵音を録画して記事を書くだけでいい. QMKの遅延云々は締め切りとかないしまた後日書こう.

  12. 本文は書き終わった. やっぱりできれば今日のうちにQMKの遅延云々も書きたいな.

  13. 録画した. CSSのテスト等兼ねてこっちにも貼っておこう:

  14. RTINGSのSingle-key Latency, WiredとPCB (Estimated)で全然違うじゃん. 杜撰な記事を公開するところだった. 危ね〜.

  15. ErgoDox EZ Review - RTINGS.com

    9.1 Single-Key Latency

    • Best Connection 2.9 ms
    • Best Connection Std Dev ±0.5 ms
    • Wired 2.9 ms
    • Receiver N/A
    • Bluetooth N/A
    • PCB (Estimated) 0.9 ms

    The ErgoDox Ez's latency is excellent; you shouldn't feel any delay while on the desktop or gaming.

    PCB (Estimated) 0.9 ms, これマジ? 強過ぎわろた.

  16. メーカー(謎)の言う新品のスイッチのバウンスが1ms未満って話, 全く信用ならない. というわけでオシロスコープがやっぱり欲しいよ. しかし大したことに使うわけでもなしに数万(それでも廉価品なのだが)は出せん……

  17. 一回なら舎の工作室にオシロスコープ置いてあるから借りればいいんだけど, 手元で色々やりたいのよな.

  18. sumadoratyper.net のNetlifyからCloudflare R2 + Workersへの移行終わった. 所用時間10分程度.

  19. 音ゲー用QMK Firmwareの設定等 | sumadoratyper.net
    公開した.

  20. ぶっちゃけOLEDの更新処理が実際遅延にどの程度影響するのかはちゃんと調べてない🤪 OLEDの更新処理走らせたときにスキャンレートがどの程度落ちるか見ればいいのかな.

  21. ErgoDox EZのChord Split Graph綺麗すぎて爆笑した. 仕様を完璧に再現している.

  1. QMKについて調べてたら俺のツイートとこの日記が出てきた. そうじゃない.

  2. How I got 1ms response times with my Moonlander : ergodox

    Also the slowest part of the moonlander is the scanning of the second half, because of how it's hooked up. That's a big part of why I don't recommend disabling debounce, outright.

  3. ZSA MoonlanderはRTINGSの実測値見るにQMKの中でも遅そうだけど理屈がよくわかってない. Split KeyboardでもErgoDox EZは問題ないっぽいし.

  4. NK Dream Cream, CF Plate届くどころか発送すらされてないから一旦Alu Plateで組んだけどやっぱぺち感強すぎるなちょっと. しょうがないからこれで動画録って記事書くけど.

  1. sym_eager_pr, debounce time 25msで実際どうなるか試してみたけどグロすぎる. 絶対に同時押しで25ms(1ms未満の微妙なずれで24msに見える場合はある)遅延する.

    [14:     wl_keyboard] key: serial: 81223; time: 47068089; key: 38; state: 1 (pressed)
                          sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 81224; time: 47068114; key: 39; state: 1 (pressed)
                          sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 81225; time: 47068158; key: 39; state: 0 (released)
                          sym: s            (115), utf8: ''
    [14:     wl_keyboard] key: serial: 81226; time: 47068182; key: 38; state: 0 (released)
                          sym: a            (97), utf8: ''
    [14:     wl_keyboard] key: serial: 81227; time: 47070181; key: 38; state: 1 (pressed)
                          sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 81228; time: 47070206; key: 39; state: 1 (pressed)
                          sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 81229; time: 47070240; key: 39; state: 0 (released)
                          sym: s            (115), utf8: ''
    [14:     wl_keyboard] key: serial: 81230; time: 47070264; key: 38; state: 0 (released)
                          sym: a            (97), utf8: ''
    [14:     wl_keyboard] key: serial: 81231; time: 47071728; key: 39; state: 1 (pressed)
                          sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 81232; time: 47071753; key: 38; state: 1 (pressed)
                          sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 81233; time: 47071794; key: 38; state: 0 (released)
                          sym: a            (97), utf8: ''
    [14:     wl_keyboard] key: serial: 81234; time: 47071818; key: 39; state: 0 (released)
                          sym: s            (115), utf8: ''
    [14:     wl_keyboard] key: serial: 81235; time: 47072738; key: 38; state: 1 (pressed)
                          sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 81236; time: 47072763; key: 39; state: 1 (pressed)
                          sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 81237; time: 47072824; key: 39; state: 0 (released)
                          sym: s            (115), utf8: ''
    [14:     wl_keyboard] key: serial: 81238; time: 47072848; key: 38; state: 0 (released)
                          sym: a            (97), utf8: ''
    [14:     wl_keyboard] key: serial: 81239; time: 47073581; key: 38; state: 1 (pressed)
                          sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 81240; time: 47073606; key: 39; state: 1 (pressed)
                          sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 81241; time: 47073644; key: 39; state: 0 (released)
                          sym: s            (115), utf8: ''
    [14:     wl_keyboard] key: serial: 81242; time: 47073669; key: 38; state: 0 (released)
                          sym: a            (97), utf8: ''
    [14:     wl_keyboard] key: serial: 81243; time: 47074350; key: 38; state: 1 (pressed)
                          sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 81244; time: 47074375; key: 39; state: 1 (pressed)
                          sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 81245; time: 47074414; key: 39; state: 0 (released)
                          sym: s            (115), utf8: ''
    [14:     wl_keyboard] key: serial: 81246; time: 47074438; key: 38; state: 0 (released)
                          sym: a            (97), utf8: ''
  2. 遅延が生じるのは2キー目だけで, タイマーの共有で入力(送信)受け付けてない間にスキャンしたやつ(キューに溜まってるやつ)はタイマーがリセットされてから順次送信されるのか……? 順次送信なら1ms刻み(Chord Splitの都合)になる気がするんだけど. この辺よくわからん.

    [14:     wl_keyboard] key: serial: 86502; time: 48265866; key: 41; state: 1 (pressed)
                        sym: f            (102), utf8: 'f'
    [14:     wl_keyboard] key: serial: 86503; time: 48265890; key: 38; state: 1 (pressed)
                        sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 86504; time: 48265893; key: 39; state: 1 (pressed)
                        sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 86505; time: 48265895; key: 40; state: 1 (pressed)
                        sym: d            (100), utf8: 'd'
    [14:     wl_keyboard] key: serial: 86506; time: 48265898; key: 45; state: 1 (pressed)
                        sym: k            (107), utf8: 'k'
    [14:     wl_keyboard] key: serial: 86507; time: 48265901; key: 46; state: 1 (pressed)
                        sym: l            (108), utf8: 'l'
    [14:     wl_keyboard] key: serial: 86508; time: 48265903; key: 47; state: 1 (pressed)
                        sym: semicolon    (59), utf8: ';'
  3. ポーリング周りの挙動全然わかってない.

  4. Duplex-Matrixを自作キーボードで使う方法 | e3w2q.github.io

  5. デバウンスアルゴリズムによるコードサイズの差のめも(FM60-H):

    デバウンスアルゴリズムサイズ (bytes)sym_defer_g との差
    sym_defer_g617720
    sym_defer_pr62380+608
    sym_defer_pk62540+768
    sym_eager_pr62476+704
    sym_eager_pk62504+732
    asym_eager_defer_pk62732+960

    sym_eager_pk より sym_defer_pk の方が若干大きいらしい.

  6. スキャンレート計測するために CONSOLE_ENABLE = yes にしないといけないんだけど容量食いすぎでコンパイルに失敗する……

  7. QMKでPro Micro用のファームを小さくする

  8. Reducing firmware size in QMK – Thomas Baart

  9. ここまでやっても失敗する.

    % git diff
    diff --git a/keyboards/geonworks/frogmini/fmh/config.h b/keyboards/geonworks/frogmini/fmh/config.h
    index 7410a49e59..3ae8cd1047 100644
    --- a/keyboards/geonworks/frogmini/fmh/config.h
    +++ b/keyboards/geonworks/frogmini/fmh/config.h
    @@ -28,3 +28,10 @@ along with this program.  If not, see .
    
     #define LOCKING_SUPPORT_ENABLE
     #define LOCKING_RESYNC_ENABLE
    +
    +#define FORCE_NKRO
    +#define DEBUG_MATRIX_SCAN_RATE
    +#undef LOCKING_SUPPORT_ENABLE
    +#undef LOCKING_RESYNC_ENABLE
    +#undef NO_ACTION_ONESHOT
    +#undef NO_ACTION_TAPPING
    diff --git a/keyboards/geonworks/frogmini/fmh/info.json b/keyboards/geonworks/frogmini/fmh/info.json
    index 7b381bc587..ededef5c16 100644
    --- a/keyboards/geonworks/frogmini/fmh/info.json
    +++ b/keyboards/geonworks/frogmini/fmh/info.json
    @@ -8,6 +8,10 @@
             "pid": "0x2D28",
             "device_version": "0.0.1"
         },
    +    "build": {
    +      "debounce_type": "sym_eager_pk"
    +    },
    +    "debounce": 25,
         "matrix_pins": {
             "cols": ["C4", "C5", "B0", "C13", "C14", "C15", "B9", "C1", "C2", "C3", "A6", "A5", "A4", "A0"],
             "rows": ["A3", "A2", "A1", "B8", "A7", "C0"]
    diff --git a/keyboards/geonworks/frogmini/fmh/rules.mk b/keyboards/geonworks/frogmini/fmh/rules.mk
    index 1775ec5c41..df77fe9b76 100644
    --- a/keyboards/geonworks/frogmini/fmh/rules.mk
    +++ b/keyboards/geonworks/frogmini/fmh/rules.mk
    @@ -9,7 +9,10 @@ COMMAND_ENABLE = no        # Commands for debug and configuration
     NKRO_ENABLE = yes          # Enable N-Key Rollover
     RGBLIGHT_ENABLE = no       # Enable keyboard RGB underglow
     AUDIO_ENABLE = no          # Audio output
    -LTO_ENABLE = no
     ENCODER_ENABLE = no
    
     BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
    +
    +LTO_ENABLE = yes
    +SPACE_CADET_ENABLE = no
    +MAGIC_ENABLE = no
    
    % ls -l geonworks_frogmini_fmh_via.bin
    -rw-r--r-- 1 sumadoratyper sumadoratyper 58304 Dec 19 00:29 geonworks_frogmini_fmh_via.bin

    というか LTO_ENABLE = yes ならサイズ的には問題ないはずなんだけど, qmk compile ではエラー吐かれる. ARMだと何らかの副作用があるとかで使っちゃいけないんだっけこれ.

  10. NKROとEXTRAKEYまで無効化してようやくコンパイル通った.

  11. OG60とDZ60RGB_WKLは面倒な真似しなくてもコンパイル通せた.

  12. 計測結果:

    PCBMCUMax Clock Rate (MHz)Debounce AlgorithmScan Rate (Hz, 入力なし)Scan Rate (Hz, ガチャガチャ時)
    OG60RP2040133sym_eager_pk51114952
    sym_defer_pk52385099
    FM60-HSTM32F40184sym_eager_pk40903101
    sym_defer_pk40003102
    DZ60RGB-WKLATmega32U416sym_eager_pk20971775
    sym_defer_pk20971781

    defer/eagerでスキャンの差はほぼなしと. DZ60RGB_WKL V2.1は前に計測したときよりなんか大分良くなってるね. 以前は1,300Hzくらいだった. FM60-Hだけガチャガチャすると大幅に落ちるのはなんだろ.

  1. 流石に乾いただろうということでDiamond-Polished Switch組み立ててしばいてみてるけど, 「失敗」したのか「好きじゃない」のかわからんなこれ…… 「お手本」がないからなあ.

  2. ボトムハウジング内部を洗浄しきれてないのがよくない気はする. やっぱりまた何度か超音波洗浄器にぶち込んで入念にやるしかないか.

  3. ステムだけDiamond-Polishedなやつにしてみるのは全然違和感ないし純粋に品質向上してるな. これはMX BrownもDream Creamも滅茶苦茶良い! やっぱりリーフがおかしくなってるわけだが.

  4. ステムだけ研磨……Unlubed Cherry MX2Aってコト!?

  5. Broken-in Unlubed Cherry MX2A Brownが最適解かもしれん. MX2Aがリーフに手を加えてないのは「正解」なのかもな.

  6. ダイヤモンド研磨自体が無駄ってことはなくて, ステムだけはやるべきだね. ハウジングはノータッチの方が良さそうかなあ…… ステムの研磨はノーリスクだし, 他のパーツ全てと接触するから絶大な効果がある.

  7. 流石にCherry MX2A買うべきだなこれ. 考えなしにあの設計になったわけではなく突き詰めた結果な気がしてきた. ルブ以外.

  8. とりあえずPre-Hyperglide Brownの残骸が大量にあるからそれ使ってステムだけ研磨するか. 一応取っておいたけど役に立つときがくるとはな.

  9. Diamond-Polished Stems Novelkeys Dream Cream w/ TX 15mm 60gf

  10. Diamond-Polished Stems Broken-in Cherry MX Hyperglide Brown w/ Gateron KS-3 Milky Pro Top & TX 15mm 60gf

  11. 長すぎる.

  12. 一旦Diamond-Polished Stems NK Dream Creamのルブについて考える. Spring -> Legs -> Rails -> Poleの順で本当に必要な分だけ追加する感じで.

  13. 雑にルブしても超音波洗浄後ドライブースにぶち込んでおけば2時間後には使えるようになるから気楽でいいわ.

  14. 1,500円のルブステーションまーじ使いやすい. 右上のスイッチ分解スペースが普通に有能すぎる.

  15. (Dream) Creamは元がうるさいからルブでミュートに寄らせて丁度良いかもしれん.

  16. Poleまで塗るの好みじゃないな. ルブの味が強すぎるしミュートに寄りすぎだし感触も鈍い. 不快. Railsまでにしておこう.

  17. Dream Cream, 600k+ actuationsを経てもなおリーフが鳴るやつあるから個体選別した方がいいっぽいなあ…… でもハウジング8個破壊したから4個しか余裕ないんだよね.

  18. MX2A買ってそっちをBreak-inするか…… Taobao以外で買えるところないのかな. Taobaoは以前決済通らなかったときのトラウマが……

  19. トップハウジングは別にKS-3 Milky ProじゃなくてCherryのままでも別にいいか…… 色々と不毛だな. と一瞬思ったけどやっぱり絶対に必要だと思い直した. Cherry Topに戻した途端MX Brown特有のジャリ感が強くなった.

  20. 一旦ステム研磨済みのものだけSilverの方に載せてGMK Oblivion V3.1 + HineyBeige HIBI Artisanを被せてみた.

  21. GMKそんな良いものかねと思ってたけど滅茶苦茶良いわ. 音の響きが良いし, Staebiesが問題なく使えるのも神すぎる.

  22. いやGMK + Staebiesのスペースバーの打鍵感神すぎワロタ. これだけでGMK買う価値あるわ. もうGMK以外買う気しねえまである. 本家Cherryの金型最強!

  23. くそ〜PBT信仰とかせずにGMK Archの必要なセット全部揃えられるうちに買っておけばよかった.

  24. ただGMK Arch, Vim Setの在庫がどこにもないのは一旦置いといて, 今更買ったとして灰色気味だからOblivionと若干キャラ被りしてるし, Navy CaseにはePBT Be The Oneの方が合ってんだよな.

  25. Amazonのベストセラー1位商品を非破壊検査して「説明内容と異なる詐欺的代物」であることを暴くあまりに猛者過ぎるカスタマーレビューが登場し話題に - GIGAZINE

  26. Amazon | オーム電機 超音波洗浄機 500ml 43000Hz SEN-U210R 08-3871 OHM | 超音波洗浄機 | 産業・研究開発用品 通販
    俺が使ってるのはこれ. よくわからんメーカーのはモーターで振動させてるだけなのがあるって聞いたから国内の知ってるメーカーのやつにしておいた.

  27. アレ…… QMKってChord Splitのはずだよね? なんで完全な同時押し入ってるんだこれ.

    [14:     wl_keyboard] key: serial: 6006; time: 1895057; key: 40; state: 0 (released)
                        sym: d            (100), utf8: ''
    [14:     wl_keyboard] key: serial: 6007; time: 1895057; key: 39; state: 0 (released)
                        sym: s            (115), utf8: ''

    PCBはFM60-H, QMKは工場出荷時からいじってないやつ.

  28. FORCE_NKRO, sym_eager_pk, debounce time 25msで焼き直したものでも再現したし, pressed/releasedのどちらでも同時に入る場合がある.

  29. Chord Splitなら125Hzの場合に8ms刻みになるはずなんだよね. ということで125Hz (USB_POLLING_INTERVAL_MS 8)にして試してみた:

    [14:     wl_keyboard] key: serial: 10006; time: 2561709; key: 41; state: 1 (pressed)
                        sym: f            (102), utf8: 'f'
    [14:     wl_keyboard] key: serial: 10007; time: 2561717; key: 44; state: 1 (pressed)
                        sym: j            (106), utf8: 'j'
    [14:     wl_keyboard] key: serial: 10008; time: 2561725; key: 40; state: 1 (pressed)
                        sym: d            (100), utf8: 'd'
    [14:     wl_keyboard] key: serial: 10009; time: 2561733; key: 38; state: 1 (pressed)
                        sym: a            (97), utf8: 'a'
    [14:     wl_keyboard] key: serial: 10010; time: 2561741; key: 39; state: 1 (pressed)
                        sym: s            (115), utf8: 's'
    [14:     wl_keyboard] key: serial: 10011; time: 2561749; key: 45; state: 1 (pressed)
                        sym: k            (107), utf8: 'k'
    [14:     wl_keyboard] key: serial: 10012; time: 2561757; key: 46; state: 1 (pressed)
                        sym: l            (108), utf8: 'l'

    当然8ms刻みだな……

  30. Keyboard input - ArchWiki

  31. Wayland側の問題だよなと思って wevevtest の出力にらめっこしようとしたけど狙って再現しようとしてもできなくて……

  32. 1,000Hz/1ms刻みでレポートしてるのはわかるな.

    [14:     wl_keyboard] key: serial: 1413; time: 5815727; key: 41; state: 1 (pressed)
                        sym: f            (102), utf8: 'f'
    [14:     wl_keyboard] key: serial: 1414; time: 5815728; key: 45; state: 1 (pressed)
                        sym: k            (107), utf8: 'k'
    [14:     wl_keyboard] key: serial: 1415; time: 5815730; key: 65; state: 1 (pressed)
                        sym: space        (32), utf8: ' '
    Event: time 1702110728.529504, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70009
    Event: time 1702110728.529504, type 1 (EV_KEY), code 33 (KEY_F), value 1
    Event: time 1702110728.529504, -------------- SYN_REPORT ------------
    Event: time 1702110728.530502, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7000e
    Event: time 1702110728.530502, type 1 (EV_KEY), code 37 (KEY_K), value 1
    Event: time 1702110728.530502, -------------- SYN_REPORT ------------
    Event: time 1702110728.532503, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002c
    Event: time 1702110728.532503, type 1 (EV_KEY), code 57 (KEY_SPACE), value 1

    1,000Hzといってもμms単位のずれはあるんだなーと. そりゃそうだけど.

  33. わからん. お手上げ.

  34. ガチ押し譜面で理論値出せるようなプレイヤーのイベントログ見てみたいなー. 同時押しの精度実際どの程度なのか(Chord Splitが問題になるレベルなのか)気になる. と思ったけどゲーミングキーボードでも普通にChord Split Delayはあるわけだしログに出力されるのも遅延した結果だから意味ねえわ.

  35. 結局Gateron X R2も欲しくなってきた .

  36. 上段にクリッキー(Lotus Stem Clicky)挿さってる状態でBMSやると擦りミスみたいなことしまくってるのがわかるな. 押下までいかなくとも若干掠っただけでクリック音鳴る.

  37. おい! 今更Cherry MX Speed Silver打ちやすいみたいに思い始めるのやめろ!

  1. Skebやってる同人声優にオナサポ音声依頼しようか二ヶ月くらい迷ってる. その手の背徳感込みでシコるのは流石にライン(謎)越えてないか?と. しょうもなすぎる.

  2. 台本書くのが恥ずかしいとか自分で書いたもので抜けないとかではない. 俺は小学生の頃からエロパロ板をV2Cで開いてたんだ.

  3. 頭撫でてくれるマイクいじり女って案外いないよな.

  4. 韓国のTwitchがサービス終了する件について、韓国国内の事情を詳しく話しながら説明するKH - YouTube

  5. org-modeのtableでセル結合したい · Issue #3 · emacs-jp/issues
    できないみたい……

  6. キーキャップ総合スレ 10

    350不明なデバイスさんsage2023/11/29(水) 13:34:25.47ID:sdTAOiSx(1/1)
    メーカーによってスペースキーの設計や精度が異なり過ぎじゃない?
    Staebiesだけでなく、タイトなスタビだとステムとハウジングの位置が合ってなくて動きが鈍い。
    PCBの穴やプレートの切り欠きに余裕があるとハウジングの位置を調整できるけど。
    いろいろ試したけどスペースキーはGMKが無難だね。まず問題がない。

    351不明なデバイスさんsage2023/12/01(金) 11:56:18.67ID:MPg3Whed(1/1)
    そこは流石Cherryの金型もってるGMKなんやね

    GMKならStaebiesでも問題ないのかな. 純粋な感触でいえばStaebiesの方がTXより好きなんだよな.

  7. おー, 確かに問題なさそう! Staebiesで組むか.

  8. 洗浄した軸, センターマスト内の水分が中々しぶとい.

  9. qmk_firmware/docs/feature_debounce_type.md at master · qmk/qmk_firmware

    sym_eager_pr is suitable for use in keyboards where refreshing NUM_KEYS 8-bit counters is computationally expensive or has low scan rate while fingers usually hit one row at a time. This could be appropriate for the ErgoDox models where the matrix is rotated 90°. Hence its "rows" are really columns and each finger only hits a single "row" at a time with normal usage.

    昨日の#4の件, 理解しました.

  10. 俺がキーボードパーツ買い終わった途端ドル円下がり始めるのやめてくれん?

  11. ドール関係でなんか使い道あるだろそのうちきっとと言い聞かせて山善のドライブースぽちった.

  12. ドールに淫紋付けたい. この世にサキュバスは存在するって証明する.

  13. 1,500円のルブステーション, 梱包のウレタン?がそのまま滑り止めとして使えることに気付いた. というよりこれはルブステーションの一部な気がする. 捨てなくてよかった.

  14. 洗浄したスイッチ, 埃とか色々付着したらやだしそもそも置く場所がねえと思ってマスク用の洗濯ネットに入れて干してたけど全然乾かね〜. ドライブース必要だわ.


  15. 一度組み立ててどんな感じか確認してみたけどなんか変な音がする. なんか失敗したのかボトムハウジング内部が完全に乾いてないせいなのかよくわからん…… やっぱドライブース必要だ.

  16. 仮に失敗してるとして, Broken-in Nixieは問題生じてないからBreak-in Machineに問題があったわけではない. 思い当たることがあるとしたら水溶性のペーストを塗布後一晩置いてからBreak-inを開始したことだな. 水溶性のやつを一晩置いて大丈夫なのかとは思った.

  17. でもNK Creamの擦れが明らかに改善されてるのはわかるな. 壊したとしたらリーフなわけだが……

  18. 除去しきれなかった研磨剤の残りカスは乾燥させる前に取った方がいいのか? 乾燥した後だとこびりついてマイクロアプリケータで除去できない場合がある. もう一度超音波洗浄器にぶち込んだ方がいいかも. でも大丈夫, ドライブースがあるから.

  19. ドライブース届くの明後日だけどな.


  20. ガワの動き良い個人勢の縦型配信ええな. 萌えだ.

  21. 「三次元の人間の身振り手振り表情をLive2Dフィルタに通して出力されたもの」, 好き.

  22. 一年くらい散髪してないんだけど, 髪下ろすとメイプルストーリーのニューゼンみたいになる. 顔6ではないが.

  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. テンプレート書くのめんどくせ〜.