讓 AI Agent 參與 PCB 設計:MAX-M10S GNSS 四層板從 KiCad 到 JLCPCB SMT 的實作紀錄
4 分鐘
- 一、為什麼要做這塊板
- 二、工作流程:兩個 Agent、一個寫入者
- 三、原理圖:每一個腳位都要對回原廠資料
- 四、佈局:四層板上的 50 Ω RF 走線
- 五、驗證:ERC/DRC 之外還檢查了什麼
- 六、為了 SMT 組裝而改版:Rev A → Rev B → Rev C
- 七、JLCPCB 製造:從 DFM 到生產稿確認
- 八、到貨實測:先收不到衛星,再一步步找原因
- 九、經驗與限制
- 結語
專案資訊
作者:John
專案:MAX-M10S GNSS 驗證板
工作流程與範例檔:GitHub 公開專案
本次 PCB 製造與 SMT 組裝由 JLCPCB 合作支持;文中的 JLCPCB 連結為作者的合作推廣連結。

圖 1:MAX-M10S GNSS 驗證板 Rev C 成品。頂面 17 顆元件由 JLCPCB SMT 貼裝;兩側的 2.54 mm 排針孔留給使用者自行焊接。
這篇文章記錄一塊小板子的完整過程:用 Claude Code 和 Codex 兩個 AI Agent 協助 KiCad 設計,經過 ERC/DRC 與交叉審查,送到 JLCPCB 做四層板和 SMT 組裝,到貨後實際上電、收衛星、定位。
做完的感想是:Agent 幫得上的地方比我預期多,查原廠資料、寫驗證腳本、輸出製造檔都省了不少時間;但它也算錯過阻抗、寫錯過設計規則,還對證據不足的問題下過結論。後來的做法是每一步都要留下能重跑的證據,付款、送單和功能取捨則一律由我決定。
一、為什麼要做這塊板
我之後的幾個專案都會用到 GNSS 定位。與其直接把 GNSS 塞進一塊功能更多的板子,我想先用一塊獨立的小板確認幾件事:
- u-blox MAX-M10S 的周邊電路與腳位接法是否正確;
- 被動天線的 RF 走線在四層板上的做法;
- PCBA 的料號、封裝、貼裝方向能不能一次過;
- 韌體端的 UART、PPS 與 A-GNSS 輔助資料能不能跑起來。
所以這塊板的定位很單純:只有 GNSS,能插麵包板,方便接任何 MCU 測試。
| 項目 | 規格 |
|---|---|
| GNSS 模組 | u-blox MAX-M10S-00B(LCC-18,9.7 × 10.1 mm) |
| 板子尺寸 | 25.0 × 36.5 mm |
| 層數/板厚 | 4 層,1.6 mm,疊構 JLC04161H-7628 |
| 銅厚 | 外層 1 oz,內層 0.5 oz;In1、In2 皆為完整 GND |
| 表面處理 | OSP |
| 天線 | 被動天線,I-PEX MHF I 天線座,不提供天線供電 |
| 電源 | 外部 3.3 V(板上無 LDO,不可接 5 V) |
| 對外介面 | J2:3V3/GND/TX/RX/PPS/EXTINT;J3:GND/SCL/SDA/RESET_N/SAFEBOOT_N/GND |
| 通訊 | UART 9600 8N1;I²C 位址 0x42 |
| 指示燈 | 電源 LED、PPS LED(經 BSS138 緩衝,不直接吃 PPS 腳電流) |
| 組裝 | 頂面 11 種料、17 顆元件由 JLCPCB 貼裝;排針自焊 |
供電與天線注意事項
電源:本板只接受外部穩壓 3.3 V,板上無 LDO,不可接 5 V。
天線:本版僅支援被動 GNSS 天線,不提供主動天線所需的電源。
二、工作流程:兩個 Agent、一個寫入者
這個專案同時用了 Claude Code(以下簡稱 CC)和 Codex。兩者都能讀寫檔案、執行命令,所以一開始就得講好誰能改檔案,不然兩個 Agent 加上我,很容易互相覆蓋。最後定下來的規則是:
-
同一時間只有一個寫入者。 同一個工作目錄、同一個 KiCad 視窗,同時只能有一位 owner 修改。換手前在
WORKLOG.md記下 owner、改了什麼、驗證結果和停止點。 -
重要修改交給另一個 Agent 審查。 審查者只開讀檔與搜尋工具,不能寫檔、不能執行 shell。審查最多兩輪:審查者提出證據,owner 判斷並修改。如果審查因額度或權限中斷,就標示「未完成審查」,不當成通過。
-
改設計前先保存可還原的版本。 改完後比對 netlist、重跑 ERC/DRC,確認差異只出現在預期的地方。
-
付款、送單、寄信、確認生產稿都由我本人決定。 Agent 可以準備文件、起草信件、比對資料,但按下確認的一定是人。
實際分工上,這塊板的原理圖與佈局修改主要由 Codex 負責,它用 Python 腳本呼叫 KiCad 的 pcbnew API 建立板框、擺放零件和設定規則,再用自動佈線腳本走訊號線(一般訊號 0.20 mm、3V3 0.30 mm)。CC 負責工具驗收、RF 部分的獨立複查、投產後對製造檔的獨立複核,以及到貨後的上電測試。JLC 回傳生產稿後的逐層比對,則由 Codex 主導,另由唯讀 Agent 做機械與鑽孔審查。驗證一律使用 KiCad 10.0.6 原生的 kicad-cli 跑 ERC、DRC 與 Gerber 匯出,不只依賴 Agent 自己的判斷。
後來我把這套流程、範本和相關 Agent Skills 整理到 pcb-agent-workflow,下面各節提到的做法在裡面都有對應文件。
三、原理圖:每一個腳位都要對回原廠資料

