DIY: GH60 鍵位自行設計 可程式化的自制鍵盤

by diearly
2013.11.19 03:51PM
是DIY: GH60 鍵位自行設計 可程式化的自制鍵盤這篇文章的首圖
參考資料
 
硬體及韌體設計
規劃者komar007 將這些open source都放在他的空間裡
包含PCB gerber file, firmware code, bootloader, GUI等等
 
tmk韌體 用在atmel上,open source讚!
https://github.com/tmk/tmk_keyboard
比較直覺的編譯,如果只想在現成有的布局下修改鍵位很好用
缺點是沒有GUI可以用
 
GH60在論壇團購的原文連結
http://geekhack.org/index.php?topic=41464.0
但是GeekHack上的團購等的實在太久了,就用目前開放源檔的rev.B去印刷電路板
 
購買的PCB只包括了加上atmel的主控、Crystal、NKRO用的Diode、電阻、電容、USB接口
有這些零件基本已具有鍵盤信號觸發的功用
152e4e0e2220a9123994b0ceefff2dbb
 
 
1. 組裝軸板
Ansi布局只是為了一開始拿到時先測線路,
bootloader提供了原生61鍵功能,並非我自己想要的布局
這片GH60採用的是灰/白軸 段落軸搭配
3c37ff943d12cbe69226c65c6233e71a
 
2. 焊軸
做這個不需要特別的技術,拍個快完成的圖就好
9d1207e37c359fbbd54beca09b6d30e3
 
3. 加有燈鍵的電阻
7076d1d4d89554e507805c8775509ca6
 
4. 裝衛星軸
6724d85e0b7cd64a1c2be07e40beb5f7
2f74e35f002917ed3b7f5b542df6dfb9
特地拍這張是想說明,衛星軸應該有的行為(原本有一組會卡):
有辦法注意這塊的話,就能改善一些衛星軸打感肉的問題
 *. 至少在重力作用下,假軸體應該要能輕鬆下落
 *. 若不行,表示這個零件一定被鐵絲頂到
 *. 鐵絲卡到的原因有很多情況,但主因應該是結合處不夠水平
 
5. 底殼部份
恰好Apple推出的金色iPhone,殼子也來做一個
騷包的土豪金
a17e621107f6eba72fb13b0ac474c6b9
 
c11de1d094327189fb7127e7ef026c53
 
6. 套上鍵帽
基本功能的GH60就初步完成了
d41f22abab9a7e9ef2d74f2cd7a7bb62

49f634be94ecc2842fb5363bb2f51d75

 

產生韌體的工作裡,個人覺得最重要的就是這張矩陣圖啦

比對位置去修改keymap.c裡的5排按鍵的定義,以及Fn層的切換或是按幾次到哪一層都可以輕鬆改寫

再用makefile產生新的.hex檔案

最後用flip 3.4.x的工具透過USB進行韌體更新就完成囉

17a75dce6aeeb99e024ed455acc4a66b

1e0b99739b8c2f8ec41f57c8acadd6ca

