Hand wire keyboard

ย้อนกลับไปสัก 5 ปีที่แล้ว เมื่อผมได้เริ่มใช้ Mechanical Keyboard อย่าง Filco ตั้งแต่นั้นมาผมก็เริ่มหลงไหลไปกับ keyboard มากขึ้น เมื่อเริ่มเข้าสู่ความเป็น “คนบ้า keyboard” ก็เกิด idea ว่าอยากจะทำ keyboard เองสักอัน ก็เริ่มหาข้อมูล อ่านเวปนั่นนี่เรื่อย ก็พบว่ากว่าจะได้ keyboard สักอันมาเนี่ยต้องออกแบบแผ่น PCB เสียก่อน ก็ไอ้แผ่นสีเขียวๆที่มีลายวงจรนั่นแหละ ซึ่งแผ่นวงจรนี้จะเป็นตัวเชื่อมต่ออุปกรณ์ต่างๆเข้าไว้ด้วยกัน ถ้าจะออกแบบแผ่น PCB เองทั้งหมดก็รู้สึกว่ามันใช้เวลา และต้องลงทุนลงแรงไปศึกษาค่อนข้างเยอะ แต่เมื่อศึกษาไปเรื่อยๆ ก็พบว่า เห้ยยยยย จริงๆแล้วมันไม่ต้องทำ PCB ก็ได้นี่หว่า ทำแบบ hard wire ก็ได้ นั่นเลยเป็นที่มาของโปรเจค hand wire keyboard นี้

Hand wire keyboard

แล้ว hand wire มันคืออะไรละ ? อย่างที่ได้บอกไปแล้วว่าปกติแล้ว อุปกรณ์ electronic มันก็จะวางอยู่บน PCB แน่นอนว่าใน mechanical keyboard มันก็มี pcb เหมือนกัน ส่วน hand wire keyboard มันคือก็คือ keyboard ที่ไม่มี pcb ใช้แค่สายไฟเชื่อมต่ออุปกรณ์ต่างๆเท่านั้นเอง

ข้อดีของการที่ไม่มี pcb อย่างแรกก็คือ ไม่ต้องไปเรียนรู้เรื่องออกแบบ pcb ให้วุ่นวาย ซึ่งถ้าทำอะไรผิดพลาดในการออกแบบ pcb สักจุดหนึ่ง แผงวงจรนั้นก็ใช้ไม่ได้เลย อย่างที่สองการผลิตแผงวงจรด้วยจำนวนน้อยนั้น ใช้เงินค่อนข้างเยอะ เราจึงประหยัดเงินตรงส่วนนี้ไป

ส่วนข้อเสียของ hand wire ก็คือ เราต้องมีความระมัดระวังในการประกอบงานค่อนข้างมาก เพราะเกิดการลัดวงจรได้ง่าย และข้อเสียอีกอย่างคือ ใช้พื้นในการวางอุปกรณ์เยอะ และสุดท้ายคือมันดูรกตามาก

What you need to get start

อย่างแรกที่คุณต้องมีคือ .. ใจรัก และอย่างที่สองคือ งบสัก 4000 – 5000 บาท  .. ห๊าา อะไรนะ ทำไมแพงงี้อ่ะ ? ครับแพง ผมไม่เถียง เพราะในเงินจำนวนนี้ ต้องนำไปใช้ซื้ออุปกรณ์เพื่อมาประกอบ เป็น keyboard ซึ่งก็จะมี

สวิตช์ ( MX Switch )

สวิตช์ในโปรเจคนี้เลือกใช้ Cherry MX Switch ถ้าไม่อยากใช้ยี่ห้อนี้จะเลือก MX Clone ยี่ห้ออื่นก็ได้ เช่น Kail, Gaote , Gateron หรือ Geetech ก็แล้วตามสะดวก อยากได้ switch สีไหน ก็เลือกได้ตามใจ ส่วนจำปุ่มที่ใช้ ก็ขึ้นอยู่กับ laybout ที่ต้องการ และราคาของ cherry switch จะตกประมาณปุ่มละ 30 บาท

สเตบิไลเซอร์ (MX Stabilizer Kit)

คืออุปกรณ์ที่ทำให้ปุ่มที่มีความยาวมากหน่อยเช่น space bar นั้น มีความมั่นคงเวลากด ซึ่ง stabilizer นี้ก็จะมีด้วยกันสองแบบคือ cherry mx และ costa ในโปรเจคนี้ ผมเลือกใช้ cheery mx stabilizer ราคาประมาณ 200 บาทต่อชุด คือสำหรับปุ่ม enter , backspace , shift และ space bar

ไดโอด (Diode)

ตามจำนวนปุ่ม ราคาประมาณ อันละ 1 บาท

สายไฟ