圖 2:Rev C 原理圖。左上為電源與去耦,中間是 MAX-M10S,右側是天線、ESD 與兩排排針,下方是 LED 與測點。圖上 D1 為原設計料號 PESD3V3C1BSF,實際生產時因缺貨換成同封裝的 PESD3V3Z1BSFYL。
原理圖本身不複雜,難的是每個決定都要有依據。我要求 Agent 在決定任何腳位接法之前,先對照 u-blox 的 MAX-M10S Data Sheet(UBX-20035208)與 Integration Manual(UBX-20053088),並把引用的表格與章節記下來。幾個實際的設計決定:
- 只支援被動天線。 VCC_RF 與 LNA_EN 不接,沒有 bias tee。設計時參考了 SparkFun 的 MAX-M10S 板,但把 SMA 換成更小的 MHF I 天線座,並刪掉主動天線供電電路。
- 板上不放 LDO。 MAX-M10S 的供電範圍是 3.135~3.465 V,這塊板只接受外部穩壓的 3.3 V,絲印直接印「3V3 ONLY」。
- UART 與 PPS 保留 33 Ω 串聯電阻。 沿用 SparkFun 參考設計的做法,模組 TX/RX 方向直接標在絲印上,避免接反。
- PPS LED 經 BSS138 緩衝。 由 MOSFET 驅動 LED,減少模組 TIMEPULSE 腳的負載,接到 MCU 的 PPS 訊號不受 LED 影響。
- 天線端加低電容 ESD。 D1 原本選用 Nexperia PESD3V3C1BSF(典型電容 0.2 pF),送廠時因缺貨改用同封裝的 PESD3V3Z1BSFYL(典型 0.28 pF),兩者對 1.575 GHz 訊號的負載都很小。
早期版本(Rev A、Rev B)還有 RTC 備援電路,讓模組斷電後保留星曆、縮短下一次定位時間。這個電路後來因為 SMT 組裝的限制被拿掉,第六節會說明。
四、佈局:四層板上的 50 Ω RF 走線

