QMK Toolbox และ VIA โปรแกรมสำหรับ Custom keyboard
สอน Remapping keys และ Flash firmware สำหรับ Custom keyboard

ขึ้นชื่อว่า Custom keyboard แล้วทำให้จำเป็นต้อง Custom ทุกอย่าง รวมไปถึงการควบคุม Keyboard ด้วยเช่นกัน ถ้าเป็น Keyboard ปกติที่ออกจากโรงงาน หรือมาจาก Kickstarter อย่าง Keychron ตัวแผงวงจรหรือ PCB จะมีการตั้งโปรแกรมมาให้แล้ว
แต่สำหรับ Custom keyboard สามารถควบคุม PCB ได้ด้วยการตั้งโปรแกรมเอง ซึ่งโปรแกรมที่นิยมใช้ในยุคแรกคือ QMK Toolbox ที่อาจใช้งานไม่สะดวกเท่าโปรแกรมยุคหลัง แต่ฟังก์ชั่นใน QMK Toolbox ถือว่าครบที่สุด ส่วนยุคหลังมานี้นิยมใช้โปรแกรม VIA ในการตั้งค่า Custom keyboard ซึ่งตอนนี้จะเป็นการใช้งานทั้ง 2 โปรแกรมควบคู่กัน
DZ65RGB V2

PCB ที่ใช้งานอยู่ ณ ตอนนี้คือ DZ65RGB V2 ที่ทำให้เกิด Blog ตอนนี้ขึ้นมา เพราะ Firmware ที่ได้มาจากโรงงาน ยังมีปัญหาเรื่องการควบคุมไฟ RGB ที่จริง ๆ แล้วปกติก็ไม่ค่อยได้ใช้งาน ปิดแล้วปล่อยไว้แบบนั้นเลยก็ได้ แต่เห็นว่าปัญหานี้ค่อนข้างดี เหมาะสำหรับการเขียนเป็นแนวทางสำหรับคนที่เพิ่งเข้าวงการ Custom keyboard
ปัญหาของ Firmware DZ65RGB V2 ที่มาจากโรงงานคือ การ Remapping key ที่ใช้ในการควบคุมไฟ RGB มันติด ๆ ดับ ๆ หรือ Mapping แล้วใช้งานไม่ได้ หรือใช้งานได้บ้างไม่ได้บ้าง เช่น
- สามารถปิดไฟ RGB ได้ แต่ไม่สามารถเปิดกลับขึ้นมาได้
- เปลี่ยนสีไฟ RGB ไปแล้ว ไม่สามารถทำให้มันกลับมาเป็นสีเดิมได้
DZ65RGB V2 Firmware
เพื่อทำให้ความสามารถในการควบคุม RGB กลับมาเป็นปกติตามเดิม ให้ Download firmware ที่เพิ่งอัพเดตล่าสุดเมื่อวันที่ 26 March 2021 ได้จาก Link ด้านล่าง
ให้ค้นหาให้ตรงตามรุ่น เช่น DZ65RGB V2 มีชื่อว่า dztech_dz65rgb_v2_via.hex
เมื่อ Download แล้ว ต่อไปเป็นการใช้งานโปรแกรม QMK Toolbox

QMK Toolbox

เริ่มต้นการแก้ปัญหาด้วยการ Flash firmware ใหม่ แทนที่ของเดิมที่มาจากโรงงานที่ยังมี Bug เรื่องไฟ RGB อยู่ เริ่มจาก Download QMK Toolbox ได้จาก Link ที่ให้ไว้ด้านล่าง
สำหรับการใช้งานใน Windows ต้องติดตั้ง Drivers เพิ่มเติมอยู่พอสมควร สามารถอ่านได้จาก Link นี้ แต่สำหรับการใช้งานบน macOS สามารถข้ามขั้นตอนนี้ได้เลย
ในหน้าเว็บของ QMK Toolbox บอกว่าสามารถติดตั้งผ่าน Homebrew ได้ แต่หลังจากทดลองด้วย
brew install — cask qmk-toolbox
พบว่าโปรแกรมโดนถอดออกไปแล้ว ให้ติดตั้งแบบปกติแทน