ขนาดเล็ก 0.3 – 0.5 สัก 6 เมตร เอาหลายๆสีหน่อยก็ได้ จะได้แยกง่าย ราคาประมาณเมตรละ 5 บาท สำหรับโปรเจคนี้จะใช้ประมาณ  6 เมตร

เพลท (Keyboard Plate)

ในเมื่อเราทำ hand wire และไม่มีแผ่น pcb ให้วางอุปกรณ์ เราจึงต้องมี plate เพื่อใช้สำหรับยึดอุปกรณ์เช่นสวิตช์ โดย plate ที่ว่านี้มันก็คือแผ่นเหล็กที่ วางอยู่ด้านบนก่อน PCB ชั้นหนึ่ง ซึ่งมันจะมีหน้าที่เป็นตัวรองรับสวิตช์ อันที่จริงแล้ว keyboard นั้นไม่จำเป็น ต้องมีแผ่น plate นี้ก็ได้ แต่ส่วนมากจะใส่ไว้เพื่อทำให้แข็งแรงมากขึ้น อย่าง filco ก็มี plate แต่ poker นั้นไม่มี plate แต่อย่างใด ราคาประมาณ 500 – 1000 บาท

เคส หรือ bottom plate

ถ้าสมมติว่าจะออกแบบ hand wire keyboard ให้เป็นแบบ full keyboard , ten key less ( tkl) หรืออาจจะเป็นแบบ 60% ก็สามารถซื้อเคส หรือนำของเก่ามาใช้ได้ แต่เนื่องจากโปรเจคนี้ keyboard layout นั้น ไม่มีเคสรองรับ เราจึงต้องทำ bottom plate ขึ้นมาด้วย

ปุ่มกด (key caps)

เลือกตามใจชอบเลย จะเป็น abs หรือ pbt ก็ได้ราคาประมาณ 800 บาทขึ้นไป

Development Board

นี่คือหัวใจหลักของโปรเจคนี้ เราต้องใช้ development board เพื่อกำหนดว่าปุ่มไหน ทำงานอย่างไร และในโปรเจคนี้ ก็ได้เลือกใช้ Teensy 2.0 ซึ่งมีราคา 800 – 1200 บาท

อุปกรณ์ในการบัดกรี ( Soldering Tools)

ก็อย่างเช่น หัวแร้ง ตะกั่ว ถ้าไม่อยากซื้อใหม่ ตอนนี้ใน กทม ก็มีพวก maker club ให้เข้าไปใช้บริการ ก็ลองหาๆข้อมูลดูครับ

Keyboard Matrix

ก่อนที่ จะไปลงมือทำ เราควรจะเข้าใจก่อนว่า การทำงานของ keyboard นั้นทำอย่างไร ? การทำงานของ keyboard นั้นไม่ได้ซับซ้อน หลักการง่ายๆก็คือว่า สวิตช์จะเชื่อมต่อกับ ขาของไมโครคอนโทรเลอร์ เช่น ปุ่ม A อาจจะเชื่อมกับขา (pin) ที่ 1 ส่วนปุ่ม B เชื่อมกับ pin ที่ 5 ถ้าหากกดปุ่มสวิตมันก็จะเชื่อมสัญญาณไฟฟ้า (เหมือนที่เปิดสวิตหลอดไฟนั่นแหละ) เมื่อไฟฟ้าไหลผ่านได้ มันก็จะวิ่งไปยังขาของไมโครคอนโทรเลอร์ และไมโครคอนโทรเลอร์ก็จะเป็นผู้กำหนดว่า สัญญาณาเข้ามาขาที่ 1 นี้ให้ส่งสัญญาณไปบอกกับคอมพิวเตอร์ว่าคือ กดตัว A อีกที

อย่างที่ได้อธิบายไป ว่า ปุ่มแต่ละอันต้องเชื่อมต่อกับ pin  ของไมโครคอนโทรเลอร์  แต่เนื่องจากว่าจำนวน pin ของ micro controller นั้นมีจำกัด ถ้าจะแยก 1 switch ต่อ 1 pin ก็จะทำให้ micro controller ของเรานั้น ราคาแพง และมีขนาดใหญ่ ดังนั้น แล้วเค้าจึงได้ออกแบบใหม่ ให้ปุ่มหลายๆอันเชื่อมต่อกันเป็นแถวแนวตั้ง (col) และแนวนอน (row) เรียกว่า keyboard matrix เมื่อกดปุ่ม สัญญาณจะถูกส่งออกมาว่า กดจาก row และ col ไหน จากนั้นไมโครคอนโทรเลอร์ ก็ประมวลผลและส่งต่อไปยังคอมพิวเตอร์  ฉะนั้นแล้ว จำนวนขา ที่ใช้ ก็จะเหลือเพียงแค่จำนวน row กับ col ทั้งหมดนั่นเอง