圖 3:Rev C 頂層。右上 J1 天線座經 D1 直接連到 U1 的 RF_IN,全程沒有過孔;左下與右側為麵包板排針。
板子只有 25 × 36.5 mm,但 RF 路徑是整塊板最需要小心的地方。這裡的做法:
- 疊構: F.Cu/7628 預浸片 0.2104 mm/In1 GND/芯板/In2 GND/7628 0.2104 mm/B.Cu。兩個內層都是完整的地,內層不走訊號。
- RF 線寬: 以 In1 為參考面的微帶線,介電常數取 4.4,用 Qucs 文件中的 Hammerstad–Jensen 公式計算,50 Ω 對應線寬 0.372 mm。
- 敏感度: 線寬 ±0.025 mm 時阻抗約 48.2~51.9 Ω;介電常數 4.2~4.6 加上介質厚度 ±10% 時約 46.0~53.9 Ω。對一條總長只有 5.5 mm 的走線來說可以接受。
- 退讓與回流: RF 線兩側與地銅保持 1 mm 間距,在 J1、D1、U1 旁放接地過孔,讓回流路徑盡量短。D1 的焊盤間距較窄,有兩段 0.15 × 0.5 mm 的細頸,長度遠小於波長。

圖 4:In1 內層是完整的 GND 平面,RF 線正下方沒有任何切割。
RF 這段也是 Agent 出錯最多的地方,前後遇到三次:
-
公式用錯分支。 第一次的阻抗計算對有效介電常數用了簡化式,條件超出適用範圍,結果作廢。後來改成寫一支腳本,完整實作 Hammerstad–Jensen 公式並加上銅厚修正,數字才穩定下來。
-
回代錯誤。 另一個 Agent 在交叉驗算時,把只該用在傳播計算的厚度修正介電常數又代回阻抗式,算出 51.12 Ω。owner 用公式與 scikit-rf 重新實作反證後,這個結果被撤回。分析工具給的 43.2 Ω 則是用純微帶線模型套在有側邊地銅的結構上,也不能拿來佐證。
-
規則寫錯,DRC 卻照樣通過。 設計規則檔(DRU)中有一條例外,原意是讓 D1 附近的 RF 細頸可以用 0.15 mm 間距,但條件寫成「所有 RF 網路物件」,結果也套用到 GND 鋪銅上。文件寫的 1 mm 退讓,實際只剩約 0.151 mm,而 DRC 完全不會報錯,因為規則本身允許。
第三個問題讓我學到:DRC 通過只代表「符合你寫的規則」,不代表規則是對的。 修正後,CC 在複查時做了一個反向測試:把板子副本的鋪銅間距刻意改小,確認 DRC 仍守住 1 mm;再把規則檔拿掉,DRC 立刻報出 4 個違規。用「讓它故意失敗」的方式證明規則確實在發揮作用,比單看「0 錯誤」可靠得多。
阻抗設計說明
另外要說明,0.372 mm 是設計階段的計算目標,不是板廠的阻抗控制保證。這塊板沒有下阻抗控制的訂單;如果之後量產對 RF 餘裕要求較高,應該改用板廠的阻抗計算結果,並加購阻抗控制。
五、驗證:ERC/DRC 之外還檢查了什麼
Rev C 送廠前的驗證結果:
| 檢查項目 | 結果 |
|---|---|
| KiCad 原生 ERC(全部嚴重度) | 0 |
| 單板 DRC:違規/未連線/原理圖一致性 | 0/0/0 |
| 拼板 DRC | 0 |
| 原理圖與 PCB 的 pin-net 對應 | 68 筆完全一致 |
| Gerber 焊盤與元件核對 | 138 個焊盤 |
| 重新匯出 Gerber 與發行包比較 | 0 差異 |
| 獨立 Agent 唯讀審查 | 無 P1/P2 問題 |
除了數字,審查真正有價值的地方,是抓出「看起來合理但其實不對」的東西。例如有一份審查報告把天線座 J1 列為「確定無法配料」的阻擋問題,Codex 稽核時找不到足夠證據支持,這一項被駁回,後來 J1 也順利貼裝。反過來,CC 在驗收 KiCad 工具時建了一個拋棄式的 LED 測試專案,裡面把 LED 的陽極和陰極接反,也是在 Codex 的交叉審查中被指出。
這裡的原則是:Agent 的結論必須附上證據,而且要讓另一方能重現。 只說「我檢查過了,沒問題」的報告一律不算數。
六、為了 SMT 組裝而改版:Rev A → Rev B → Rev C
這塊板總共改了三版,其中兩次改版都是因為製造端的限制,不是電路錯誤:
| 版本 | 尺寸 | 主要內容 | 改版原因 |
|---|---|---|---|
| Rev A | 20.32 × 50.8 mm | 含 0.1 F THT 超級電容作 RTC 備援 | 原定的超級電容從組裝料庫中下架 |
| Rev B | 同 Rev A | 改成 9 顆 CPH3225A 並聯(約 0.099 F),加分壓保護 | 確認超級電容與電池類元件不接受 PCBA 組裝 |
| Rev C | 25 × 36.5 mm | 移除備援、縮板,保留兩顆 LED;V_BCKP 依手冊懸空 | 最終製造版 |
Rev B 卡關時,我請 Agent 整理問題並透過 JLCPCB 線上客服詢問,客服明確回覆超級電容與電池類元件目前不提供組裝。我一開始選擇讓 JLCPCB 貼其餘元件、儲能電容自己補焊。後來重新評估:這是驗證板,MAX-M10S 的 Integration Manual 也允許 V_BCKP 不接,補焊 9 顆 3225 電容不划算,於是決定整個拿掉備援,順便把板子縮小。這種「功能取捨」是我認為應該由人做的決定,Agent 負責列出影響與手冊依據。
Rev C 的 RF 走線、U1、J1、D1 位置與 Rev B 完全相同,只動電源備援區和板框,所以前面 RF 的驗證可以沿用。
最後送廠的版本又做了三個製造調整,PCB 幾何沒變:
- 表面處理從 ENIG 改成 OSP。
- 只貼頂面: 兩排排針不交工廠,到貨後自己從底面插入焊接。
- D1 換替代料: 原料號缺貨,改用同封裝的 PESD3V3Z1BSFYL,並對照 Nexperia 原廠資料確認封裝、電容與工作電壓。
七、JLCPCB 製造:從 DFM 到生產稿確認
下單在 JLCPCB 網站完成:PCB 5 片,其中 2 片做 Standard PCBA。
拼板與工藝邊交給工廠。 原本 Codex 做了一版 70 × 70 mm 自拼工藝板,後來改成只上傳單板,由 JLCPCB 加工藝邊與定位點,並選擇交貨前拆邊。網站顯示的加工尺寸是 71 × 70.5 mm,收到的是拆好的 25 × 36.5 mm 成品。這樣能省去自己畫工藝邊和 V-cut 的麻煩。
DFM 與工程問答。 我在下單時選了生產稿確認(production file confirmation),付款後工程師會把 CAM 處理後的生產稿和貼裝位置傳回來,請客戶確認後才投產。這一步我請 Agent 協助逐項比對,並對工程師提出四個問題:
| 項目 | 我的問題 | 工程師回覆 |
|---|---|---|
| R7 | 這顆 0603 距成品板邊只有 0.775 mm,拆邊時會不會受力? | 拆邊在 SMT 之後進行,上下為預銑槽、左右沿 V-cut 拆;生產指示單已加註保護 R7 |
| RESET_N 過孔 | 生產稿中一個過孔移動約 0.061 mm,為什麼? | 原位置與焊盤阻焊開窗重疊,無法做塞孔處理,因此微移,不影響性能 |
| Q1 | 網頁標示 Q1 被工程修正 | 依板上 pin 1 絲印修正方向 |
| J1 | 網頁讀到的座標與機械中心不同 | 確認該讀數是游標位置,不是貼裝中心 |

