KeyNest 四鍵小鍵盤製作紀錄|ESP32-S3、RGB、快捷鍵與網頁設定
1 分鐘
- 四顆鍵排在前面
- 外殼跟著 PCB 配
- 四顆按鍵和板上的配置
- 把設定留在板子上
- 長按和雙擊會改變按法
- 按鍵音和後來的更新
- 燒完之後還要能回來
- 專案與圖片來源
- 網頁上的按鍵設定
- 把媒體操作放到手邊
- 從網頁查看韌體更新
KeyNest 四鍵小鍵盤製作紀錄
哈嘍各位,這次分享的是 KeyNest,一個四鍵的小鍵盤。四顆鍵可以各自設定快捷鍵,也有 RGB 燈和按鍵音。設定從網頁透過 USB 傳進板子,存好之後就可以關掉網頁繼續使用。
目前最直接的用法,就是把常用操作放到這四顆鍵上。像是把一顆設成複製,按下去就送出 Ctrl+C。也可以把 Ctrl 和 A 分在兩顆鍵,按住 Ctrl 再按 A。換一組快捷鍵,在網頁改好再存進去就可以,不用重燒程式。


圖 1:左為外殼 3D 模型,右為實機操作畫面。
四顆鍵排在前面
外殼前面是一整排按鍵,下方各有一個燈光視窗。喇叭的長條開孔放在上蓋後方,USB 從後側接進來。手放在前排操作時,線就留在後面。
這個專案是我先講想要什麼,再和 Codex 來回修改程式、網頁和功能整合。我負責看哪裡不對,再拿到實機上試。原本講出來的功能,慢慢變成桌上能按的東西,這個過程蠻有趣的。
外殼跟著 PCB 配
把模型拆開來看,依序是鍵帽、上蓋、PCB 和底座。四顆開關直接排在 PCB 上,上蓋留出整排按鍵的空間,前面的四個視窗再對到 RGB。底座則用固定柱支撐板子。

圖 2:機構展開的 3D 模型,非實機。由上而下是鍵帽、上蓋、PCB 和底座。
外殼要配合的不只是板框。按鍵伸出上蓋的位置、RGB 視窗和後側接頭都要跟板子對上。這些位置放在同一個模型裡看,會比各自看 PCB 和外殼清楚。
四顆按鍵和板上的配置
主控用 ESP32-S3 SuperMini。除了四顆按鍵,板上還有四顆 WS2812B RGB、I²S 麥克風、NS4168 喇叭擴大機和 microSD。USB 同時負責鍵盤輸入和設定通訊。

圖 3:PCB 3D 模型縮圖,非實機或佈線圖。

圖 4:依公開接腳資料重繪的功能連接示意。箭頭表示資料方向,並非 PCB 走線圖;I²S 時鐘由主控提供。
按鍵分別接 GPIO 9、8、7、6,按下時拉低,程式開啟內部上拉。讀到狀態改變後會等 20 ms,確認穩定才算一次按下或放開。上電時如果已經壓著按鍵,也不會多補一次假的按下事件。
四顆 RGB 串在一起,只用 GPIO 13 傳資料。麥克風和喇叭擴大機共用 I²S 的 WS、BCLK,收音和播放各走自己的資料腳,所以兩邊要用同一個取樣率。microSD 另外走 SPI。GPIO 44 已經給 SD 的 MISO 使用,除錯連線就留在 USB,沒有再拿它當 UART 接收腳。
麥克風這邊有一個型號差異要記下來。舊原理圖寫的是 ICS-43434,實際裝的是 ZTS6672。現在左聲道有資料,右聲道測到全零;人聲反應還不理想,實際接線和進音通道都還要確認。
把設定留在板子上
巨集剛接起來時,按鍵事件還要先交給電腦上的背景工具,再由它幫忙輸入。功能能用,但每次使用還要記得把工具開起來。後來在 v10 把快捷鍵、文字和連續動作移到 ESP32-S3 上執行,網頁只負責設定。存好後,就可以關掉網頁,也不用再開背景工具。

