自製QMK無線分離式鍵盤分享(代po - 鍵盤

Barb Cronin avatar
By Barb Cronin
at 2022-02-25T19:31

Table of Contents


代po
第一次在PTT發文,若有什麼問題還請告知
謝謝

原作者的Blog:
https://ziteh.github.io/categories/%E8%87%AA%E8%A3%BDQMK%E9%8D%B5%E7%9B%A4/

===

先來簡短介紹一下這個鍵盤
這個鍵盤姑且暫名爲「ErgoSNM」
其中SNM代表「Say NO to Mouse」

具體來說,此鍵盤想達成:
- 完全無線的分離式人體工學鍵盤
- 三模(藍牙、2.4GHz與USB)
- 整合軌跡球並取代滑鼠功能
- 可以輕鬆變更Keymap(QMK VIA)
- 機械軸熱插拔
- 開源

算是針對一個非常非常小眾的需求
這個鍵盤開發也過了好一段時間了
最近總算有點初步的成果
所以就來獻醜了

先放目前的進度:
https://youtu.be/wOW2UQZ-kfk

是的,它看起來還不像是一個鍵盤
但其實最重要的功能都已經完成了

該影片展示了目前已經可以作爲藍牙鍵盤連線使用
左右兩側可以進行無線通訊
且當另一側斷電後重啓會自動重連
(只展示4個按鍵,但增加按鍵數量這點可以說是豪無難度)
(黑色的USB線只是提供電源而已)

還有影片裡沒拍,但QMK VIA的功能也有了

===

再來講一下比較實際的東西

首先,此鍵盤單一一側的架構大致是這樣:

[PC]
|
| <BLE HID>
|
nRF51822_1
|
| <SPI>
|
ATmega32U4 ---<USB HID>--- [PC]
|
| <UART>
|
nRF51822_2
|
| <Gazell>
|
另一側的nRF51822_2和2.4G接收器


這個鍵盤「目前」使用的韌體是QMK
QMK燒錄在Pro Micro ATmega32U4(以下簡稱32U4)上
而藍牙等無線功能是由nRF51822(以下簡稱nRF51)SoC所提供的

然而,現在它的架構很畸形
每一邊的鍵盤都要有一個32U4和兩個nRF51
之所以會用到兩個nRF51是因爲:
第一個燒錄Adafruit的韌體,爲QMK提供藍牙HID功能
第二個是與另一側溝通,並執行鍵盤矩陣掃描等主要功能
(我不使用QMK進行鍵盤掃描,QMK的鍵值透過UART取得)

但這樣的IC運用真的滿浪費的
主要是受到QMK架構設計的限制
不然其實每一側應該只要一個nRF52840就可以取代上面那一堆了

雖然QMK也可以透過ChibiOS來對ARM進行支援
或是使用ZMK、BlueMicro取代QMK應該也可以
大不了我全部自己寫也不是辦不到
但我還太菜+太懶,所以目前就先這樣子

目前的架構其實已經可以做到三模了
USB和藍牙都是直接透過鍵盤上的QMK達成
而2.4GHz的部分則需要專用接收器
不過這個專用接收器實際上也只是另一個QMK
接收器和兩側的鍵盤之間透過Gazell連接

===

軌跡球的部分我打算使用PMW3360達成
這個光學sensor滿多人在用的
它使用SPI進行通訊

IC已經買回來了
PCB lay好剛送廠還沒來

https://i.imgur.com/zFIg3IH.jpg

我沒上過PCB Layout的正式課程,只會連連看
不過這也不是什麼高頻或射頻電路,應該沒什麼差吧?

雖然我看完PMW3360的Datasheet覺得滿單純的
不過要實際完成軌跡球的功能估計還要花一段時間
畢竟還有硬體要設計

===

按鍵的Layout我其實還沒有定案
主要是我不確定要預留給軌跡球多大的空間
還有我也打不定按鍵數量的主意

目前的設計主要是參考Moonlander和ErgoDox EZ
但我自己也不是很滿意
未來再做調整

目前是這樣:
https://i.imgur.com/x8M3q6R.jpg

外殼的話也要等Layout確定後再3D CAD

===

然後這個鍵盤的程式與電路等資料之後會開源
目前因爲檔案實在是有點亂
加上有些License的問題暫時沒放上GitHub
整理好後就會丟上去了

至於開源授權的方式我儘可能使用MIT
但QMK的部分只可能是GPL
nRF5的部分我還不太清楚它們SDK的License要求
硬體的部分用MIT應該是沒什麼問題

===以下閒聊

在做這個鍵盤的時候,遇到最多問題的應該是nRF51
我自己常用的MCU是STM32
並使用libopencm3

原本我想說MCU不也就這樣
結果在使用nRF51的時候非常不順利
先是SDK版本搞錯
再來是編譯的問題
然後是組語的問題
接著是RAM的問題
... ...

而且我超討厭Keil MDK
SEGGER ES 也一堆問題
我差點就要去用ARM-GCC了
結果我最後還是只好用Keil

然後上面有提到,如果不使用QMK的話
IC的數量可以變成一邊一個nRF52840
但這應該要我完全自己寫韌體才行
雖然之前被nRF51822搞死,但我也差不多瞭解它了
nRF5 SDK的功能還滿完整的
不過這應該還是一個不小的工程

或著使用ESP32應該也可以做大
但它沒有內建USB的支援
這樣還是要多一個IC

還有就是我只是一個窮研究生
平常要搞論文和計劃的東西
閒來無事才有空開發鍵盤

而我爲了開發這個鍵盤已經花了不少錢了
有時候聽到同學說又花了好幾萬去遊戲上
然後我連幾百幾千的電子零件都快沒辦法買
就覺得自己好廢
之前也沒想到開發會這麼花錢

接下來因爲我的銀彈也要見底了
再買零件就要沒錢吃飯了
所以開發進度可能會變慢


未來有進展,且大家有興趣的話再來分享
謝謝

--

All Comments

Jake avatar
By Jake
at 2022-02-23T18:55
ESP32-S2/S3應該就有內建USB支援,但S2不支援藍牙
Yedda avatar
By Yedda
at 2022-02-26T17:06
跪… 三模好強
Agatha avatar
By Agatha
at 2022-02-23T18:55
期待後續
Doris avatar
By Doris
at 2022-02-26T17:06
期待後續
Zora avatar
By Zora
at 2022-02-23T18:55
神人跪推
Tom avatar
By Tom
at 2022-02-26T17:06
推 最近也在打樣sofle跟nRFMicro
Eden avatar
By Eden
at 2022-02-23T18:55
好厲害
Jessica avatar
By Jessica
at 2022-02-26T17:06
Tracy avatar
By Tracy
at 2022-02-23T18:55
目前nrf52840的方案都不怎麼省電喔
Delia avatar
By Delia
at 2022-02-26T17:06
Charlotte avatar
By Charlotte
at 2022-02-23T18:55
推 神人
Jacky avatar
By Jacky
at 2022-02-26T17:06
推實作

遊戲兼文書鼠 希望盡量輕量化

Quanna avatar
By Quanna
at 2022-02-25T14:00
*[預算] 1K內 盡量不要爆QQ *[需求] 前幾年出車禍復健之後 右手腕還是有點怪怪的 原本的滑鼠用差不多半小時就會覺得好像變得越來越沉重 遊戲的話當然就停下來休息 不過用來文書辦公就略微困擾 想換一支盡量輕量化為主的遊戲兼文書鼠 BUT 因為本身手掌不算小 單純的迷你鼠我拿沒十分鐘就會覺得拇指肌腱痛.. ...

100% 有線+藍芽 鍵盤推薦

Freda avatar
By Freda
at 2022-02-25T00:30
打*號欄位為必填欄位 預算禁填無上限 需求請盡量描述清楚. 請益前請先爬文或是上網拍網站瀏覽相關產品,不要伸手牌. *[預算] 5000 左右,視情況可增加 *[需求] 100% 日常工作需要右側數字鍵 辦公室使用,需有線連結,偶爾藍芽連線手機輸入 希望可以方便切換裝置,按個組合鍵就切換裝置 衛星軸,鍵 ...

想買滾輪滑鼠 現在還買得到嗎?

Candice avatar
By Candice
at 2022-02-25T00:24
https://i.imgur.com/VL1otWd.jpg 這一種的 不知道哪邊能買得到 盡量是新品 另外 我有一個鍵盤 https://i.imgur.com/qu0pGgL.jpg 像這種的 雖然有用轉接頭 一般桌機讀得到 但是我的Mac mini 抓不到了 是不是靠轉接頭是極限了 ...

能帶來強烈個人風格的機械鍵盤

Callum avatar
By Callum
at 2022-02-24T15:06
*[預算]6000↓ *[需求] 1. 全尺寸機械鍵盤 2. 有RGB燈效 3. 有獨立音量控制鍵(不要組合鍵的那種) 4. 能帶來強烈個人風格(不想要只是單純的一把閃亮亮RGB鍵盤) ROG Strix Flare II Animate右上的自訂圖像與動畫目前是看了最打中我的 想問問還有沒有類似的選擇 ...

FANTECK MK853 某些按鍵有金屬共鳴聲?

Christine avatar
By Christine
at 2022-02-24T01:00
第一次買紅軸的鍵盤,FANTECH 的MK853覺得很好按,很滿意。 可是按下去會出現金屬的共鳴聲,聽起來像是一種哐哐哐的回音很不舒服, 如果用彈簧音描述這種聲音也有點類似,可能是彈簧的金屬聲。 雖然有些按鍵才會有,但是蠻多顆都有聲音倒是讓人不能忍受! 爬文才知道這種現象好像是會發生的?! 請問 ...