QMK และ VIA คืออะไร เกี่ยวข้องอย่างไรกับแมคคานิคอลคีย์บอร์ด
ก่อนหน้านี้เราได้ทำความรู้จักกับตัว Rotary Encoder บนคีย์บอร์ด Keychron Q1 Knob กันไปแล้ว แต่ยังมีอีกหนึ่งสิ่งที่เรายังไม่ได้พูดถึง ซึ่งเป็นส่วนสำคัญที่ทำให้ hardware ทั้งหมดบนคีย์บอร์ดของเราไม่ว่าจะเป็นการรับคำสั่งจากสวิตช์คีย์บอร์ดเพื่อส่งคำสั่งไปที่คอมพิวเตอร์ หรือควบคุมไฟ RGB LED ของคีย์บอร์ดของเราให้สามารถเปลี่ยนสีหรือกะพริบได้ตามที่เราต้องการ ซึ่งก็คือ Firmware ของคีย์บอร์ดนั่นเองครับ
Firmware คืออะไร
หลายๆ ท่านที่ใช้คอมพิวเตอร์อาจจะคุ้นเคยกับคำว่า hardware หรือ software แล้ว และอาจจะเคยได้ยินคำว่า firmware ผ่านๆ มาบ้าง แต่ยังสงสัยว่ามันคืออะไร และทำหน้าที่อะไรในอุปกรณ์ไฟฟ้าของเรากันแน่ วันนี้เราจะขออาสาพาทุกท่านไปรู้จักกับ firmware ให้มากขึ้นครับ
ถ้า hardware คืออุปกรณ์ที่เราสามารถจับต้องได้ และ software คือชุดคำสั่งที่ออกแบบมาเพื่อให้มนุษย์สามารถส่งคำสั่งไปที่คอมพิวเตอร์ได้แล้ว firmware ก็จะอยู่ตรงกลางระหว่าง software กับ hardware คอยทำหน้าที่ควบคุมการทำงานของ hardware ในระดับที่ใช้ส่งคำสั่งไปที่ตัว hardware โดยตรง ซึ่งเป็นระดับที่ทำงานใกล้ชิดกว่า software ตัวอย่างของ firmware ที่เราพบได้ทั่วไปก็อย่างเช่น BIOS/EFI บนเครื่องคอมพิวเตอร์ หรือ driver ที่ใช้ควบคุมอุปกรณ์ต่างๆ อย่างคีย์บอร์ด เมาส์ หรือเครื่องพิมพ์ สรุปง่ายๆ firmware ก็คือ software ที่ทำงานบน hardware โดยตรง ไม่ผ่านผู้ใช้งานนั่นเองครับ
QMK คืออะไร
คีย์บอร์ดทั่วไปจะมีแผงควบคุมวงจร (microcontroller) และ firmware สำหรับควบคุมการทำงานของคีย์บอร์ดโดยแปลผลของตำแหน่งปุ่มที่ถูกกดว่าอยู่ที่ตำแหน่งใดบนแผงวงจร และส่งคำสั่งที่ถูกต้องไปควบคุมการทำงานของคอมพิวเตอร์อีกทอดหนึ่ง ซึ่งในคีย์บอร์ด Keychron ทุกรุ่นของเราก็จะมี firmware เฉพาะของตัวเองที่คอยดูแลการทำงานของคีย์บอร์ดให้เป็นไปอย่างราบรื่น แต่ความพิเศษของคีย์บอร์ด Keychron รุ่น Q1 และ Q1 Knob อยู่ที่ software ที่ใช้สำหรับ firmware ของคีย์บอร์ดของเรา ซึ่งใช้ Firmware จาก QMK หรือ Quantum Mechanical Keyboard ครับ
Quantum Mechanical Keyboard (QMK) เป็นคอมมูนิตี้ของผู้ใช้และผู้พัฒนา firmware สำหรับคีย์บอร์ดแบบเปิดเผยต้นรหัส (open source) ทำให้ผู้ใช้สามารถ download ไฟล์ต้นฉบับ (source code) ของตัว firmware มาแก้ไขให้เข้ากับคีย์บอร์ดที่เรากำลังใช้งานอยู่ หรือพัฒนาคุณสมบัติและการทำงานของตัว QMK Firmware ต่อได้อย่างอิสระ โดยทีมพัฒนาหลักของ QMK จะดูแล software ที่ใช้สำหรับการสร้างและพัฒนา firmware สำหรับคีย์บอร์ดก็คือ QMK Firmware, QMK Configurator และ QMK Toolbox ครับ
โดย QMK Firmware มีความพิเศษที่ฟีเจอร์และฟังก์ชั่นการใช้งานต่างๆ ที่สามารถตอบโจทย์ผู้ใช้งานคีย์บอร์ด mechanical ที่จะมี hardware อื่นๆ เสริมเข้ามา เช่น rotary encoder (knob), ไฟ RGB LED, หน้าจอ OLED หรือแม้กระทั่งลำโพงหรือ trackball ที่ใช้แทนเมาส์ก็มี ทำให้ QMK firmware เป็นที่นิยมอย่างมากในหมู่คนใช้งานแมคคานิคอลคีย์บอร์ดครับ
VIA คืออะไร?
ผู้ใช้ Q1 และ Q1 Knob หลายๆ คนอาจจะเริ่มสงสัยว่า ที่ผ่านมาเราไม่ได้ใช้อะไรเกี่ยวกับ QMK เลย การเปลี่ยนการตั้งค่าต่างๆ บนคีย์บอร์ด หรือตั้งค่าปุ่มใหม่ เราก็ทำผ่านโปรแกรมที่ชื่อ VIA ไม่ได้ใช้โปรแกรมจาก QMK และใช้เฉพาะ VIA ในการตั้งค่าคีย์บอร์ดเท่านั้น เพราะฉะนั้น เราไปรู้จักกับ VIA กันต่อดีกว่าครับ
โดยปกติแล้วหากผู้ใช้ต้องการที่จะเปลี่ยนการตั้งค่าต่างๆ ของคีย์บอร์ด โดยเฉพาะการตั้ง keymap (ตำแหน่งต่างๆ ของปุ่มบนคีย์บอร์ด) นั้น จะต้องทำผ่าน QMK Configurator หรือ QMK MSYS และติดตั้ง firmware ใหม่ทับลงไปบนคีย์บอร์ดด้วยการ flash firmware ผ่าน QMK Toolbox ซึ่งอาจจะยุ่งยากสำหรับผู้ใช้บางกลุ่มที่ต้องการประสบการณ์การใช้งานคีย์บอร์ด mechanical แบบง่ายๆ ทางทีม QMK จึงได้พัฒนาฟีเจอร์ VIA ขึ้นมา เพื่ออำนวยความสะดวกให้กับผู้ใช้ ให้ผู้ใช้สามารถแก้ไขการตั้งค่าปุ่มในขณะที่กำลังใช้งานคีย์บอร์ด และไม่ต้องทำการ flash firmware ใหม่ให้ยุ่งยากครับ
สำหรับตัว VIA นั้น แท้จริงแล้วเป็นฟีเจอร์ที่อยู่ในตัว software QMK อีกทีครับ โดยคีย์บอร์ดที่มีการเปิดใช้งาน VIA และมีข้อมูลของตัวแผงวงจรและการวางปุ่มของของตัวคีย์บอร์ดอยู่ในฐานข้อมูลของ QMK (เช่น Keychron Q1 รุ่นแรก) จะสามารถใช้โปรแกรม VIA ในการแก้ไขปุ่มต่างๆ บนคีย์บอร์ด หรือสร้าง macro สำหรับใช้งานได้เลย แต่จะยังมีข้อจำกัดมากกว่าการใช้ QMK Configurator หรือ QMK MSYS ในการสร้างไฟล์ firmware ใหม่ด้วยตัวเอง เช่น ไม่สามารถสร้าง layer ของปุ่มเพิ่มได้ หรือไม่สามารถแก้ไขพฤติกรรมของ hardware ภายนอกที่เพิ่มเข้ามาอย่างเช่นจอ OLED หรือ trackball บนคีย์บอร์ดได้ครับ
ในโพสต์ต่อไป เราจะมาอธิบายเรื่องการใช้งาน VIA เพิ่มเติม เพื่อให้ผู้ใช้สามารถใช้งานคีย์บอร์ดที่ใช้ QMK Firmware ได้อย่างเต็มที่ครับ