圖 5:設定和日常使用分開看。這張是依 v10 之後的板上執行方式重繪的流程圖。
使用時先接 USB 資料線,在電腦版 Chrome 或 Edge 開啟控制台。選要改的那顆鍵,設定動作,再按儲存。網頁的控制資料經瀏覽器直接送到板子,不是先交給雲端伺服器操作 USB。第一次連接仍要自己按下授權。
v10 已經用第一顆實體鍵測過複製,選取文字後按鍵,再貼上,能拿到原本選取的內容。長文字、多步巨集和不同系統的輸入方式,還沒有全部實機測完。尤其 Windows 的中文輸入,這版沒有通用的免背景工具做法。
長按和雙擊會改變按法
v11 又加了長按和雙擊。不過開啟雙擊後,短按要等判定時間結束才執行;啟用特殊按法的那顆鍵也會改成點按動作。像前面把 Ctrl 和 A 分開的用法,就要保留一般按住與放開,不開特殊按法。
所以這兩種模式沒有全部混在一起。要當 Ctrl、Shift 這類需要一直按住的鍵,就用一般單鍵;想讓同一顆鍵做不同動作,再去開長按或雙擊。
按鍵音和後來的更新
自訂按鍵音一開始先共用一份,後來再做到每顆鍵都能放自己的片段。可以上傳音檔,在網頁裁切、試聽,每顆最多 2 秒。多了獨立音效後,原本存好的那份也要留下來,所以 v9 保留共用音效區,再另外給四顆鍵各自的儲存空間。
這裡用的是內建 Flash,沒有另外加一顆 EEPROM 音訊晶片。設定存在 NVS,按鍵音和最新一段錄音分開放。實板曾把四個不同的 2 秒音效寫進 Flash,重開機後再讀回核對,四份內容都有留下來。microSD 目前會間歇讀錯容量或掛載失敗,所以按鍵音先用 Flash。
燒完之後還要能回來
後來又把韌體更新放進同一個網頁。更新前先辨識板子和版本,確認映像相符,再進入下載模式。v12 的實板更新只寫入 app 區,寫完再核對程式,以及原本的設定和音檔區。
這次實際遇到的問題是:程式已經燒好,一般重啟卻還留在下載模式。後來依 ESP32-S3 的流程,清掉 RTC 裡強制進入下載模式的旗標,再做重置,同一份 v12 才回到正常執行。沒有為了退出下載模式再重燒一次,也沒有動到 eFuse、設定或音檔。
重新連上控制台後,能讀到 KeyNest 和 v12,原本四顆鍵的設定也還在。這次是程式已經燒好了,卻還要繼續處理重啟,才真的回到能使用的狀態。
還在處理的地方
除了 SD 和人聲收音,音訊傳輸也還有偶發校驗錯誤,收音和播放品質都還在調整。影片中的按鍵說話使用示範音檔。程式不會自動格式化 SD 卡。
如果沿用保存電路的電池供電接法,要先拔掉 USB。該接法的模組 5V 與 USB 直接相連,軟體沒辦法補上電路缺少的電源隔離。
專案與圖片來源
有興趣的可以看公開專案,程式和更新紀錄都放在 GitHub。
程式與設計資料:GitHub 公開專案
設定控制台:KeyNest 設定頁
原始公開影片:泰瑞電電 Instagram 影片
本文硬體依據為 hardware/evidence 與 firmware/README;修改及實測依據為 firmware/keyboard/VALIDATION。硬體圖片取自原始公開影片。
網頁上的按鍵設定
設定頁把四顆按鍵和動作編輯放在同一個畫面。先選要設定的那一顆,再挑單鍵、快捷鍵、文字或連續動作,比直接改程式容易看懂。實際使用仍要連上鍵盤,再把變更儲存到板子。

圖 6:按鍵設定網頁的展示畫面。可選擇四顆按鍵及不同動作;這裡是展示模式,不會把設定送到實體鍵盤。
把媒體操作放到手邊
動作總表依功能分類,媒體控制裡有播放與暫停、靜音、增加音量和降低音量。選好要使用的按鍵與按法,再把動作指定進去,最後一起儲存。這樣常用的操作就不必每次回到軟體裡找。

圖 7:媒體控制分類的展示畫面,列出播放、靜音及音量動作。畫面呈現的是網頁操作介面,不是本次實機測試結果。
從網頁查看韌體更新
韌體更新也放在同一個控制台。視窗會顯示鍵盤連線狀態、最新版本和更新步驟;尚未連接或還在展示模式時,不會開放燒錄。實際更新前仍要辨識正確裝置,再依步驟操作。