Designed your own keyboard

ในการออกแบบ keyboard นั้นเราต้องวาง layout ของ keyboard กันก่อน ว่าอยากให้ปุ่มอะไรอยู่ตรงไหน และถ้ายิ่งมีปุ่มเยอะ ก็จะยิ่งแพง ดังนั้นแล้วแทนที่เราจะทำ keyboard layout แบบปกติที่มี 104 ปุ่ม เราก็จะออกแบบ layout ใหม่เพื่อให้ปุ่มกด ลดลง แต่ยังได้ฟังก์ชั่นการใช้งานเหมือนเดิม ด้วยการเขียน firmware เข้าไป

ผมก็ได้วาง layout ประมาณนี้

keyboard-layout

จาก layout จะเห็นว่าจำนวนของปุ่มกดมีเพียงแค่ 68 ปุ่ม เมื่อวาง layout เสร็จเรียบร้อยแล้ว จากนั้น ก็เริ่มสร้าง top plate จาก layout ที่ได้มา ซึ่งก็จะมีหน้าตาประมาณแบบนี้

plate

เมื่อได้ plate แล้ว ( ทั้ง top , mid , bottom ) ก็สั่งให้โรงงาน laser cut ตัดแผ่น อลูมิเนียมตามแบบที่เราได้ทำไว้ ซึ่งปกติ มักจะใช้อลูมิเนียมความหนา 1.5 – 2 mm.

1

ในรูปด้านล่าง ก็คือ bottom plate ซึ่งจะมี น๊อตสูงประมาณ 10 mm ไว้เป็นตัวเชื่อมต่อกับ top plate

3

Choose your MX Switch

เมื่อมี plate แล้ว ต่อไปเราก็จะเริ่มนำ switch ที่ต้องการมาประกอบเข้ากับ plate

4

จาก switch ที่ผมมีในตอนนี้คือ เขียว (MX Green) , ขาว (MX White) และ ใส ( MX Clear ) ก็ตัดสินใจว่าจะเอา MX Clear มาใช้ และแน่นอนว่า ต้องเตรียม Stabilizer ไว้สำหรับ space bar , enter , backspace และ shift ด้วย

6

เมื่อทุกอย่างพร้อมแล้ว ก็เริ่มต้นด้วย switch ตัวแรกกันก่อน

7

เวลาที่ใส่ปุ่มเข้าไปในช่อง ให้สังเกตว่า ตัวหนังสือ Cherry จะอยู่ด้านบน

_DSC0189

เมื่อกลับด้าน ถ้าหาก pin สวิตช์ด้านซ้ายบน อยู่สูงกว่าบนขวา ก็แสดงว่าใส่ถูกต้องละ เมื่อเรียงจนเต็ม plate แล้วก็จะได้ดังรูป

_DSC0204

ถ้ากลับด้านมาก็จะเป็นแบบนี้

_DSC0206

เมื่อเรียงสวิตช์เสร็จแล้ว ผมแนะนำให้ใส่ Stabilizer เข้าไปด้วยเลย เพราะถ้าใส่ทีหลังจะลำบาก เพราะมันจะติดสายไฟ

Soldering

เมื่อปุ่มได้วางบน plate เรียบร้อยในขั้นตอนต่อไปก็เริ่มการบัดกรีไดโอทเข้ากับสวิตช์

_DSC0211

เราจะบัดกรีขา ของปุ่มด้านซ้าย กับไดโอทที่ถูกดัดให้เป็นตัว Lที่ต้องดัดให้งอ ก็เพื่อที่จะได้ไปเชื่อมต่อกับไอโอดตัวถัดไป ในการวางไดโอด ให้ถูกด้านด้วยนะครับ (สีดำต้องอยู่ด้านล่าง) ไม่งั้นมันจะไม่ทำงาน และเมื่อทำเสร็จแล้วก็จะได้ดังนี้

_DSC0223

ในรูป บริเวณ space bar ขาของไดโอท จะยาวไม่พอ ก็ให้เชื่อมต่อด้วยสายไฟแทน และพยายามให้ไอโอทและขาอยู่ภายในสวิตช์ อย่าให้ขาล้ำยาวยื่นออกมาด้านล่างมากเกินไป เพราะเสี่ยงต่อการที่ส่วนหนึ่งส่วนใดไดโอท จะสัมผัสกับแผ่น plate หรือติดดับแถวด้านล่าง มันจะทำให้เกิดการลัดจงจร

เมื่อเชื่อมต่อไดโอดเสร็จแล้ว ต่อมาก็เริ่มเชื่อมในส่วนแนวตั้งเข้าด้วยกัน ในขั้นตอนนี้เราจะใช้สายไฟเป็นตัวเชื่อม