圖 5:頂層銅箔比對,左為原始 Rev C,右為 JLCPCB CAM 生產稿。Agent 把每一層都對齊後逐像素比較,再分類差異。
生產稿比對是我覺得 Agent 最好用的一個環節。它把工廠回傳的 14 個 Gerber 和原始發行包對齊,逐層算差異:外層除了上面提到的一個過孔微移與少數局部銅邊擴張,沒有其他差異;內層只是工廠移除了沒有連到 GND 的孤立焊盤,沒有發現斷路。這是影像比對,不等於完整的網表證明,所以我們仍逐項向工程師確認。這些工作如果用人工對著兩張圖找,很容易漏看。

圖 6:JLCPCB 的貼裝確認頁面,可以逐顆檢查元件位置、極性與料號。圖中為靠近板邊的 R7 與兩顆 LED。
PCBA 的貼裝確認頁可以切換 2D/3D,逐顆檢查位置和方向。我們檢查了 U1 的 pin 1、兩顆 LED 的極性、Q1 的方向和 J1 的位置,確認後才送出。要注意的是貼裝確認有時限,逾時未回覆會直接投產,所以收到通知後最好盡快處理。
訂單在 9 月 30 日投產,中間遇到工廠連假停工,10 月中收到板子並開始測試。

圖 7:左為裸板,右為 JLCPCB SMT 組裝完成的 PCBA。MAX-M10S、天線座、ESD 與 0603 被動元件都已貼好。
排針是收到板子後自己焊的。這裡有一個小教訓:OSP 焊盤對 SMT 沒影響,但手焊排針時比較不容易上錫。所以之後需要手焊零件的板子,我改選無鉛噴錫(HASL)。
八、到貨實測:先收不到衛星,再一步步找原因
測試用 Raspberry Pi Pico 2 W 當主控,UART1 以 9600 baud 接模組,PPS 接 GPIO 中斷,Pico 的 USB 序列埠輸出狀態。韌體會轉發 NMEA,並用 UBX 指令讀取模組資訊(MON-VER、MON-RF、NAV-STATUS 等),這部分程式也是 CC 寫的。
-
通訊正常
NMEA 句子持續輸入,沒有校驗錯誤,UBX 查詢也能正確讀到模組型號與韌體版本。
-
收不到衛星
一開始可見衛星一直是 0。CC 加了 UBX-MON-RF 查詢,觀察天線接上與拔掉時 AGC 的變化:拔掉天線 AGC 會改變,插回又恢復。這代表 J1 到 RF_IN 的路徑是通的,不是開路或短路。CC 同時重新審查了 layout,RF 走線、D1 方向與接地都沒有問題。
最後原因很單純:我手邊那支天線上標示需要 2.7–5 V 供電,是主動天線。這塊板依設計不提供天線電源,天線內的 LNA 沒有上電,當然收不到。中途我還誤拿了一支電視天線來測,那段數據也只能作廢。
-
換真正的被動 GNSS 天線
上電後很快就追到第一顆 GPS 衛星。測試地點在窗邊,可見天空有限,等了一段時間後取得 3D 定位,PPS 也穩定以 1 Hz 輸出,PPS LED 跟著閃爍。
| 項目 | 實測結果(窗邊、被動天線) |
|---|---|
| UART/NMEA | 正常,沒有校驗錯誤 |
| 3D 定位 | 成功 |
| PPS | 穩定 1 Hz |
| A-GNSS 回灌 | 輔助資料全部被模組接受,定位時間縮短約 8 倍 |

