
Ecb.routed
Raw1mage/bodesign
它與宿主無關、可獨立對外營運:任何支援 MCP 的客戶端(IDE、agent,或你自己的 HTTP 呼叫端) 都能透過 MCP Streamable HTTP 驅動它,不需要任何宿主外殼。正式服務部署在 DockerLab CT105 (http://192.168.100.141:8177/mcp/,經 nginx ingress,POST /invoke 一律 403);容器內部的 TCP port 從不直接對外…

它與宿主無關、可獨立對外營運:任何支援 MCP 的客戶端(IDE、agent,或你自己的 HTTP 呼叫端) 都能透過 MCP Streamable HTTP 驅動它,不需要任何宿主外殼。正式服務部署在 DockerLab CT105 (http://192.168.100.141:8177/mcp/,經 nginx ingress,POST /invoke 一律 403);容器內部的 TCP port 從不直接對外…
Ccm is an open-source printed circuit board by Raw1mage, from the Raw1mage/bodesign repository on GitHub. It is a 4-layer board of 57.9 × 68.5 mm with 8 parts on 21 nets.
It is built around the STM32N657L0H3Q. It belongs with the STM32 boards of this library.
語言:繁體中文 · English
bodesign 是一個 AI 電路設計(PCB)副駕,以獨立的 MCP server 形式交付。 它由對談與原始輸入檔驅動,走完整個 KiCad 設計生命週期——原理圖 → 佈局 → 製造—— 產出可送廠的文件包,並以展示可靠度(對照已知良品的交叉檢核+KiCad/SPICE/EMC) 而非「宣稱」可靠度。
它與宿主無關、可獨立對外營運:任何支援 MCP 的客戶端(IDE、agent,或你自己的 HTTP 呼叫端)
都能透過 MCP Streamable HTTP 驅動它,不需要任何宿主外殼。正式服務部署在 DockerLab CT105
(http://192.168.100.141:8177/mcp/,經 nginx ingress,POST /invoke 一律 403);容器內部的
TCP port 從不直接對外 publish(BR_20260730d)。
.dotx + JSON 架構描述預存在 server 端供重複使用。kicad-cli 驗證的原理圖(以參考設計為依據)。pcbnew 擺件+DRC)並匯出製造輸出(gerber/鑽孔/pos/STEP)。完整紀錄見 CHANGELOG.md。近期重點:
zhoushoujianwork/easyeda-agent 治理機制,重構為嚴格 IDEF0 規範下的多 Agent 協作制度(規格:plans/workflow_guarded-hardware-governance/)。
S0~S5)與 C04(P0~P7)微狀態機,強制作者(EE/Layout)不可兼審查員;not_checked 未測軸向,P7 送廠前強制人類授權(天條 3);BLK-nnn)與重試邊界防止循環;usb_c_sink、power_ldo_3v3、power_dcdc_buck(含 $C_{FF}$)、esd_protection_array,自動處理引腳與佈局約束;grid_snap)、線性元件對齊(distribute_passives)、焊盤絲印避讓(silk_tidy);c03_substate_advance、c04_substate_advance、circuit_block_apply、layout_tidy、blocker_record 5 組宿主原生動詞。eda_schematic-draftsman-quality extend DD-8..DD-11 至 living——compose_schematic
新增 fidelity(net 劃分保真閘,抓 ERC 盲區的共線熔合短路)與 density_budget
(頁面密度超標 fail-fast 強制分頁);kicad_emit 防熔合 guard(確定性 jog 錯開);
qa_svg_text 渲染層文字 QA landing verb;/tmp/engpatch 部署漂移源退場 +
engine_rev 回報;SKILL.md 交付契約六硬規。62 tests OK。[primary:]/[fab:]/[rot],經驗值禁入 DRC gate)與
clean-result 邊界語紀律。雙盲 eval:新版 6/6 vs 舊版 0/6。design-ir/net-role-extension(封閉 NET_ROLES enum)與 gerber-core/copper-geometry-parser
(真實 edge-to-edge 銅箔幾何)兩 spec,新增 copper_clearance.py 消費之,把
control.dfm.ipc-clearance-voltage 由 T-B stub 翻為 T-A landed(landed 8→9)。
拒絕 false-green——landed 由 9 個測試(含 6 個 no-fabrication fail-fast 守衛)背書。blocked_upstream_c03_missing,不再誤報 drafted),
把去孤兒化的 classify_product_feasibility(tier 分診,無 signals 不臆測)與
emit_si_constraint_export(Tier-3 SI 交手)接進 C04 emit/readiness;41 tests 綠。bodesign_prd_bom_crosscheck)、L2 Vault-Absent 降級協議、L3 NPN linear sink 重設計;
C04 全鏈實跑 gate=PASS + DRC clean。另落地 atopile DSL 前端(工具 43→45)。完整規格與生命週期設計見 plans/workflow_guarded-hardware-governance/。
A2A 治理體系 IDEF0 功能分解(A0)
A2A 治理體系 GRAFCET 執行流程(S0S5 ➔ P0P7 & Blocker 派工修復迴圈)
完整規格見 specs/product/pcb_ai_viewer/。
IDEF0 功能分解(A0)
GRAFCET 執行流程(生成迴圈)
Docker(可攜,建議) — 內含 KiCad 9(kicad-cli + pcbnew)+ LibreOffice +整套工具鏈:
./mcpctl.sh start # 建置映像+啟動容器(UDS 於 ./.run/bodesign.sock)
./mcpctl.sh status # 健康檢查+socket
./mcpctl.sh log # 追蹤日誌
./mcpctl.sh stop主機(不用 Docker) — 需要 PATH 上有 kicad-cli、pcbnew、soffice、ngspice:
pip install -r services/mcp/requirements.txt
python services/mcp/server.py --transport http --uds .run/bodesign.sock --port 8077
# 或 --transport stdio 供 IDE/agent 直接使用MCP Streamable HTTP:
http://192.168.100.141:8177/mcp/——僅限 LAN,nginx ingress
封鎖 POST /invoke(403),只開放 /healthz、/mcp、/files。部署清單與發布 SOP 見
deploy/dockerlab/。BODESIGN_DEV=1 ./mcpctl.sh start 後經 UDS unix:///…/.run/bodesign.sock:/mcp/。
兩者擇一,不要同時跑。:8077 從不直接 publish(BR_20260730d:publish 會把未認證的 POST /invoke
暴露在所有介面上),對外一律經 ingress。註冊資訊見 mcp.json。開啟服務的 / 即是即時的自我說明指南——
安裝、檔案模型、電路設計工作流,以及 /tools、/tools/{name} 的完整 tool-call schema。
Landing plane(本地直跑,零 token 往返) — 52 個確定性、只碰專案目錄的 verb (C00–C06 scaffold/readiness/emitters、orchestration spine、純函數)不再是 MCP 工具, 改由 agent 在主機以自己的身分直接執行:
python3 skills/bodesign/scripts/gate.py --list # 權威 verb 清單
python3 skills/bodesign/scripts/gate.py <verb> --repo <abs專案路徑> [--json '{…}' | --arg k=v]誤把已落地的名字當 MCP 工具呼叫,會收到 typed error TOOL_LANDED,內附等效的 gate.py 指令。
Compute plane(容器 token 檔案模型,docxmcp 風格) — 重工具鏈(pcbnew/kicad-cli/ngspice/
渲染/3D)留在容器內的 43 個 MCP 工具。bodesign 不內含任何工作資料:檔案只走一條路——WebDAV
工作區。Agent 呼叫 opencode runtime verb system-manager_webdav_mount(app="bodesign") 取得
mount_path + token;把輸入檔放進 mount_path,將 token 傳給任一工具(路徑參數在工作區樹內解析),
產出檔直接在 mount_path 讀回。伺服端工作資料依 TTL 自動垃圾回收;容器看不到主機路徑。
Working cache(WebDAV,消滅整包進出儀式) — 需要多檔往返的交付物改用伺服端工作快取:
bodesign_cache_provision(由 opencode runtime 呼叫,不由 agent 呼叫)回傳 token + 絕對
mount_url(…/dav/{token}/)+ 選用的專屬 Basic 憑證;重工具直接寫入快取命名空間,產出檔在掛載目錄
直接可見——不需匯出步驟。bodesign_cache_close 回收工作區。每個 cache 依擁有者隔離,
免於 idle 回收(長 safety-net TTL 把關)。
bodesign(MCP)是生成的那一半;配套的 bodesign skill 是工作流大腦(C00–C07 生命週期、
誠實契約、各階段 SOP),並且承載分析/文件引擎——kicad(原理圖/PCB/Gerber 分析)與
kidoc(工程文件)現在以 engines/kicad、engines/kidoc 的形式住在那裡,所以請安裝 bodesign
skill,而非獨立的 kicad/kidoc。分工是雙向的:skill 驅動本 MCP 的 bodesign_* 工具來生成,
而 MCP 的驗證工具(bodesign_simulate/analyze_emc/analyze_thermal)回頭呼叫 skill 的引擎來
分析(透過 BODESIGN_KICAD_SKILL 解析,預設 ~/.claude/skills/bodesign/engines/kicad)。
其餘成熟的模擬/採購/製造 EDA skill(spice、emc、datasheets、bom、distributors、fab),
連同獨立的 kicad/kidoc(legacy,已併入 bodesign skill),都可從執行中的服務在 /skills/
下載(整包+個別 skill),安裝到你的 skill 目錄。
skill 在執行層之上再加一層設計判斷(各階段的 reference:C01 reduction-lens+Ashby 選材、
C02 DFM/DFA/IP 密封+幾何作圖迴圈、C03 EE advisory+「腳位→電路」合成法、C04 stackup/HDI/SI)。
跨站不收斂(面積/散熱/高度 budget、C06 verdict fail)會以既有 BlockerReturn 回饋到負責的
階段並擋住下游完成(遞迴自我修正)。一開始就用可行性 triage 從 C00 估算分級(Tier 1 可直接
投板/2 需人類 SI 簽核/3 HDI 級交專業 EDA),讓「給 C00,得 C01–C04」對每個產品誠實;
Tier-3 由 emit_si_constraint_export 產出中性 SI 約束包(JSON+CSV+逐工具對應),把繞線硬牆變成
乾淨交接而非斷點。
bodesign/
├── services/mcp/ MCP server —— 產品的唯一對外介面
│ ├── server.py 工具分派、token 路徑解析、UDS+TCP 雙綁定、自我說明網頁
│ ├── token_store.py docxmcp 式 token 檔案儲存 + TTL/GC
│ ├── requirements.txt
│ └── assets/skills/ EDA skill 套件(13 個 tarball +整包 bundle + MANIFEST.md)
├── packages/ 通用能力函式庫(無產品專屬碼)
│ ├── shared/ 共用契約 + data_root()(程式↔工作資料隔離邊界)
│ ├── design-ir/ DesignIntent 等中介表示(IR);compare/ 子模組=確定性
│ │ 參考比對器(G7:純 Python Hungarian+Dice/屬性/連接性加權+FlexiblePin)
│ ├── component-kb/ 可重用零件知識(datasheet 萃取);spice_card.py=datasheet 接地
│ │ SPICE model 卡(vault L4 → cascade tier-1,確定性、byte-identical)
│ ├── doc-core/ pin-table/文件產生工具
│ ├── source-core/ 來源/證據契約
│ ├── reverse-core/ 專案匯入、伴隨檔渲染、文件輸出、board 重建
│ ├── gerber-core/ Gerber/鑽孔解析 + 預覽
│ ├── eda-bridge/ KiCad 橋接:符號/原理圖/佈局/製造/BOM/SPICE/EMC;
│ │ simulate 標注 model_source(vault-grounded|generic-default)
│ ├── workflow-core/ 需求規劃、證據蒐集、就緒度羅盤、對照組交叉檢核、
│ │ 可行性 triage(C04 交付分級)、跨站對帳閘、SI 約束交接;
│ │ 驗證紀律 G1–G7(需求契約/設計審查閘/crosscheck+root-cause/
│ │ ValidationEvidence 回流/workflow plan 衍生)
│ ├── storage-core/ 客戶自有專案登錄
│ └── kicad-plugin/ in-KiCad Action Plugin 契約(roadmap)bodesign 不內含任何工作資料;客戶專案樹只在執行期經 token 儲存進入,或由外部
data_root()(BODESIGN_DATA_DIR)讀取。
交叉檢核+SPICE/EMC 是矽前風險層——在打樣前抓出問題。它們不取代實驗室/工廠的 認證 EMC/EVT/DVT;且 bodesign 在未經確定性驗證+明確批准前,不會輸出任何送廠檔案。
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | CCM-ECB B2B (visual stand-in, MPN open) | PinHeader_2x20_P2.54mm_Vertical | J_B2B |
| 1 | MIC5365 VDDA LDO | SOT-323-5_L2.1-W1.3-P0.65-LS2.1-BL | U7 |
| 1 | Octal NOR Flash (block) | SOIC-16_L10.3-W7.5-P1.27-LS10.3-BL | U3 |
| 1 | PSRAM 64MB xSPI2 (block) | T-PBGA-24_L8.0-W6.0-P1.00-TL_MICRON_12 | U2 |
| 1 | STM32N657L0 | BGA-142_L8.0-W8.0-P0.50-TL_STM32N657Z0H3Q | U1 |
| 1 | TCR2LE33 backup LDO | SOT-553-5_L1.6-W1.2-P0.50-LS1.6-BL | U8 |
| 1 | TPS62824 1V8 buck | VSON-6_L1.5-W1.5-P0.50-TL | U6 |
| 1 | TPS62826 3V3 buck | VSON-6_L1.5-W1.5-P0.50-TL | U5 |

