[鍵盤] 以Pro Micro 自製機械鍵盤筆記分享

鍵鼠

15120

大家好,這篇文章主要是紀錄改裝樹梅派Pi-400為機械鍵盤的筆記
本身在這方面完全是大外行,期間參考板上眾多前輩的分享,
在爬文及製作時有將一些資訊記錄下來,想將過程回饋板上,
第一次在板上發文,有任何不妥處還請告知,謝謝。

進入正文前,首先提要幾個參考來源:

‧鍵盤布局網站
http://www.keyboard-layout-editor.com

‧QMK韌體「Keyboard Firmware Builder」
https://kbfirmware.com/


其他參考文章:

‧「40%keyboard」的改裝Pi-400文章
https://www.40percent.club/search?q=PI+400

‧「Jeff Geerling」上的專業Pi-400拆解
https://www.jeffgeerling.com/blog/2020/raspberry-pi-400-teardown-and-review

‧「henry jiang」在EasyEDA分享的鍵盤電路圖
https://easyeda.com/henryjiang0x3639/Atmega32u4-Development-Board

‧「ruiqimao」在Github上寫的鍵盤PCB電路入門
https://github.com/ruiqimao/keyboard-pcb-guide

‧本文的啟蒙,板上前輩「observer0117」分享的「DIY自組直列式鍵盤」
https://www.ptt.cc/bbs/Key_Mou_Pad/M.1623060630.A.CF3.html



----------------本文開始--------------

1. 鍵盤佈局規劃(keyboard-layout-editor.com)

**布局規劃時,按想要設計的最大按鍵數,
選擇使用的開發板(有多少Pin可用)。

以ProMicro為例,常規有18pin可用,即可以製作9x9的81鍵鍵盤;
若移除板子上的預設LED,
參考此網站:https://golem.hu/guide/pro-micro-upgrade/
則可多2個pin,至多可製作10x10的100鍵鍵盤。

當然,如果不考慮鬼鍵問題,可以透過串接容納更多按鍵是沒有問題的。


