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

看板Key_Mou_Pad作者 (wk4)時間2年前 (2022/02/25 19:31), 編輯推噓11(1101)
留言12則, 11人參與, 2年前最新討論串1/1
代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

02/25 20:35, 2年前 , 1F
ESP32-S2/S3應該就有內建USB支援,但S2不支援藍牙
02/25 20:35, 1F

02/25 20:36, 2年前 , 2F
跪… 三模好強
02/25 20:36, 2F

02/25 22:03, 2年前 , 3F
期待後續
02/25 22:03, 3F

02/25 22:34, 2年前 , 4F
期待後續
02/25 22:34, 4F

02/25 23:06, 2年前 , 5F
神人跪推
02/25 23:06, 5F

02/25 23:11, 2年前 , 6F
推 最近也在打樣sofle跟nRFMicro
02/25 23:11, 6F

02/26 01:45, 2年前 , 7F
好厲害
02/26 01:45, 7F

02/26 02:09, 2年前 , 8F
02/26 02:09, 8F

02/26 02:12, 2年前 , 9F
目前nrf52840的方案都不怎麼省電喔
02/26 02:12, 9F

02/26 11:11, 2年前 , 10F
02/26 11:11, 10F

02/26 11:56, 2年前 , 11F
推 神人
02/26 11:56, 11F

02/26 21:27, 2年前 , 12F
推實作
02/26 21:27, 12F
文章代碼(AID): #1Y6BuOjx (Key_Mou_Pad)