SoT V4 重新整理 §13(獨立 6 秒通氣節奏)與 §14(OHCA 內 6 秒通氣)章節編號並新增暫停/繼續流程: 獨立模式 §13.11/§13.12 主按鍵短按暫停 / 繼續,繼續後秒數從 1 重新開始; OHCA 內 §14.9/§14.10/§14.11 暫停 / 繼續 / 關閉透過快速功能選單,主按鍵短按不再作為暫停鍵, 避免與 OHCA 警報消音、選單確認衝突。新增 §13.3 / §14.2 6 秒一口核心定義(第 1 秒 = 給氣提示點,2~6 秒 = 等待間隔), §14.8 EPI 警報優先處理(警報音優先 / 視覺秒數可繼續顯示)。本 flow.html 對齊章節:
建立 GPIO 分配單一真相來源(SSOT),同步 SoT V1 §21.3 與 flow.html。涵蓋 8 按鍵分配(依 §4.1 封版)、顯示/錄音/擴充策略、互斥約束、ESP32-S3 禁用區。完整 SSOT 文件:docs/gpio-allocation.md。新增 §20 GPIO 腳位分配總表 章節:
PM 提出 7 項未來擴充保留需求(錄音、CO 偵測、獨立藥物紀錄)。V1 不啟用以下功能,但硬體腳位、外殼空間、資料結構與主功能表架構需保留擴充能力。新增 §19 擴充預留設計 章節整合說明:
院前 OHCA 現場的給藥與事件時間同步輔助裝置,協助 EMT / ALS 接手人員:
開機 Logo 1~2 秒後進入,預設游標停在 OHCA 案件。
案件啟動不等於 EPI 倒數啟動。倒數只能由「本機 EPI 二段確認」成立後啟動。
EPI / 電擊 / Amiodarone 共用「按鍵 → 確認畫面 → 再按 → 成立」模式,避免誤觸建立錯誤紀錄。
| 事件型別 | 觸發鍵 | 對 EPI 倒數的影響 | 用詞 |
|---|---|---|---|
| EPI(本機) | 針筒鍵 ×2 | 啟動 / 重啟 4 分鐘倒數 | EPI 已紀錄 |
| 電擊(本機) | 電擊鍵 ×2 | 不影響 EPI 倒數 | 電擊已紀錄 |
| Amiodarone | 長按針筒鍵 → 選單 → 主鍵確認 | 不影響 EPI 倒數 | Amiodarone 已紀錄 |
針筒圖案鍵為裝置內唯一給藥入口。EPI 是唯一採全程針筒鍵二段確認的藥物;其他藥物與補登均由長按進入選單後以主鍵確認。
| 藥物 / 功能 | 入口 | 最終確認鍵 | 建立時間戳 | 影響 EPI 倒數 | V1 狀態 |
|---|---|---|---|---|---|
| EPI | 短按針筒鍵 | 針筒鍵 | 是 | 是,啟動 / 重啟倒數 | 必做 |
| 補登 EPI | 長按針筒鍵 → 補登 EPI | 主按鍵 | 否,時間欄為 - | 否 | 必做 |
| Amiodarone | 長按針筒鍵 → Amiodarone | 主按鍵 | 是 | 否 | 必做 |
| 其他藥物 | 未來藥物選單 | 主按鍵 | 是 | 否 | 未來擴充 |
| 類別 | 入口 | 可選次數 | 說明 |
|---|---|---|---|
| 接手前 EPI | 長按 EPI 鍵 → 選擇「補登 EPI」 | 1~5 | 接手前已給予 |
| 純補登 EPI | 1~3 | 案件中漏記 | |
| 接手前電擊 | 長按電擊鍵 | 1~5 | 接手前已執行 |
| 純補登電擊 | 1~3 | 案件中漏記 |
-,匯出 JSON actual_time: null。
| EPI 詳細 | 總數 ╱ 本機 ╱ 接手前 ╱ 純補登 ╱ 第一次本機 EPI ╱ 最後本機 EPI |
| 電擊詳細 | 總數 ╱ 本機 ╱ 接手前 ╱ 純補登 ╱ 最後本機電擊(不顯示「第一次本機電擊」) |
| Amiodarone | 總數 + 最後紀錄時間(不拆分來源) |
| 同步狀態 | App 已同步 / App 未同步 |
| 事件時間軸 | 獨立分類進入 |
| 秒 | 畫面 | 聲音 | LED |
|---|---|---|---|
| 第 1 秒 | 反紅 | 加強提示音 | 紅燈閃 |
| 第 2~6 秒 | 數字 2~6 | 每秒短提示音 | 不閃 |
獨立 6 秒通氣節奏執行中,主按鍵短按 = 暫停 / 繼續,不需二段確認以維持即時操作效率。誤觸暫停可立即再短按主鍵繼續。
| 按鍵 | 功能(執行中 / 暫停中) |
|---|---|
| 上鍵 / 下鍵 | 通氣音量 ±1 |
| 主鍵短按 | 暫停 / 繼續(V4 §13.11,不需二段確認) |
| 主鍵長按 3s | 進入結束確認(V4 §13.14,二段確認) |
| 返回鍵 | 提示「請長按主鍵」,不直接結束(V4 §13.15) |
| EPI / 電擊 | 無效,不建立事件紀錄 |
| 情境 | 定義 |
|---|---|
| 主功能表「6秒通氣節奏」 | 獨立即時節奏工具(見 §8) |
| OHCA 案件中開啟 6秒通氣 | OHCA 主畫面內的輔助子計時器(恆常顯示,本節定義) |
採用單秒數視窗顯示,不顯示 1~6 整排。秒數每秒循環:1 → 2 → 3 → 4 → 5 → 6 → 1。
| 秒數 | 畫面 | 提示音 | LED |
|---|---|---|---|
| 第 1 秒 | 區塊反紅 | 加強提示音(音量 0 時靜音) | 紅燈閃爍(音量 0 仍閃) |
| 第 2~6 秒 | 正常顯示 | 每秒短提示音(音量 0 時靜音) | 不閃爍 |
| 事件 | 6秒通氣區塊行為 |
|---|---|
| EPI 給藥確認 | 仍維持顯示(不消失、不重置) |
| 電擊確認 | 仍維持顯示 |
| Amiodarone 確認 | 仍維持顯示 |
| 補登完成 | 仍維持顯示 |
| EPI 倒數重啟 | 仍維持顯示 |
| EPI 到期警報 | EPI 警報為最高優先顯示「請給藥」;6秒通氣保留下方輔助區塊,不蓋過警報、不阻止給藥確認 |
| OHCA 案件結束 | 自動停止 |
OHCA 中按返回鍵開啟「快速功能」,依目前狀態顯示三組不同的選單項目:
OHCA 內 6 秒給氣暫停後,主畫面下方仍顯示 6 秒給氣區塊,狀態改為「已暫停」並提示「快速功能可繼續」。透過快速功能選擇「繼續 6 秒給氣」恢復節奏,恢復時秒數重新從 1 開始,第 1 秒視為新的給氣提示點,需觸發畫面反紅 + 加強提示音 + 紅燈閃爍。
| 項目 | 獨立 6 秒通氣 | OHCA 內 6 秒通氣 |
|---|---|---|
| 核心定義 | 每 6 秒提示 1 次給氣 | 每 6 秒提示 1 次給氣 |
| 秒數循環 | 1~6 | 1~6 |
| 給氣提示點 | 第 1 秒 | 第 1 秒 |
| 第 2~6 秒 | 等待間隔 | 等待間隔 |
| 顯示方式 | 單一目前秒數 | 單秒數視窗 |
| 第 1 秒畫面反紅 / 加強提示音 / 紅燈閃爍 | 是 | 是 |
| 第 2~6 秒短提示音 / LED 不閃 | 是 / 否 | 是 / 否 |
| 通氣音量 | 0~5 | 0~5 |
| 靜音時視覺提示 | 保留 | 保留 |
| 暫停 / 繼續 | 主鍵短按(V4 §13.11) | 透過快速功能(V4 §14.9) |
| 繼續後秒數 | 從 1 開始 | 從 1 開始 |
| 項目 | OHCA 正式案件 | Training 模式 |
|---|---|---|
| EPI 倒數時間 | 固定 4 分鐘 | 可選 30 秒 / 1 分鐘 / 4 分鐘 |
| 畫面標示 | OHCA | 全程「訓練模式」浮水印 |
| 案件總覽 | 案件總覽|OHCA | 案件總覽|Training |
| Timeline | 事件時間軸 | 事件時間軸|Training |
| 歷史分類 | OHCA 案件 | Training 紀錄 |
| 保存上限 | 50 筆 | 20 筆 |
| 裝置端刪除 | 不可 | 可刪除(二次確認) |
| App 同步 | 可 | 可,但 App 端標示 Training |
主功能表 → 訓練模式 → 先選倒數時間(30 秒 / 1 分鐘 / 4 分鐘)→ 進入待本機 EPI 狀態。第一筆本機 EPI 二段確認後才啟動倒數(與 OHCA 同:案件開始 ≠ 倒數開始)。
| Training 倒數時間 | 剩 1 分鐘預警 |
|---|---|
| 30 秒 | 不顯示 |
| 1 分鐘 | 不顯示 |
| 4 分鐘 | 剩 1 分鐘時顯示「請準備給藥」 |
理由:避免短時間訓練一開始就進入預警狀態。
Training 進行中長按主鍵 → 訓練操作選單(重置訓練 / 結束訓練 / 返回)。重置與結束皆需二次確認。OHCA 不提供重置。
| 事件 | 入口 | 對 EPI 倒數的影響 |
|---|---|---|
| 本機 EPI | EPI 鍵短按 → 二段確認 | 第一筆啟動倒數,後續每次重啟倒數 |
| 本機電擊 | 電擊鍵短按 → 二段確認 | 不啟動 / 不重啟 / 不解除超時 |
| Amiodarone | 長按 EPI → EPI / 藥物選單 → Amiodarone → 二段確認(再按主鍵) | 不啟動 / 不重啟 / 不解除超時 |
| 補登(接手前 / 純補登) | 長按 EPI → 補登 EPI / 長按電擊 → 補登電擊 | 不啟動 / 不重啟 / 不解除超時;事件時間欄顯示「-」 |
所有事件統一寫入 Training Timeline,補登事件 actual_time 為 null。
完成並結束訓練 / 前往補登 / 返回訓練
「確認結束訓練?/ 結束後不可修改」 → 主鍵確認
保存 → 案件總覽|Training(最近 20 筆)/ 不保存 → 不占用儲存,回主功能表
在 Training 紀錄列表選取某筆 → Training 案件操作(查看總覽 / 同步至 App / 刪除此訓練紀錄 / 返回)。刪除需二次確認,已同步至 App 的紀錄裝置端刪除不回寫 App。OHCA 正式案件不可由裝置端刪除。
Training 紀錄保存後可從案件總覽或 Training 案件操作同步至 App。App 端必須明確標示 Training,不得混入正式 OHCA 案件列表。已同步的 Training 紀錄若在裝置端被刪除,不回寫 App;App 端原資料保留。
Training 與 OHCA 共用核心狀態機,以參數區分:case_mode / epi_interval_seconds / history_limit / allow_device_delete / show_training_label。不要另寫獨立簡化流程。
同步至 App 只同步目前這一筆已結束案件,不同步全部案件。
案件總覽 → 同步至 App → 顯示 4 位配對碼(120s 有效)
App 連線後按主鍵開始同步
同步中 → 同步完成(顯示 1 秒)→ 自動回案件總覽
同步狀態變為「App 已同步」+ 同步時間戳
OHCA 正式案件裝置本體不提供刪除功能,提前清除資料只能透過 Type-C 連接電腦執行。Training 紀錄則允許裝置端刪除。
裝置自動進入電腦管理模式
EMS DoseSync 管理工具識別裝置
清除前必須先備份
避免誤刪
OHCA / Training 區重置
| 設定項 | 範圍 | 規則 |
|---|---|---|
| 螢幕亮度 | 1~5 | 最低 1,不可關閉螢幕,預設 3/5 |
| 系統音量 | 1~5 | 不可靜音,最低 1。控制 OHCA 警報 / 預警 / 成功音 |
| 通氣音量 | 0~5 | 0 = 靜音(畫面反紅與 LED 保留) |
| 裝置名稱 | App 寫入 | 裝置端不負責中文輸入;案件中不可修改 |
| App 連線 | — | BLE 由系統自動管理,不提供藍牙開關 |
| Type-C 連線 | — | 只顯示狀態,不提供模式切換 |
| 韌體版本 | read-only | 顯示版本 / 序號 / 電池 |
| 按鍵 | 實體外觀標示 | 功能定位 |
|---|---|---|
| 主按鍵 | 大型主按鍵 | 選單確認 / 開始 / 結束確認 / 消音 |
| 返回鍵 | 返回圖示 | 返回 / 取消 / 開啟快速功能選單 |
| 上鍵 | 上方向圖示 | 選單上移 / 音量增加 |
| 下鍵 | 下方向圖示 | 選單下移 / 音量降低 |
| EPI 鍵 | 針筒圖案(不以 EPI 文字為主標) | 即時 EPI 入口 / 長按進 EPI / 藥物選單 |
| 電擊鍵 | 閃電圖案(表面不得使用 Shock 字樣) | 即時電擊入口 / 長按進電擊補登 |
| Power 鍵 | 電源圖示 | 開關機 |
| 錄音鍵 | 錄音圖示位置預留 | V1 保留外觀位置,不啟用 |
Shock 字樣;UI 一律顯示中文「電擊」。epi_button / shock_button)可保留,但所有使用者介面不得露出 Shock。PM 提出 7 項未來擴充保留需求。V1 不啟用,但硬體腳位、外殼空間、資料結構與主功能表架構需保留擴充能力。對齊 SoT V1 §2.3 / §3.1 / §20.4 / §20.5 / §21.1 / §21.2 / §21.3 與 pm-dev-spec.md §6 event_t 編號段位。
CLAUDE.md。
對應 PM 需求 ① 錄音鍵 GPIO 預留、② 麥克風 I2S 腳位預留、③ CO 感測器腳位預留
V1 腳位分配
📌 GPIO 分配以 docs/gpio-allocation.md 為單一真相來源(SSOT)。本表為 SoT V1 視角的快照,內容需與 SSOT 對齊。
| 模組 | 腳位 | 介面 | 韌體常數 | 狀態 |
|---|---|---|---|---|
| 主按鍵 | GPIO 4 | Digital input | BTN_PRIMARY | ✅ 已實作 |
| 上鍵 / 下鍵 | GPIO 5 / 6 | Digital input | BTN_UP / BTN_DOWN | ✅ 已實作 |
| Power 鍵 | GPIO 7 | Digital input | BTN_POWER | ✅ 已實作 |
| 錄音鍵 | GPIO 15 | Digital input | BTN_RECORD(noop 佔位) | ⚠️ 物理接線、韌體佔位 |
| 返回鍵 | GPIO 16 | Digital input | BTN_BACK | ❌ 韌體未實作(Impl-Phase B 待補) |
| EPI 鍵(針筒圖案) | GPIO 17 | Digital input | BTN_EPI | ❌ 韌體未實作(Impl-Phase B 待補) |
| 電擊鍵(閃電圖案) | GPIO 18 | Digital input | BTN_SHOCK | ❌ 韌體未實作(Impl-Phase B 待補) |
| 蜂鳴器 | GPIO 14 | PWM out | BUZZER_PIN | ✅ 已實作 |
| 震動馬達 | GPIO 21 | PWM out | VIBRATION_PIN(ENABLE_VIBRATION=0) | ⚠️ 待硬體與韌體啟用(原 GPIO 16 已封給返回鍵) |
| OLED | GPIO 42 / 41 | I2C (SDA/SCL) | I2C_SDA_PIN / I2C_SCL_PIN | ✅ 已實作 |
V1 預留腳位(不啟用)
| 模組 | 腳位 | 介面 | 啟用條件 |
|---|---|---|---|
| INMP441 麥克風 | GPIO 40 / 39 / 38(SCK / WS / SD) | I2S | ENABLE_MIC_MONITOR=1 |
| MicroSD 卡 | 待定(建議 SPI:MOSI/MISO/SCK/CS) | SPI | 錄音功能啟用時 |
CO 感測器候選腳位(型號未定,依介面類型擇一,候選互斥)
| 介面類型 | 候選腳位 | 備註 |
|---|---|---|
| I2C 共用 OLED bus | GPIO 42 / 41 | 需確認模組 I2C 位址不與 OLED(0x3C)衝突;最省 GPIO |
| UART | GPIO 43 / 44 | ZE07-CO 等電化學型主流;S3 USB-CDC 替代腳,僅 USB-CDC 不啟用時可用 |
| 類比 ADC | GPIO 1 / 2 / 3(ADC1) | MEMS 半導體型;避免 ADC2 與 WiFi 衝突 |
docs/gpio-allocation.md 第 5 節與第 6 節。
對應 PM 需求 ④ 感測器與錄音模組的電源餘裕
V1 模組典型 / 峰值功耗表
| 模組 | 典型電流 | 峰值電流 | 觸發場景 |
|---|---|---|---|
| ESP32-S3(BLE active) | 80mA | 240mA | BLE TX 瞬間 |
| 2.4 吋 OLED / LCD | 25mA | 40mA | 全亮 |
| 蜂鳴器(主動式) | 0 | 30mA | 警報響起時 |
| 震動馬達(1027 硬幣型) | 0 | 80mA | 震動瞬間 |
| LED 狀態燈 | 5mA | 10mA | 雙色全亮 |
| V1 小計 | ~110mA | ~400mA | USB-C 直供餘裕約 100mA |
擴充模組功耗預估(V1 不啟用)
| 模組 | 典型 | 峰值 | 介面 |
|---|---|---|---|
| INMP441 麥克風 | 1.5mA | 1.5mA | I2S |
| MicroSD(寫入) | 20mA | 100mA | SPI |
| CO 感測器(電化學型) | ~10mA | ~15mA | UART/I2C |
| CO 感測器(MEMS 半導體) | ~30mA | ~50mA | 類比 ADC |
| CO 感測器(加熱半導體型,禁用) | 150mA+ | 180mA+ | ❌ 不建議 |
CO 感測器類型比較(供選型參考)
| 類型 | 代表型號 | 適用性 |
|---|---|---|
| 電化學型 | ZE07-CO、CJMCU-4541 | ✅ 推薦:功耗低(~10mA)、介面清晰、預熱秒級 |
| MEMS 半導體 | MiCS-5524 | 🟡 可考慮:功耗中等(~30mA) |
| 加熱半導體 | MQ-7、MQ-9 | ❌ 不建議:功耗超 USB-C 上限(150mA+)、預熱 24~48h |
1000mAh 電池連續使用時數預估
對應 PM 需求 ⑤ 麥克風與 CO 感測器開孔位置
對應 PM 需求 ⑥ Timeline / App 同步資料格式不寫死
沿用既有 NUS + JSON 協定,event_type 改採編號段位規範,0x80~0xFF 保留給未來擴充,App 端解析遇未知 type 須 fallback 不丟棄:
| 編號段位 | 用途 | V1 狀態 |
|---|---|---|
0x00~0x7F | V1 核心事件(EPI / 電擊 / Amiodarone / 補登) | V1 實作 0x01~0x07 |
0x80~0xBF | 未來擴充藥物紀錄(D50W / TXA / Atropine 等) | 保留 |
0xC0~0xDF | 未來擴充感測器事件(CO 警報 / CO 數值記錄) | 保留 |
0xE0~0xEF | 未來擴充錄音相關事件(START / STOP) | 保留 |
0xF0~0xFF | 系統事件(如低電量) | 保留 |
pm-dev-spec.md §6 event_t 登記後同步更新 App 解析表與 §7 案件總覽顯示規則。
對應 PM 需求 ⑦ 主功能表未來可新增「藥物紀錄」或「CO 狀態」入口
主功能表採可擴充 list 結構。V1 封版固定 5 項(OHCA 案件 / 6秒通氣節奏 / 訓練模式 / 歷史紀錄 / 系統設定),未來新增項目以上下鍵分頁瀏覽,不重排既有 5 項順序。
| 擴充功能 | 入口位置 | 依據 |
|---|---|---|
| CO 狀態 | 主功能表新增第 6+ 項 | SoT §3.1 註記 |
| 其他藥物紀錄(D50W/TXA 等) | 長按針筒圖案鍵 → 藥物紀錄 → 選擇藥物 | SoT §8A.5 既定路徑(非主功能表入口) |
| 裝置自我測試 | 主功能表新增第 6+ 項 | SoT §3.1 註記 |
📌 GPIO 分配以 docs/gpio-allocation.md 為單一真相來源(SSOT)。本章為 flow.html 視角的快照,內容需與 SSOT 對齊。
目標硬體:ESP32-S3 GOOUUU 開發板(標準 N8 模組,非 octal PSRAM 版)
| SoT 名稱 | 韌體常數 | GPIO | 韌體狀態 | 物理 |
|---|---|---|---|---|
| 主按鍵 | BTN_PRIMARY | 4 | ✅ 已實作 | ✅ |
| 上鍵 | BTN_UP | 5 | ✅ 已實作 | ✅ |
| 下鍵 | BTN_DOWN | 6 | ✅ 已實作 | ✅ |
| Power 鍵 | BTN_POWER | 7 | ✅ 已實作 | ✅ |
| 錄音鍵 | BTN_RECORD | 15 | ⚠️ 韌體佔位(INMP441 到貨啟用) | ✅ |
| 返回鍵 | BTN_BACK | 16 | ❌ Impl-Phase B 待補 | ✅ |
| EPI 鍵(針筒圖案) | BTN_EPI | 17 | ❌ Impl-Phase B 待補 | ✅ |
| 電擊鍵(閃電圖案) | BTN_SHOCK | 18 | ❌ Impl-Phase B 待補 | ✅ |
| 用途 | GPIO | 介面 | 模組 | 狀態 |
|---|---|---|---|---|
| OLED SDA | 42 | I2C | SSD1306 0.96" | ✅ 啟用 |
| OLED SCL | 41 | I2C | SSD1306 0.96" | ✅ 啟用 |
tft-migration-plan.md 升級 2.4" TFT,OLED 拆除,GPIO 41/42 釋出可作其他 I2C 用途(如 DS3231 RTC)。TFT SPI 腳位見 §20.5。
| 用途 | GPIO | 模組 | 狀態 |
|---|---|---|---|
| 蜂鳴器 PWM | 14 | 主動式蜂鳴器 | ✅ 啟用 |
| 震動馬達 | 21 | S8050 NPN + 1kΩ 基極 | ⚠️ ENABLE_VIBRATION=0;原 GPIO 16 已封給返回鍵 |
| 用途 | GPIO | 介面 | 模組 | 狀態 |
|---|---|---|---|---|
| I2S SCK | 40 | I2S | INMP441 麥克風 | ⚠️ 接線 / ENABLE_MIC_MONITOR=0 |
| I2S WS | 39 | I2S | INMP441 麥克風 | ⚠️ 同上 |
| I2S SD | 38 | I2S | INMP441 麥克風 | ⚠️ 同上 |
| MicroSD SCK / MOSI / MISO | 36 / 35 / 37 | SPI | 與 TFT 共用 | ❌ 待選型 |
| MicroSD CS | 2(ADC1_CH1,二擇一) | SPI | 獨立 CS | ❌ 待選型 |
ESP32-S3 N8 模組可用 GPIO 盤點
| 分類 | GPIO | 備註 |
|---|---|---|
| 已用(14 支) | 4, 5, 6, 7, 14, 15, 16, 17, 18, 38, 39, 40, 41, 42 | 按鍵 / 蜂鳴 / I2S / OLED |
| 可用空閒(11 支) | 1, 2, 3(ADC1)/ 21 / 35, 36, 37 / 43, 44 / 47, 48 | 35~37 在 N16R8 octal PSRAM 模組會被佔用,務必確認模組型號 |
TFT SPI bus 腳位(取代 tft-migration-plan.md 舊版 GPIO 9~13)
| 用途 | GPIO | 備註 |
|---|---|---|
| SPI SCK | 36 | TFT + MicroSD 共用 |
| SPI MOSI | 35 | TFT + MicroSD 共用 |
| SPI MISO | 37 | MicroSD 需要,TFT 純寫入不需要 |
| TFT CS | 21 | 獨立 |
| TFT DC | 48 | Data/Command 切換 |
| TFT RST | 47 | Hardware reset |
| TFT BL | 3.3V 直供 / GPIO 1(PWM 調亮度) | PWM 會占用 ADC1_CH0 |
CO 感測器擴充腳位(取代舊版 GPIO 17/18 獨立 I2C)
| 候選方案 | 介面 | GPIO | 備註 |
|---|---|---|---|
| 電化學型 + I2C | SDA / SCL | 與 OLED 共用 42 / 41 | I2C 多裝置 bus |
| 電化學型 + UART | TX / RX | 43 / 44 | 必須放棄 USB-CDC Serial Monitor |
| MEMS 半導體型 + ADC | 類比輸入 | 1 / 2 / 3 擇一 | 與 TFT 背光、MicroSD CS 互斥 |
| 加熱半導體型(MQ-7/MQ-9) | — | 🚫 禁用 | 功耗超出 USB-C 供電上限 |
| 衝突組合 | 互斥原因 | 解法 |
|---|---|---|
| TFT BL(PWM)vs CO 感測器 ADC | 都搶 GPIO 1 / 2 / 3 | 二擇一;TFT BL 可接 3.3V 常亮,省下 GPIO |
| MicroSD CS vs USB-CDC Serial | GPIO 43 / 44 衝突 | 量產不需 USB-CDC 時切換 |
| 獨立 I2C vs 按鍵 16 / 17 / 18 | 物理腳位衝突 | 按鍵已封版,獨立 I2C 改與 OLED bus 共用 |
| GPIO 35 / 36 / 37 vs N16R8 octal PSRAM | 模組型號限制 | 採購務必選 N8 / N16 非 octal 版 |
| GPIO | 原因 |
|---|---|
| 0, 45, 46 | strapping pin(啟動行為敏感) |
| 8 ~ 13 | 內建 SPI flash |
| 19, 20 | USB D- / D+ |
| 26 ~ 32 | SPI flash bonding pads(依模組型號可能可用,保守禁用) |
docs/gpio-allocation.md 第 5 節與第 6 節。docs/gpio-allocation.md 第 8 節。