เมื่อเปิดโปรแกรมขึ้นมาจะเจอหน้าตามรูปด้านบน สิ่งที่ต้องสนใจมี 2 อย่างคือ Local file ที่ใช้ในการ Import firmware file เข้า ให้เลือกที่ Open แล้วตาม Location ที่เก็บไฟล์ที่ Download จากด้านบน
สำหรับ MCU (AVR only) หรือ Microcontroller อาจแตกต่างไปขึ้นอยู่กับ PCB ที่ใช้งาน ซึ่งสามารถหาได้จากรุ่น PCB ได้จาก Link ด้านล่าง
ตัวอย่างเช่น ในรุ่น DZ65GRB V2 ไฟล์อยู่ที่ /dztech/dz65rgb/v2/
(เลือกเวอร์ชั่นให้ตรงด้วย) จากนั้นหาไฟล์ชื่อว่า rules.mk
เมื่ดขึ้นมาแล้ว บรรทัดชื่อว่า MCU = atmega32u4
เป็นสิ่งที่บอก Microcontroller ของ PCB นั้น ๆ

โดยส่วนมาก โปรแกรมสามารถเดา MCU ของ PCB ได้บ้าง แต่เพื่อความชัวร์แนะนำให้ตามที่บอกไว้จะดีกว่า เพื่อป้องกันความเสียหายที่อาจเกิดขึ้นได้
Flash firmware
แนะนำว่าควรเชื่อมต่อด้วย USB Cable ที่ให้มาพร้อม PCB
ขั้นตอนการ Flash firmware โดย Keyboard ต้องเข้าสู่ Bootable mode ก่อน วิธีการเข้าสู่ Bootable mode ทำได้หลายวิธีด้วยกัน เช่น
- ใช้ Reset key ที่ทำการ Remap ไว้ด้วยโปรแกรม VIA (อ่านหัวข้อถัดไปก่อน) โดย Reset key จะอยู่ในส่วนที่เป็น Special key เพื่อทำการ Remap แล้ว สามารถกด Shortcut key เพื่อเข้า Bootable mode ได้ทันที เช่น ถ้ามีการ Remap ไว้ที่
fn1 + r
ให้กด คีย์บอร์ดตามนั้น แล้วโปรแกรมจะบอกว่าพร้อมทำงาน - ใช้
spacebar + b
เป็นการเข้าสู่ Bootable อีกวิธี แต่ต้องเริ่มจากการถอดสายเชื่อมต่อออก จากนั้นให้กดคีย์ค้างไว้ พร้อม ๆ กับเสียบสายเชื่อมต่อใหม่ - ใช้
esc
วิธีการทำงานเหมือนกันspacebar + b
เมื่อเข้าสู่ Bootable ได้ด้วยวิธีใดวิธีหนึ่ง ทำให้การกดที่ปุ่ม Falsh และไม่กดคีย์ใด ๆ จนกว่าโปรแกรมจะทำงานเสร็จ เมื่อได้ Return ด้วย Success ก็พร้อมใช้งานแล้ว

VIA

เนื้อหาสุดท้ายของ Blog ตอนนี้คือการใช้งาน VIA ซึ่งเป็นโปรแกรม Remapping key ของ Custom keyboard ซึ่งสามารถ Download ได้จาก Link ด้านล่าง
เมื่อเปิดโปรแกรมขึ้นมา โปรแกรมจะ Detect PCB ที่กำลังเชื่อมต่อให้เองอัตโนมัติ
การทำ Remapping key สามารถทำได้ด้วยการ Click ที่ปุ่มคีย์บอร์ดจากโปรแกรม VIA จากนั้นให้ทำการ Reassign ด้วยปุ่มใหม่ที่อยู่ด้านล่างได้เลย ตัวโปรแกรมเป็นการทำงานแบบ Real-time หมายความว่าเมื่อ Reassign แล้วสามารถทำงานต่อได้ทันที ไม่จำเป็นต้อง Save ใหม่

นอกจากนี้ยังสามารถสร้าง Custom macro function แล้ว Assign เป็น Shortcut ให้กับ Keyboard ได้ รวมไปถึงการควบคุมไฟ RGB หลังจากที่ Flash firmware ใหม่แล้ว รายละเอียดเพิ่มเติม สามารถดูได้จาก Video ที่ให้ไว้ที่ด้านล่าง
Conclusion
เขียนไว้เพื่อเป็นแนวทางสำหรับการใช้งาน QMK Toolbox และ VIA เนื่องจากพักหลังวงการคีย์บอร์ดเติบโตขึ้นมา แต่ยังหา How to เกี่ยวกับโปรแกรมยังน้อยอยู่ ดังนั้นขอเขียนไว้เผื่อวันหลังกลับมาอ่านเอง