圖 8:換上被動天線後,第一次取得 3D 定位時由 Pico 2 W 讀到的 NMEA 原始輸出(節錄 RMC、GGA、GSA 三句,未經改寫)。RMC 狀態為 A(定位有效),GGA 定位品質為 1、使用 4 顆衛星,GSA 模式為 3(3D 定位)。時間、日期、座標、高度、精度因子與校驗碼已遮蔽。
定位時間的部分,我們在韌體中加入了 A-GNSS 輔助:定位後把模組的星曆資料庫(UBX-MGA-DBD)與最後位置存進 Pico 的快閃記憶體,模組重新上電時再回灌。和沒有回灌的冷啟動相比,首次定位時間大約快了 8 倍。這只是在窗邊弱訊號環境下的少量樣本,當作方向性的參考,不是規格值。
九、經驗與限制
AI Agent 做得好的事
- 查資料與對照: 腳位、電壓範圍、Integration Manual 的建議,Agent 能快速找到並標出出處,前提是你要求它附上頁碼或表號。
- 寫腳本做驗證: 阻抗計算、pin-net 比對、Gerber 逐層比對、BOM/CPL 一致性檢查,寫成腳本後可以重跑,比一次性的「我看過了」可靠。
- 處理繁瑣的製造資料: 匯出 Gerber、BOM、CPL、裝配圖,整理給工程師的問題清單。
- 實測除錯: 從 AGC 的變化推論 RF 路徑是否接通,讓「收不到衛星」很快縮小到天線本身。
需要人把關的地方
- 數值與公式: 本文提到的三次 RF 錯誤,都是 Agent 在「看起來很專業」的情況下犯的。重要數字一定要有可重跑的計算過程。
- 規則本身: ERC/DRC 只能證明設計符合規則,規則寫錯時它不會告訴你。
- 審查也會出錯: 審查報告會誤判阻擋問題,也會漏掉問題。所以審查結論同樣要附證據,由 owner 判斷。
- 實體世界: 天線是主動還是被動、焊盤好不好上錫,這些都要拿到實物才知道。
- 取捨與授權: 要不要拿掉 RTC 備援、要不要付款送單、要不要確認生產稿,都應該由人決定。
這塊板下一版會改的地方
- 有兩條 I²C/SAFEBOOT_N 走線和兩個過孔位在模組正下方的頂層,Integration Manual 建議模組下方淨空,下一版會移開。
- MHF I 天線座封裝的接地焊盤比原廠圖面偏了約 0.1 mm,雖然這次貼裝與實測都沒有影響,下一版仍會修正。
- 若需要更快的冷啟動,可以考慮加回備援電源,改用可組裝的方案或接受手焊。
結語
這塊 25 × 36.5 mm 的小板,從 9 月初的 Rev A、三個版本、送廠到 10 月中實測定位,前後大約五週。這次的 Agent 並不是按一個鍵就畫出整塊板子。它比較像一個手很快、會寫腳本,但做完的東西需要被檢查的工程助手。我花最多心思的地方,反而是讓它的每一步都留下證據、讓另一個 Agent 和我能檢查。
JLCPCB 在這次專案中負責四層板製造與 SMT 組裝。對我來說最有幫助的是生產稿確認與貼裝確認這兩個環節,能在投產前看到工廠實際要做的東西,並和工程師直接溝通細節。