2. 生成Kicad檔及電路繪製(https://kb.xyz.is/

**若此網站失效,參考下列Reddit作者的作品:
shorturl.at/kEKS0

kb.xyz.is網站非常簡單,
只需要將Keyboard-layout-editor.com網站中
Raw欄位下的文字全選貼上即可生成Kicad檔做進一步拉線與修改。

KiCAD為開源免費軟體,直接搜尋下載即可。
打開KICAD檔後需要做一次資料庫更新跟元件映射刷新,
詳細步驟可能隨版本更新有所變動,得適時爬文一下。


3. 送製PCB板(保守可在步驟4、5完成,並且測試完後再送)

目前有很多網站都可以上傳檔案訂做PCB電路板,
這邊使用JLCPCB,覺得主要是網站訂購流程設計得不錯,
唯一缺點是一次需要訂製5片(含)以上。

從KICAD完成繪製PCB後:

A. 輸出Gerber檔,於檔案>繪製。
勾選全部圖層,預設線粗0.15mm,其餘照預設即可。
https://imgur.com/2oi2Ddf


B. 輸出Drill(鑽孔),於檔案>輸出加工文件>生成.drl文件。
無腦照預設就可,選擇「生成鑽孔文件」及以 「生成地圖文件」

C. 將A、B步驟中獲得的檔案壓縮為zip後,
即可從JLCPCB或其他網站訂購步驟中上傳。

雖然PCB訂購網站未必需要提供那麼多檔案,但是不管它。
從訂購到到貨非常快,最快大概4~5天就能到手。

**上圖可看到衛星軸的孔,我選擇的是直接裝在PCB上的衛星軸
(另一種是裝在定位板上的),有大小孔之分。
圖中空白鍵的衛星軸安裝孔位是大孔在上,
表示鐵桿是從軸上繞,SHIFT、ENTER等鍵則反之。


4. 規劃QMK鍵盤韌體(https://kbfirmware.com/

A. WIRING:
檢查鍵盤布局,各鍵的Col、Row接線是否與KICAD中的一致,
又或者修改KICAD布局與本網站WIRING一致。

B. PIN:
規劃col、Row對應的PIN腳,ProMicro為Atmega32U4晶片。
PIN跟ProMicro對應的腳位參此網站
https://golem.hu/article/pro-micro-pinout/

前面有提過的獲得Pro Micro額外2個腳位作法參考:
https://golem.hu/guide/pro-micro-upgrade/
做法大致是把板子上LED的電阻用電烙鐵給「推掉」


C. KEYMAP以降應該就不用多說了,照順序完成即可。

D. SETTING:
可以替Layout命名,這邊直接命名為「kb」。

E. COMPILE 匯出韌體:
i. 匯出選項有兩個,一個可載.hex,
另一個為ZIP,我們只需要ZIP
ii. 下載ZIP後解壓縮,會獲得一個「qmk_firmware」的資料夾
iii. 將裡面的makefile檔刪除,
從本網站中獲得的makefile檔會造成後續編譯失敗。
iv. 至此已完成韌體編譯前準備,可以先擱著,跳下一步驟

**FN鍵在QMK中定義為MO(),括弧中為圖層(layer)的數字,
預設為0,MO()的功用在於按下去時可暫時切換鍵盤層為n,
接著再對目標層的鍵位做更改,即可達到FN鍵的功能。
鍵位說明參此網站:
https://docs.qmk.fm/#/keycodes?id=keycodes-overview

**韌體規劃到一半可以透過SETTING頁籤中的
「Save Configuration」按鈕來儲存設定檔。


5. QMK編譯韌體

**其實有在想如果直接刷https://kbfirmware.com/
下載下來的hex檔可不可行,若是一般5V的ProMicro說不定可以,
就不用特地做步驟5。

A. 到QMK網站下載必要軟體,詳QMK Get Start說明頁面:
https://docs.qmk.fm/#/newbs_getting_started

下載QMK MSYS,下面有提到的手動安裝選項不用理它,那是舊版。
過程中應該會有提示說要不要複製檔案到使用者目錄中,選是。

B. 按照上面QMK Get Start說明頁面的步驟完成qmk setup。

C. 準備將步驟4的檔案開始編譯,首先確認檔名:

點進剛才獲得的qmk_firmware資料夾,可以看到裡面還有有以下路徑
/Keyboard/kb/keymaps/default等資料夾,

其中「kb」以下(含)才是這個自己做的鍵盤的檔案,
其他是編譯過程中會需要的檔案。

而「kb」這個名稱,不管在韌體規劃網站上
SETTING取什麼這邊都是叫kb,不做更改省得後面麻煩。

D. 準備複製檔案到QMK目錄中

i. 檢查使用者目錄C/使用者/<自己的使用者名稱>
看下面有沒有一個也叫做「qmk_firmware」的資料夾。
沒的話重新檢查步驟5-A。

ii. 複製從剛剛步驟4-E中提到的「qmk_firmware」資料夾,
貼上到C/使用者/<自己的使用者名稱>當中,
檔案有重複選擇覆蓋。

E. 編譯韌體(3.3V/8MHz的ProMicro請先拉到最下面的「補充-2」說明)

i. 按WIN+S搜尋「QMK MSYS」並執行。

ii. 鍵入cd /c/Users/<自己的使用者名稱>/qmk_firmware
掛載QMK主目錄。

iii. 鍵入qmk compile -kb kb -km default
開始編譯韌體,這是最重要的步驟,
順利的話就會有跑很多[OK],或是一些警告,然後完成。

若檔案有差錯,會有各種奇怪的錯誤訊息。

以前面提到的makefile檔為例,
如果沒有事先刪除就貼到QMK主目錄中,
就會造成各種以makefile檔為表頭,
以及提示kb.h(keyboard.h)檔中至少要放入一個keymap,
或是info.json檔的錯誤訊息。

iv. 完成編譯後,會自動在QMK主目錄下的
.build資料夾中生成kb_default.hex檔案,
確認有後就可以準備燒錄到ProMicro中。

6. 燒錄韌體

A. 下載QMK Toolbox,初次安裝後開啟提示要安裝驅動,請安裝。

B. 開啟QMK Toolbox,
在Local File中選擇QMK主目錄/.build,找到kb_default.hex檔案

C. USB線插上ProMicro,待下方訊息顯示找到硬體後就可以按下Flash燒錄韌體。

https://imgur.com/i39uCIN



-------------本文結束-------------

補充說明:

1. ProMicro刷壞的情形

特徵是插上USB線後,Windows跳出無法辨識或損壞的資訊,
且QMK Tools認不出硬體(按下Flash後顯示找不到硬體)。

解法:

用迴紋針或其他導電物在USB插著ProMicro的情況下,
快速短路RST+GND兩次,
此時會進入8秒的Bootloader模式可以重新刷韌體,
趕緊回到QMK Tools重新刷韌體,
也可Clear EEPROM後再重刷。
怕速度不夠快時,可以勾選AUTO Flash+Flash when ready。

2. 3.3V / 8MHz的ProMicro一直刷失敗的情況

回到C:\Users\<使用者名稱>\qmk_firmware\keyboards\kb
路徑下,找到rules.mk檔案,
以記事本開啟後修改F_CPU從16000000為8000000存檔。
再重新跳回步驟5-E執行編譯並且燒錄一次。


最後是一些收到電路板後組裝照及成品:

https://imgur.com/xea1vCV

這邊用的SMD二極體型號為DIODES 1N4148W,
東西很小,可先在焊盤先上錫,
再焊上其中一腳固定,另一腳補個錫即可。

https://imgur.com/plJIXEb


https://imgur.com/bqkOXml


https://imgur.com/8HAOVXp

電路板與Pro Micro完成接線

https://imgur.com/OQuvlAj

為了方便,有保留PI-400的上蓋,
剪去鍵盤間隔塑料後直接把PCB黏上去。

https://imgur.com/gKCuSHT

成品,使用太豪櫻花道鍵帽
跟PI-400的配色蠻搭的。

-------------------

2023/01/31編輯:
增修一些文字及照片

並補充本次製作上的一些檔案,
包含KICAD檔、QMK韌體檔、鍵盤布局等,
KICAD佈線弄得頗亂,但仍提供給有興趣的板友參考,
請參下方連結:
https://reurl.cc/AyoOmp


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.54.29 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Key_Mou_Pad/M.1674893846.A.292.html
darktt1樓詳盡的資料,這對想要自製鍵盤的人很有幫助 01/28 16:56
Belieeve2樓趕快推不然別人以為我看不懂 m(_ _)m 01/28 18:00
observer01173樓推,我也想把PI400的薄膜鍵盤改掉,不過雜事好多... 01/28 18:10
kevingamer4樓這樣哪算外行w 要我這樣跑一次流程不知道會失敗幾次 01/28 18:19
iamgodisme5樓好猛 01/28 18:22
linda8886樓推 好厲害!! 01/28 18:43
Knuckleslee7樓pi400有什麼強項值得這樣改? 01/28 18:54
本人8樓謝謝板友回應,起心動念是想把太豪鍵帽用掉,未來也可 01/28 19:35
本人9樓以拉線出來直接當一個獨立鍵盤用 01/28 19:35
a58524andy10樓強 推 01/28 19:42
observer011711樓PI400再加個螢幕就可以改成cyberdeck 01/28 19:43
foulhouse12樓推高手 01/28 23:40
amiwry13樓太猛了,推一個 01/29 16:03
FAccounting14樓厲害 推 01/30 19:47
rickey127015樓 01/31 16:10
wk41593716樓 02/06 21:03
更多鍵盤
[鍵盤] 沒有比較沒有傷害,三家三色鍵帽對比
[鍵盤] 米物 ART Z830 75%三模 + FBB鍵盤展示架
[鍵盤] FC660C 靜音版 Topre 45g 改裝分享
[鍵盤] 請教Nuphy halo的冷萃薔薇和小袋鼠軸
[鍵盤] Planck配列40%鍵盤 CSTC40 開箱體驗
[鍵盤] 背骨玩家-INFINITY無垠-/w 銀河金
[鍵盤] 微軟All-in-One多媒體鍵盤 適合桌機嗎
[鍵盤] DIY一把65%鍵盤