
ErgoSNM 是我自己設計並製作的分離式人體工學機械式鍵盤(Split ergonomic keyboard),並且有可以取代滑鼠功能的軌跡球,其韌體使用 QMK。
這把鍵盤的目標就是讓人們(尤其是常需要敲鍵盤寫程式的工程師,甚至是 Vim 的使用者)在使用電腦時,右手可以不用在鍵盤與滑鼠之間來回移動。長時間使用電腦的話,這僅僅幾公分的移動都會讓效率下降,最糟糕的是造成手部的負擔。就算 ErgoSNM 可能難以完全 100% 地取代滑鼠,但希望至少可以勝任簡單的遊標操作。
為了做成這把鍵盤,我開始研究 QMK,所以我才會寫了一系列的 QMK 教學文。而現在,第一個可以正式當作鍵盤使用的 Rev 2.1
版完成了,因此來介紹一下。
特色與規格
- 全部 64 鍵。其中左側(有拇指區)有 29+6 鍵,右側(有軌跡球)有29鍵。
- 軌跡球用於移動滑鼠遊標及滾輪滾動,使用 PixArt PMW3360DM-T2QU 光學感測器。
- USB Type-C 接口。
- 支援 Cherry MX 形式的鍵軸熱插拔。
- Column-staggered 佈局。
- 支援 Vial,可以隨時編輯 Keymap 鍵位及其它鍵盤配置。
- 使用 Raspberry Pi RP2040 ARM Cortex-M0+ 微控制器,搭配 16MB 的外接 Flash。
- SRV05-4 USB ESD(Electrostatic discharge,靜電放電)保護。
- 自恢復保險絲提供短路或過電流保護。
- 有板載 RP2040 的 RESET 與 BOOT 按鈕。
- 一個可自訂的 LED。
- 連接兩半的線可以選用 3.5mm TRRS/TRS 或 USB Type-C。
- 左半有 SWD 與 USB D+/- Debug 測試焊盤。
- 500mA 3.3V LDO。
- 支援 JLCPCB 的 PCBA 服務,大部分的零件都不需要自己焊接。
整體的鍵盤 Layout 參考並結合 Keebio Iris 與 ZSA Moonlander,為 6x5 設計,Column-staggered 的設計可以使手指的擺放更加自然。
預設在切換到 Layer 1 時,軌跡球會變成滑鼠滾輪的功能。滑鼠按鍵可以直接分配到特定的鍵上,而我使用 QMK Combos 功能,設定同時按 J+K 鍵時是左鍵;K+L 鍵時是右鍵;J+L 鍵時是中鍵(滾輪按下)。
零件
整個鍵盤的 PCB 分成 4 個部分:
- 左半主 PCB
- 右半主 PCB
- 拇指區子板(Thumb cluster)
- 軌跡球子板
所有的 PCB 檔案都在 GitHub 上。詳細的零件清單請看 Parts List。




組裝
因為我有使用 PCBA 服務,所以大部分的零件都不用自己焊接,包含最麻煩的 QFN 封裝 RP2040。但是為了降低成本,有一些零件我還是選擇自己手工焊接,包含了:USB、LDO、保險絲、鍵軸熱插拔座、TRRS 座、FPC/FFC 連接器。另外拇指區和軌跡球的子電路板我沒有用 PCBA,所以這 2 片是完全自己焊的。
將焊接好的 PCB 連接起來。這時就可以先燒錄 QMK 韌體進去,測試功能是否正常了。

PCB 搞定後,就可以安裝外殼。我的外殼一樣是找 JLCPCB 訂,使用 SLA 黑樹脂 3D 列印,效果還不錯,價格也不會太貴。使用電烙鐵將熱融螺帽嵌入到外殼預留的螺絲孔中,再將 FR4 定位板(一樣是 JLCPCB 製)鎖進外殼。也可以先將定位板與 PCB 組合好再一起鎖進外殼裡,我設計的螺絲孔都沒有遮擋或干涉。

先插入一些鍵軸把 PCB 與定位板固定,再將剩餘的鍵軸一一安裝上。我使用的是億光水王軸 v2 55g。



最後鎖上底蓋和腳架。這裡的腳架是 MFJ 尼龍 3D 列印的。

完成後就可以正式使用。Vial 軟體可以正常辨識與運作。

使用
分享一下我親自使用約 3 週的想法。
- 不確定是我太習慣 Iris 還是目前的 Layout 真的不好,最下面的 space row 很常按錯。但我朋友表示他沒這個問題,而且 6x5 配置的鍵盤其實不少。
- 右手拇指區只有軌跡球果然太空了,應該要再多加一些按鍵。
- 滾輪的滾動速度已經設到只剩1了但還是太快,這個要再想辦法。
- 有一點比較奇怪的是,
v2.0
時左側接電腦軌跡球也會動,但v2.1
就只能接右側,明明這部分的程式沒動到。 - 測試時我不小心燒壞一片 PCB 上的 RP2040,懷疑是熱插拔 TRRS 的關係(TRRS 不是設計用來帶電熱插拔的),這點也要再看看如何改善。
- 我本來就在用食指軌跡球,所以拇指球也很快就上手了,現在除了遊戲外應該都沒什麼問題。
開發過程
早期
SNM 鍵盤計劃是我從 2020 年 6 月開始的,目標是設計並作出整合鼠標裝置的鍵盤。
最一開始是受到 TEX Yoda II 啓發,因此最初的計劃有也是做 60% 鍵盤,而鼠標裝置也是指點桿(小紅點),然後開始慢慢地學習 QMK。後來我朋友推坑我 Keebio Iris v4 分離式鍵盤,而我當時也開始使用食指軌跡球取代滑鼠,因此計劃改成做分離式鍵盤+軌跡球。
但是因為我還有其它東西要做,所以這個鍵盤的進度一直不多,包含我在研究要如何做到完全無線且還有軌跡球的功能。如果只是要全無線的分離式鍵盤其實不會太難,要再加上軌跡球功能的話也還好,但是因為達成方案很多種,包括不使用 QMK 韌體,我想把每一種都實際測試過一次再決定最終方案,所以才會拖這麼久。

其中包括為了測試方便而自己設計的各種開發板:搭載 nRF52840 (MDBT50Q) RF SoC 的 MDBT Micro;搭載 ATmega32U4、取代 Pro Micro 的 Next Micro;搭載 RP2040 的 RP Micro。
期間還受到了 PCBWay 的贊助,他們免費幫我生成了一批 PCB 與鋼網。人生第一次被贊助。



到了 2022 年 2 月 左右,我覺得這樣一直花錢和時間研究無線方案好像不是很好,而且其實也有比較確定的辦法了,所以我覺得開始正式做鍵盤的部分,想要先作出一個有線版本的測試鍵盤 Layout 與軌跡球等,當作階段性試驗,也就是現在的 ErgoSNM Rev 2.1。
Rev 1.0
Rev 1.0 的 PCB 主要是測試鍵盤 Layout 與我自己畫的鍵軸 Footprint 是否有問題。


Rev 2.0
Rev 2.0 其實和最後的 Rev 2.1 已經幾乎沒有差別了,幾乎只差在子板的連接器由 JST GH1.25 改成 FPC/FFC,Rev 1.0 的問題都修正了。
這時主要在確認外殼的設計與可生產性。








結語
總之,隨著 Rev 2.1 的完成,ErgoSNM 總算是有點階段性的成果,接下來會再想辦法慢慢地改善它。
留言可能不會立即顯示。若過了幾天仍未出現,請 Email 聯繫:)