_DSC0225

ในขั้นตอนการเชื่อมต่ออุปกรณ์ จะเชื่อมไดโอท (row) ก่อน หรือจะเริ่มที่สายไฟ (col) ก่อนก็ได้นะครับ แล้วแต่ถนัดเลย ซึ่งเมื่อทำทั้งสองอย่างเสร็จแล้วก็จะได้ประมาณนี้

_DSC0229

ในการเชื่อมต่อแนวตั้ง จะเห็นว่า บางแถวมี 5 ปุ่ม แต่บางแถวมีแค่ 4 ปุ่ม ก็ไม่เป็นไร และในลำดับต่อมา ก็จะทำการเชื่อมสายไฟ เข้ากับ ต้นแถวในแนวตั้ง ดังรูป

_DSC0266

ในส่วนปลายแถวแนวนอน (row) ก็เช่นกัน  _DSC0255

หากทุกอย่างเรียบร้อยดี เราก็จะเริ่มนำสายไฟ ที่ต่อจากสวิตช์เชื่อมเข้ากับ ไมโครคอนโทลเลอร์

_DSC0245

เวลาบัดกรี ก็เริ่มจากคอลัมน์แรกซึ่งจะเชื่อมต่อเข้ากับ ขาเบอร์ F0 ส่วนคอลัมน์ต่อมาเชื่อมกับ pin ในลำดับถัดมาทวนเข็มนาฬิกา จนกระทั่งครบทุกคอลัมน์ จากนั้นก็จะเชื่อมสายไฟในแต่ละแถว เข้ากับ pin ของบอร์ด อย่างที่เห็นในรูป

_DSC0263

Firmware

บัดกรีเสร็จเรียบร้อย ก็ตรวจสอบว่าไม่เกิดการลัดวงจร และสายไฟต่างๆได้เชื่อมต่อกันดีแล้ว แต่ไปก็จะเริ่มเขียน firmware และโหลดลงบอร์ด teensy 2.0 ของเรา ซึ่งการเขียน firmware นั้น ผมเริ่มจากการแก้ไข firmware ของ tmk เมื่อปรับแต่งเฟิร์มแวร์เสร็จ และทดสอบว่า ปุ่มต่างๆได้ทำงานถูกต้องแล้ว ก็จะเหลือขั้นตอนสุดท้ายคือ ประกอบเคส

Case

เพื่อความสวยงาม ก็จะใช้ อะคีลิก เป็นตัวขั้นกลางระหว่าง top plate และ bottom plate และอย่างที่ผมได้บอกไป ถ้าหาก ทำ keyboard แบบ tkl , 60% หรือ full สามารถนำเคสที่มีอยู่แล้ว หรือจะซื้อใหม่มาใส่ก็ได้

_DSC0274

Put it all to gather

เมื่อทุกอย่างเรียบร้อยหมดแล้ว ก็จะนำส่วนต่างๆมารวมกัน ซึ่งในขั้นตอนนี้ ต้องระมัดระวังเป็นอย่างมาก เพราะเมื่อนำมาใส่ในเคส ตัว board อาจจะมีส่วนใด ไปสัมผัสกับเคส ทำให้เกิดการลัดจร ดังนั้นผมจึงนำสติกเกอร์พลาสติกใส่ มาติดทับรองระหว่าง board กับ bottom อีกชั้นเสียก่อน และในส่วนสายไฟก็ตรวจสอบว่า มีความแข็งแร็ง ไม่หลุดง่าย เพื่อให้แน่ใจว่า มันจะไม่หลุด

_DSC0281

เมื่อทุกอย่างทำเสร็จแล้ว ก็มาถึงขั้นตอนสุดท้าย คือ การใส่ keycaps และเราก็จะได้ keyboard  อันแสนสวยงามนี้

_DSC0293

Summary

กว่าจะประกอบเสร็จใช้เวลาหลังเลิกงานประมาณ 2 สัปดาห์ และทำอะไรผิดพลาดหลายอย่าง ตั้งแต่การบัดกรี หรือเขียน firmware และเมื่อทำเสร็จ ก็เอาไปให้คนอื่นได้ดู หลายคนถามว่ามันดียังไง ถูกกว่า ซื้อเหรอ .. ผมก็จะยิ้มและบอกว่า เปล่า .. มันแพงกว่า และกว่าจะทำเสร็จใช้เวลาหลายวัน แต่ผมได้ความสนุกและความรู้หลายๆอย่างจากมัน

สำหรับคนที่สนใจอยากจะทำแบบบ้าง .. ยินดีให้คำปรึกษา จะส่ง email หรือ pm มาได้ทาง facebook ก็ได้ครับ

Leave a Reply