12 則回應

  • 最近研究了tmk的atmel code base,發現可支援ps/2滑鼠

    https://github.com/tmk/tmk_keyboard/tree/master/protocol

    剛好TEX design要推出一款小紅點鍵盤,

    就去借了一個指桿的樣本,

    接上GH60 rev.b板子上預留的IO後

    燒錄搭配enabled PS/2 mouse 功能的hex後

    小紅點可以正常運作!!

    但因為機構問題非常難用...Orz

    看來得找塊板子穿孔固定了

     

    60%: KBC Poker, KBT Pure, HHKB, TEX, Poker 2, Pure Pro

    80%: KBT Race, Filco-PWC2, CMStorm Rapid, Razer TE, Keycool84, Plum96, NoppooMini84

    100%: Filco M1-M2, Filco Ninja, Cherry G80-3000-3494, Cherry G80-1207, Zowie celeritas

     

    2014-04-17
  • 藉由部份同好的努力,在tmk code base上的韌體已經可以用GUI的方式來實現了 用GUI來做的好處就是不用具備coding能力,也能做出自己的鍵盤韌體 1. 設計自己的鍵盤功能

    這是給我自己用的 可以看到大概有4層的鍵位

    A. basic layer

    B. FN layer

    C. Arrow_Pure

    D. Mouse mode

    2. 鍵位布局實現 KLE http://www.keyboard-layout-editor.com/

    這是一位玩家提供的鍵盤規劃網站工具 可以用來設計鍵盤布局,透過增減鍵帽及XY軸位置來完成 有了這套工具,我根據自己的鍵盤需要的功能建立了四頁

    A. Basic = http://ppt.cc/T4HJ

    B. Fn layer = http://ppt.cc/bcHb

    *ps1

    C. Arrow_pure layer = http://ppt.cc/C~Nq

    D. Mouse mode layer = http://ppt.cc/ZzaU

    *.ps1 看到鍵位的板友可能會想問,為何其他層鍵位要留空(blank) 比如FN層改為http://ppt.cc/RKCa ,填滿的話會有差嗎? 這是因為tmk的實現方式在layer間是以堆疊的方式 越上層優先權越大 從這四層的鍵位可以看到,FN0是共通的 因此只要按著FN0 就等於我隨時打開FN layer 若在FN layer給予其他空鍵keycode,會造成無法靈活運用

    ex. FN layer填入R_shift 若打開arrow mode後再按著FN0+R_shift 那麼輸出的keycode將因為FN layer的優先權較高輸出為R_shift 若照原來以空值設計FN layer,那麼打開arrow mode後 按FN0+R_shift會輸出"UP"

    3. .eep檔案生成及dfu_reflash 這是一位在日本的大陸朋友根據tmk給的open source製作的網頁版生成工具 TKG http://enjoyclick.org/tkg/# 將之前在KLE畫出的鍵位複製raw data貼到屬於該層的空位 此時會有簡單的文法偵誤(標籤不合法等問題)以及有效宣告的FN鍵 再規定每個FN鍵的觸發方式以及在觸發時要進入哪一層 下載.eep檔案後 透過dfu-reflash這套工具進行USB介面的韌體更新 dfu-reflash 下載 http://ppt.cc/UdrR

    a. 接上GH60後,先確定atmega這個device被系統偵測到

    b. 安裝atmel_usb_dfu driver

    c. 按下button_0 (進入燒錄模式)

    d. 由dfu-programmer.exe 讀取下載好的.eep檔,進行更新

     

     

    這是我的GH60鍵盤目前的外觀,其實在鍵盤趴之後一直沒動,65g的彈簧按壓感很棒

    鍵位測試方面,可能要實際摸到的人才能知道了

    60%: KBC Poker, KBT Pure, HHKB, TEX, Poker 2, Pure Pro

    80%: KBT Race, Filco-PWC2, CMStorm Rapid, Razer TE, Keycool84, Plum96, NoppooMini84

    100%: Filco M1-M2, Filco Ninja, Cherry G80-3000-3494, Cherry G80-1207, Zowie celeritas

     

    2014-01-28
  • 我想要弄一個有TP的GH60,然後不要再外加滑鼠按鍵

    用Fn切換鍵盤跟TP模式的....這樣不知道有沒有辦法哈哈

     

     

    2013-11-22
    •  

      提供另一種比較直覺的GH60 FW燒錄方式

      1. 首先利用GUI畫出自己需要的鍵位表,這邊利用已經開發好的、非常實用漂亮的網頁

      http://www.keyboard-layout-editor.com/

         a. 將經常使用的第一層的鍵帽符號編輯到上刻和下刻中

         b. FN層編輯到側刻中

      2. 複製raw data至TKG http://www.enjoyclick.org/tkg/來產生.eep檔案

      3. 利用dfu-reflash 進行韌體更新

         a. 連接GH60與電腦,按下S1 button,讓windows辯識出atmega的裝置存在

         b. 安裝atmel_usb_dfu.inf ( 位於/driver資料夾,只需安裝一次,此後此步省略)

         c. 將步驟2生成的.eep檔拖曳至reflash-gh60_rev_b.bat執行,更新動作將會自動完成

      2014-01-14
    • diearly wrote:
      可以做到

      月底試試看能不能生出讓你會用的GUI  哈哈

      讚啦

      2013-12-04
    • arieswoow wrote:

      我想要弄一個有TP的GH60,然後不要再外加滑鼠按鍵

      用Fn切換鍵盤跟TP模式的....這樣不知道有沒有辦法哈哈

       

       

       

      可以做到

      月底試試看能不能生出讓你會用的GUI  哈哈

       

      60%: KBC Poker, KBT Pure, HHKB, TEX, Poker 2, Pure Pro

      80%: KBT Race, Filco-PWC2, CMStorm Rapid, Razer TE, Keycool84, Plum96, NoppooMini84

      100%: Filco M1-M2, Filco Ninja, Cherry G80-3000-3494, Cherry G80-1207, Zowie celeritas

       

      2013-12-03
  • 聽起來完全不適合我這種沒有gui就沒辦法用的人XD....

    2013-11-21
    • arieswoow wrote:

      聽起來完全不適合我這種沒有gui就沒辦法用的人XD....

      F/W的部份我再研究看看要怎麼實現模擬其他UID封包

      現在還在研究怎麼解決我的press +1 +2 按住按鍵時切換層的動作 XDD

      GUI的話,只有標準按鍵有畫出來,透過python

       

      60%: KBC Poker, KBT Pure, HHKB, TEX, Poker 2, Pure Pro

      80%: KBT Race, Filco-PWC2, CMStorm Rapid, Razer TE, Keycool84, Plum96, NoppooMini84

      100%: Filco M1-M2, Filco Ninja, Cherry G80-3000-3494, Cherry G80-1207, Zowie celeritas

       

      2013-11-21
  • AR叔說一聲

    我拿塊板子給你啊!!

    60%: KBC Poker, KBT Pure, HHKB, TEX, Poker 2, Pure Pro

    80%: KBT Race, Filco-PWC2, CMStorm Rapid, Razer TE, Keycool84, Plum96, NoppooMini84

    100%: Filco M1-M2, Filco Ninja, Cherry G80-3000-3494, Cherry G80-1207, Zowie celeritas

     

    2013-11-20
    • arieswoow wrote:
      diearly wrote:

      AR叔說一聲

      我拿塊板子給你啊!!

       

      太好心了吧你!!!

      先問一下,它可以模擬滑鼠按鍵嗎?

       

      Atmel open source的協議是HID

      有宣告的keycode應該都能模擬

      https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt

      但是怎麼包進來是個工程 哈哈

      60%: KBC Poker, KBT Pure, HHKB, TEX, Poker 2, Pure Pro

      80%: KBT Race, Filco-PWC2, CMStorm Rapid, Razer TE, Keycool84, Plum96, NoppooMini84

      100%: Filco M1-M2, Filco Ninja, Cherry G80-3000-3494, Cherry G80-1207, Zowie celeritas

       

      2013-11-20
    • diearly wrote:

      AR叔說一聲

      我拿塊板子給你啊!!

       

      太好心了吧你!!!

      先問一下,它可以模擬滑鼠按鍵嗎?

       

      2013-11-20
  • 怎麼又有點想弄一個來的感覺...

     

    2013-11-20