Raw1mage/bodesign
它與宿主無關、可獨立對外營運:任何支援 MCP 的客戶端(IDE、agent,或你自己的 HTTP 呼叫端) 都能透過 MCP Streamable HTTP 驅動它,不需要任何宿主外殼。正式服務部署在 DockerLab CT105 (http://192.168.100.141:8177/mcp/,經 nginx ingress,POST /invoke 一律 403);容器內部的 TCP port 從不直接對外…

Raw1mage/bodesign
它與宿主無關、可獨立對外營運:任何支援 MCP 的客戶端(IDE、agent,或你自己的 HTTP 呼叫端) 都能透過 MCP Streamable HTTP 驅動它,不需要任何宿主外殼。正式服務部署在 DockerLab CT105 (http://192.168.100.141:8177/mcp/,經 nginx ingress,POST /invoke 一律 403);容器內部的 TCP port 從不直接對外…

Raw1mage/bodesign
它與宿主無關、可獨立對外營運:任何支援 MCP 的客戶端(IDE、agent,或你自己的 HTTP 呼叫端) 都能透過 MCP Streamable HTTP 驅動它,不需要任何宿主外殼。正式服務部署在 DockerLab CT105 (http://192.168.100.141:8177/mcp/,經 nginx ingress,POST /invoke 一律 403);容器內部的 TCP port 從不直接對外…




rjwalters/kicad-tools
Standalone Python tools for parsing and manipulating KiCad schematic and PCB files


ras-marques/ImmersiveGloves
I want to share how I am making vr gloves using 2 Tundra Trackers, 2 interface boards and 12 inertial sensors.


It measures 57.9 × 68.5 mm and has 4 copper layers, 1.6 mm thick.
8 parts, built around the STM32N657L0H3Q. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Raw1mage/bodesign repository on GitHub, at the commit this page was made from: the board is experiments/route_work/ccm.kicad_pcb and its schematic experiments/e2e-led-driver/C03-EE/e2e-led-driver-npn.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Raw1mage before reusing the design.