看板 Key_Mou_Pad 關於我們 聯絡資訊
代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 還有就是我只是一個窮研究生 平常要搞論文和計劃的東西 閒來無事才有空開發鍵盤 而我爲了開發這個鍵盤已經花了不少錢了 有時候聽到同學說又花了好幾萬去遊戲上 然後我連幾百幾千的電子零件都快沒辦法買 就覺得自己好廢 之前也沒想到開發會這麼花錢 接下來因爲我的銀彈也要見底了 再買零件就要沒錢吃飯了 所以開發進度可能會變慢 未來有進展,且大家有興趣的話再來分享 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.69.229.102 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Key_Mou_Pad/M.1645788696.A.B7B.html
observer0117: ESP32-S2/S3應該就有內建USB支援,但S2不支援藍牙 02/25 20:35
ryanbug: 跪… 三模好強 02/25 20:36
a619063: 期待後續 02/25 22:03
gn01746666: 期待後續 02/25 22:34
LanceOwO: 神人跪推 02/25 23:06
HyDroGen2528: 推 最近也在打樣sofle跟nRFMicro 02/25 23:11
arnoldliu: 好厲害 02/26 01:45
racket1984: 推 02/26 02:09
racket1984: 目前nrf52840的方案都不怎麼省電喔 02/26 02:12
yys310: 推 02/26 11:11
Fm4n: 推 神人 02/26 11:56
leeyutsung: 推實作 02/26 21:27
kevingamer: 推,加油,你做的事很有意義 12/25 09:46