圖 8:韌體更新視窗的展示畫面,顯示最新版本及連線狀態。這張圖沒有進行連線或燒錄。
持續學習
KeyNest 四鍵小鍵盤製作紀錄|ESP32-S3、RGB、快捷鍵與網頁設定
KeyNest 四鍵小鍵盤製作紀錄 哈嘍各位,這次分享的是 KeyNest,一個四鍵的小鍵盤。四顆鍵可以各自設定快捷鍵,也有 RGB 燈和按鍵音。設定從網頁透過 USB 傳進板子,存好之後就可以關掉網頁繼續使用。 目前最直接的用法,就是把常用操作放到這四顆鍵上。像是把一顆設成複製,按下去就送出 Ctrl+C。也可以把 Ctrl 和 A 分在兩顆鍵,按住 Ctrl 再按 A。換一組快捷鍵,在網頁改好再存進去就可以,不用重燒程式。 圖 1:左為外殼 3D 模型,右為實機操作畫面。 四顆鍵排在前面 外殼前面是一整排按鍵,下方各有一個燈光視窗。喇叭的長條開孔放在上蓋後方,USB 從後側接進來。手放在前排操作時,線就留在後面。 這個專案是我先講想要什麼,再和 Codex 來回修改程式、網頁和功能整合。我負責看哪裡不對,再拿到實機上試。原本講出來的功能,慢慢變成桌上能按的東西,這個過程蠻有趣的。 外殼跟著 PCB 配 把模型拆開來看,依序是鍵帽、上蓋、PCB 和底座。四顆開關直接排在 PCB 上,上蓋留出整排按鍵的空間,前面的四個視窗再對到 RGB。底座則用固定柱支撐板子。 圖 2:機構展開的 3D 模型,非......
自製 USB 2.0 HUB:三個 USB-A、雙 Type-C 與 3D 外殼設計紀錄
自己做一個 USB 2.0 HUB 哈嘍各位,這次分享我做的 USB 2.0 HUB。 圖 1:實機照片。 做這個 HUB,我想把接口和外觀一起整理好。三個 USB-A 放在同一側,兩端再各留一個 Type-C,外殼的開口也跟著這個配置走。希望接起來能靈活、實用,線材和外觀也保持整潔、輕巧。這一版用的是 SL2.1A,外殼則交給 JLC 的 3D 代工製作。 這一版已做過基本連線和檔案傳輸測試。目前還是第一版原型,電源和 Type-C 的設計也有要注意的地方,後面會一起說明。 三個 USB A 放一起 兩端留 Type C 板上看得到五個插座,不過規劃上是一個上游、四個下游。標示 USB C IN 的 Type-C 接主機,另外三個 USB-A 和標示 USB C OUT 的 Type-C 則是下游接口。 當初也想把下游的 Type-C 接到下一個 HUB,讓線可以沿著兩端接下去。這是接口安排時的想法,串接的供電和相容性還沒有完整驗證。 圖 2:PCB 佈局。三個 USB-A 排在同一側,兩端各留一個 Type-C。 HUB 的電路 圖 3:依原理圖整理的資料通道關係。箭頭表示雙向資料傳輸,不是供......
從零打造「智慧喝水管家」:ESP32-C3 硬體設計、3D 列印與全韌體開發實錄
前言: 當我想把一個在麵包板上用杜邦線插得像蜘蛛網一樣的原型,變成一個能實用半年的智慧健康穿戴裝置時,會遇到多少坑?感謝全球領先的 PCB 製造與 PCBA 代工廠 JLCPCB 的贊助邀請,讓我有機會記錄下這個專案從初期的靈感發想、電路原理圖繪製、PCB 佈局優化、JLCPCB 工廠打樣/SMT 貼片,到 3D 機構外殼與 ESP32-C3 低功耗韌體的全流程開發記錄。 歡迎透過以下連結註冊 JLCPCB 繁體中文站並進行下單! https://jlcpcb.com/hk?from=Stonez56 一、 專案發想與健康科學背景 1.1 為什麼需要一個「智慧喝水管家」? 許多人日常工作中常遇到的問題是:工作一忙起來就忘記喝水,或者直到劇烈口渴才一次暴飲暴食般地灌水。在預防醫學與生理學中,大腦脫水 就會引發專注力下滑與認知下降,而人體腎臟每小時處理水分也有其上限。為了實現「少量多次」的科學補水,我需要一個能夠非侵入式感測喝水動作、定時溫和提醒、且具備超長續航力的智慧貼合裝置。 1.2 產品原型與形態演進 • 原型階段 (Breadboard Prototype): 使用 ESP32-C3 Supe......
設計精密 72 顆 LED 可穿戴手錶:使用 JLCPCB SMT 組裝製作 40 mm 圓形 PCB
重點摘要 本案例研究介紹一款採用精密 40 mm 圓形 PCB 製作的 72 顆 LED 可穿戴手錶。你將了解 JLCPCB SMT 組裝如何省去 70 多顆 0603 LED 的手工焊接、ENIG 表面處理如何確保可穿戴應用的可靠性,以及透過鼠咬孔分離耳實現圓形電路板自動組裝的巧妙拼板策略。整個專案涵蓋從 EasyEDA 原理圖繪製、韌體優化,到商用級不鏽鋼外殼整合的完整流程。 簡介與設計動機 製作客製可穿戴硬件,是現代電子領域中最具成就感、同時也最具挑戰性的工作之一。市面上的智能手錶通常依賴複雜 OLED 顯示器和耗電量較高的處理器,而開源專案創作者 Taifur 則希望製作一款極簡、具工業級質感的時計:LED 圓形手錶。 核心構想簡單,但在技術上要求很高:使用由 72 顆獨立 SMD LED 組成的環形顯示器,以 ATmega328P 微控制器和高精度 DS3231 實時時鐘(RTC)驅動。 然而,要將 72 顆 LED 的放射狀電路轉化為可穿戴產品,會遇到多項重大工程挑戰: 機械限制:PCB 直徑不能超過 40 mm,才能放入市售手錶外殼。 組裝複雜度:在 40 mm 電路板上,手工焊接 ......
Athena:打造高效能 6 層火箭航電 PCB
重點摘要 Athena 是一款開源飛行電腦,採用三 MCU 架構、冗餘感測器及多個通訊介面,整合於緊湊的 6 層 PCB 上。 這塊 80 × 140 mm 的電路板整合三個 STM32 MCU、三個 IMU、氣壓計、GNSS、LoRa、Bluetooth、CAN、USB、快閃記憶體、SD 卡及電源管理功能。 6 層 PCB 為這項複雜設計提供充足的佈線容量、有組織的電源分配、清晰的訊號規劃及緊湊的功能整合。 這個專案展示開源硬件如何透過專業 PCB 製造及組裝服務,由設計落地為實體硬件。 先進火箭技術需要飛行電腦在緊湊而可靠的硬件平台上整合運算、感測、通訊、電源管理及控制功能。NotARoomba 的開源飛行電腦專案 Athena 透過三 MCU 架構、冗餘感測、多個通訊介面、專用控制通道及 6 層 PCB,滿足這些要求。 Athena 電路板尺寸為 80 × 140 mm,整合三個 STM32 MCU、三個 IMU、氣壓計、GNSS、LoRa、Bluetooth、CAN、USB、快閃記憶體、SD 卡介面及多項電源管理功能。專案使用 EasyEDA 設計,並由 JLCPCB 負責 PCB 製造及......
ESP32 S3 無損音樂播放器製作記錄
作者:輕鬆易學嵌入式 YouTube 影片連結:https://www.youtube.com/watch?v=axT8qfYF0Kk 專案原始碼與 PCB 設計檔案:GitHub 專案倉庫 ESP32 S3 無損音樂播放器製作記錄 從洞洞板到四層 PCB 的設計 焊接與音訊測試 手機已經可以完成絕大多數聽音樂的需求,為什麼還要自己做一臺播放器? 對我來說,吸引人的地方是能夠親手掌握整個過程:音樂檔案怎麼從 SD 卡讀出來,解碼後的資料怎麼送到 DAC,螢幕重新整理會不會影響播放,換一種輸出方式又會發生什麼。遇到問題,可以改硬體、查日誌,也可以透過錄音和盲聽來驗證自己的判斷。 於是,我用 ESP32-S3 搭配 SD 卡、顯示螢幕和外接 DAC,做了這臺音樂播放器。它最早只是洞洞板上的一堆模組和飛線,後來逐步變成自己設計、自己焊接的四層 PCB。 這篇文章就把這次升級的過程整理出來:從確定硬體架構、使用 EasyEDA 設計 PCB,到打樣、手工焊接、韌體除錯,最後再用幾種不同的音訊輸出方案做一次盲聽對比。 圖 1 播放器成品與手機網頁控制 來源 影片 6:52 一 先在洞洞板上 把音樂播放出來 ......