圖 9:JLCPCB 外箱前的 MAX-M10S 驗證板,左為裸板,右為 PCBA。
這塊板的 KiCad 原始檔、製造檔、Agent 協作規範與相關 Skills 都整理在 pcb-agent-workflow,有興趣用 AI Agent 輔助 PCB 設計的讀者可以參考。如果想把自己的設計做出來,也可以透過 JLCPCB 下單打樣。
持續學習
讓 AI Agent 參與 PCB 設計:MAX-M10S GNSS 四層板從 KiCad 到 JLCPCB SMT 的實作紀錄
專案資訊 作者:John 專案:MAX-M10S GNSS 驗證板 工作流程與範例檔:GitHub 公開專案 本次 PCB 製造與 SMT 組裝由 JLCPCB 合作支持;文中的 JLCPCB 連結為作者的合作推廣連結。 圖 1:MAX-M10S GNSS 驗證板 Rev C 成品。頂面 17 顆元件由 JLCPCB SMT 貼裝;兩側的 2.54 mm 排針孔留給使用者自行焊接。 這篇文章記錄一塊小板子的完整過程:用 Claude Code 和 Codex 兩個 AI Agent 協助 KiCad 設計,經過 ERC/DRC 與交叉審查,送到 JLCPCB 做四層板和 SMT 組裝,到貨後實際上電、收衛星、定位。 做完的感想是:Agent 幫得上的地方比我預期多,查原廠資料、寫驗證腳本、輸出製造檔都省了不少時間;但它也算錯過阻抗、寫錯過設計規則,還對證據不足的問題下過結論。後來的做法是每一步都要留下能重跑的證據,付款、送單和功能取捨則一律由我決定。 一、為什麼要做這塊板 我之後的幾個專案都會用到 GNSS 定位。與其直接把 GNSS 塞進一塊功能更多的板子,我想先用一塊獨立的小板確認幾件事: u......
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 製造及......