คีย์บอร์ด N-Key Rollover (NKRO) และ input latency ของ gaming
สรุป (TL;DR)
ใน training mode ของ Street Fighter 6 พิมพ์ shoryuken ของ Ryu ต่อเนื่องเร็วด้วย membrane keyboard ราว 30 ดอลลาร์ที่ไม่มี diode บ่อยครั้งเจอว่า “ใส่ motion DP ชัดเจน แต่ตัวละครไม่ขยับ” ปรากฏการณ์ที่ controller ดรอป input ทั้งชุดหรือรับผิดคีย์เมื่อกดชุดเฉพาะเรียกว่า ghosting และจำนวนคีย์ที่จัดการพร้อมกันได้เพื่อเลี่ยงเรียกว่า rollover keyboard membrane ราคาถูกทั่วไปรับรู้เพียง 2–3 คีย์อย่างเสถียร keyboard mechanical ส่วนใหญ่รับประกัน 6KRO (6 คีย์ + modifier) ตาม USB HID boot protocol N-Key Rollover (NKRO) จริงต้องใช้ full HID report แยกหรือ customize USB descriptor polling rate 125/500/1000/8000 Hz พบบ่อย ใน gaming 1000 Hz เป็นมาตรฐาน แต่ความต่างที่รู้สึกเหนือกว่านั้นต่างตามคน ควร verify ด้วยการวัดจริง บทความนี้สรุปความต่าง 1KRO·6KRO·NKRO ช่วง latency ที่ polling rate ส่งผล และวิธียืนยัน “สภาพจริงของ keyboard ของคุณ” ด้วย browser-based rollover test·polling rate monitoring
ภูมิหลังและแนวคิด
ภายใน keyboard switch เชื่อมเป็น matrix (grid) controller scan row·column เร็วๆ ว่าใด pressed โครงสร้างนี้ง่ายแต่มีข้อเสีย ตามชุดคีย์ที่กดพร้อม หาก signal path ตัดกัน controller อาจสับสนว่า “คีย์ที่ไม่ได้กดจริง” ถูกกดด้วย คือ ghosting เพื่อกันต้องเพิ่ม diode ในแต่ละ switch ให้กระแสไหลทางเดียว keyboard ราคาถูกที่ไม่มี diode support ชุดคีย์พร้อมกันได้จำกัดเชิงโครงสร้าง keyboard analog Hall effect switch เช่น Wooting 80HE ใส่ magnetic sensor แยกที่แต่ละคีย์ตั้งแต่ต้น เลี่ยง matrix เอง
USB HID spec กำหนด boot protocol ที่ทำงานในสภาพ boot ใช้ report ขนาดคงที่ที่ report ได้สูงสุด 6 คีย์ปกติ + modifier จึงทำงานใน BIOS·bootloader ด้วย แต่ report เกินต้อง extend โครงสร้าง ผู้ผลิต implement NKRO ใน 2 วิธีหลัก หนึ่ง HID boot 6KRO + NKRO toggle (physical switch หรือ software toggle) สอง bitfield-based report เป็น default ไลน์ Razer Huntsman หรือ Corsair K70 ใกล้แบบแรก Wooting และ keyboard firmware custom (QMK/VIA) ใกล้แบบหลัง
polling rate หมายถึง host ถามสถานะของ keyboard บ่อยแค่ไหน 125 Hz ทุก 8 ms, 1000 Hz ทุก 1 ms เร็วกว่าความ latency theoretical ลด แต่ debounce time ของ key switch และ scan cycle เองมักส่งผลใหญ่กว่า 500–1000 Hz ขึ้นไปแยกความต่างทางความรู้สึกยาก
เปรียบเทียบและข้อมูล
| เกณฑ์ | 1KRO | 6KRO | NKRO |
|---|---|---|---|
| อุปกรณ์ที่พบบ่อย | membrane ราคาถูก, terminal เล็กบาง | ค่าเริ่มต้นของ USB keyboard ส่วนใหญ่, HID boot mode | mechanical·gaming ระดับกลาง-สูง |
| วิธียืนยัน | กดพร้อม 2–3 คีย์บางตัวก็หาย | 6 ตัวเสถียร ที่ 7 หายหรือ modifier มีปัญหา | 10+ ตัวพร้อมกัน report ทั้งหมด |
| ผลต่อ gaming | ghosting บ่อยใน FPS·fighting game | การควบคุมทั่วไปพอ แต่ custom macro·modifier ซ้อนจำกัด | fighting·rhythm·RTS ที่กดชุดเยอะได้เปรียบ |
polling rate เป็นแกนอิสระจาก 1KRO/6KRO/NKRO แต่เมื่อพูด latency ควรดูด้วยกัน debounce ของ contact switch เอง 2–5 ms จึง debounce ส่งผลมากกว่า 1 ms ที่ 1000 Hz polling ให้ทฤษฎี gaming keyboard ใหม่ที่รองรับ 8000 Hz (Razer Huntsman V3 Pro, Wooting 80HE ฯลฯ) จูน debounce และ scan logic ด้วยกัน หวังลด latency จริง แต่ความต่างทางความรู้สึกนั้นในขอบเขตของ gamer แข่งขันที่ sensitive ใน input จากประสบการณ์ผมในสำนักงานทั่วไป blind test แยก 1000 Hz กับ 8000 Hz ไม่ออกเกือบเป็นไปไม่ได้
สถานการณ์จริง
สถานการณ์ 1 — fighting·rhythm game ประเภทที่ combine คีย์เช่น direction + attack + modifier ด้วย 6KRO เพียงอย่างเดียว combo ซับซ้อนที่ต้องการ input ที่ 7 มีปัญหา โดยเฉพาะชุด “block ล่าง + jump cancel + attack” ของ fighting game มี modifier (Shift/Ctrl) แทรก จึงรู้สึก drop หาก play ด้วย keyboard ใน Street Fighter 6 หรือ Guilty Gear Strive ตรวจว่า NKRO เปิดไหมด้วย browser-based key rollover test เร็วสุด
สถานการณ์ 2 — พิมพ์ทั่วไป·office แม้พิมพ์เร็วแค่ไหน สถานการณ์ที่กดพร้อม 6 คีย์ขึ้นไปแทบไม่มี default 6KRO อย่างเดียวพอสำหรับคุณภาพพิมพ์ และเพิ่ม polling rate ถึง 1000 Hz ความรู้สึกพิมพ์แทบไม่เปลี่ยน ใน office feel·layout·noise สร้างความต่างมากกว่า rollover
สถานการณ์ 3 — streaming·macro device OBS shortcut หรือ macro device trigger modifier combination (Ctrl+Alt+F12 ฯลฯ) ต่อเนื่องบ่อย polling rate กับ macro response speed กลายเป็นแกนสำคัญ แต่ bottleneck จริงมักเป็นการจัดการ shortcut ฝั่ง software ลำพัง การเพิ่ม keyboard polling rate อาจปรับปรุงได้จำกัด
ความเข้าใจผิดที่พบบ่อย
“mechanical keyboard ทั้งหมดเป็น NKRO” เยอะจริงแต่ ไม่ทั้งหมด 6KRO default + NKRO toggle หรือไลน์ราคาถูกที่ไม่รองรับ NKRO ให้แค่ 6KRO มีอยู่ firmware·docs ต้องระบุ “USB NKRO” ในไลน์ Razer เดียวกันบางรุ่นทำงานต่าง อ่าน spec page ผู้ผลิตตรงจะปลอดภัยกว่ากล่อง
“polling rate ยิ่งสูงยิ่งดี” ในการพิมพ์ 500 vs 1000 Hz แทบไม่ต่าง ใน competitive gaming 1000 Hz ใกล้มาตรฐาน เหนือกว่านั้น diminishing returns เร็ว ถ้าเพิ่ม polling rate แล้วไม่ต่างไม่ใช่เรื่องแปลกแต่ปกติ 8000 Hz มีความหมายเมื่อ display 240 Hz+ mouse ระดับเดียวกัน game engine tick rate ขั้นเดียวกัน สภาพแวดล้อมอื่นแค่เพิ่ม CPU interrupt โดยไม่เปลี่ยนความรู้สึก
“key กินใน office เพราะไม่มี NKRO” input drop ใน office ปกติจาก USB hub path·driver·switch สกปรก·firmware issue บ่อยกว่ามาก การกินจาก 6KRO limit ในการใช้งานจริงหายาก ถ้าอาการซ้ำ ลอง direct hub·reboot·clean·firmware update ก่อน
เช็กลิสต์
- เปิดหน้า browser key rollover test กดคีย์หลายตัวต่อเนื่อง ยืนยันว่าแสดงทั้งหมดบนจอ
- ขยาย 1–6 ตัว → 7 ตัวขึ้นไป ถ้า 7 ไม่แสดง คือ 6KRO ถ้า 10+ reflect หมด คือ NKRO
- ถ้า NKRO เป็น toggle เปิด NKRO mode ด้วย firmware·Fn combo ทดสอบอีกครั้ง
- เครื่องมือ polling rate monitoring วัด polling cycle จริง แม้ผู้ผลิตระบุ 1000 Hz ก็อาจต่ำกว่าตาม USB stack·hub ของ host
- กำหนดเป้าหมายตาม gaming genre FPS·fighting·rhythm → NKRO จำเป็น, พิมพ์ทั่วไป → 6KRO พอ
- ถ้ารู้สึก latency ยังใหญ่ ตรวจ latency display·audio·network ด้วย บ่อยไม่ใช่ปัญหา input อย่างเดียว
เครื่องมือที่เกี่ยวข้อง
เครื่องมือวินิจฉัยคีย์บอร์ดของ Patrache Studio visualize คีย์ที่กดพร้อมกันในเบราว์เซอร์ ยืนยันขีดบน rollover ได้ทันที คู่กับการตรวจ input device คือ ทดสอบ dead pixel ของจอ เมื่อคำนวณ gaming latency budget ทั้งระบบ ใช้การวิเคราะห์ฝั่งเสียงใน การวัด audio latency ของไมค์·ลำโพง จะ balance latency ของระบบ “ตา + มือ + หู” ได้
อ้างอิง
- USB HID specification (official) — https://www.usb.org/hid
- Wooting NKRO implementation reference — https://wooting.io/
- RTINGS keyboard reviews — https://www.rtings.com/keyboard