电路分析仪
AI驱动的电路故障检测工具,用于分析Wokwi项目和KiCad设计中的布线错误、代码错误、组件问题以及跨多个板平台的设计意图不匹配。
这和Wokwi Pro有什么不同?
| 功能 | Wokwi(免费/专业版) | 电路分析仪 |
|---|
| 模拟并运行电路 | 是 | 否 |
| 检测接线故障 | 否 | 是 |
| 检测代码错误 | 否 | 是 |
| 交叉参考代码与电路 | 否 | 是 |
| AI驱动的修复建议 | 否 | 是 |
| 电压/功率预算检查 | 否 | 是 |
| 无线模块验证 | 否 | 是 |
| 库使用验证 | 否 | 是 |
| 多板故障规则 | 否 | 是 |
| KiCad原理图/PCB分析 | 否 | 是 |
| 设计意图不匹配检测 | 否 | 是 |
| 分析历史 | 否 | 是 |
| 私人项目 | 是(赞成) | 不适用 |
| 自定义库上传 | 是(专业版) | 不适用 |
Wokwi=“运行你的电路” | 此工具=“找出电路的问题所在”
它们是互补的——在Wokwi上构建,然后在构建物理电路之前将URL粘贴在这里以查找故障。
特性
岩心分析
- 电路分析 --检测接线故障、连接缺失、极性错误和电源问题
- 代码分析 --查找草图错误和电路布线的交叉引用
- 库验证 --检查14个流行库是否缺少init调用、参数错误和常见错误
- 修复建议 --根据检测到的故障生成正确的代码和接线
KiCad EDA支持
- 原理图分析(.kicad_sch) --ERC检查、未连接的引脚、重复参考、电源标志问题、电压失配、去耦电容器检查、LED电阻器检查、UART交叉检测、极性验证、引脚功能失配检测
- PCB布局分析(.kicad_PCB) --DRC检查、未布线网、轨迹宽度验证、通过钻孔尺寸检查、间隙违规、电源轨迹宽度分析
- PCB交叉参考示意图 --检测原理图中但PCB中缺失的组件,反之亦然
- 拖放上传 --通过拖放或文件选择器上传.kicad_sch、.kicad_pcb、.kicat_pro文件
- 统一仪表板 --模式切换,在Wokwi URL分析和KiCad文件上传之间切换
设计意图分析
- 设计说明 --可选文本区域,用户可以在其中描述他们的电路应该做什么,包括特定的引脚分配
- 意图不匹配检测 --AI将实际接线/代码与声明的意图进行比较,并标记功能不匹配,即使在电气有效的情况下也是如此(例如,GPIO5上的传感器而不是GPIO4上的传感器)
- 可在两种模式下工作 --可用于Wokwi和KiCad分析
平台支持
- 多板支持 --Arduino(Uno/Mega/Nano)、ESP32、Raspberry Pi Pico、ATtiny85、STM32 Bluepill
- 无线模块支持 --蓝牙(HC-05/06、HM-10)、WiFi(ESP-01)、射频(nRF24L01)、红外
基础设施
- 双模式 -作为REST API(web应用程序)或MCP服务器运行(用于Claude Desktop/AI代理)
- 认证 --电子邮件/密码注册+使用JWT令牌登录Google OAuth
- 分析历史 --使用完整报告查看、项目类型徽章存储每个用户的过去分析
- 用户配置文件 --支持更改密码的个人资料页面
支持的板
| 电路板 | 类型ID | 电压 | 按键检查 |
|---|
| Arduino Uno | wokwi-arduino-uno | 5V | PWM引脚、模拟引脚、引脚限制 |
| Arduino Mega | wokwi-arduino-mega | 5V | 扩展引脚范围,SPI/I2C |
| Arduino Nano | wokwi-arduino-nano | 5V | 与Uno相同,但形状因子不同 |
| ESP32开发套件V1 | wokwi-esp32-devkit-v1 | 3.3V | 闪存引脚(GPIO6-11),仅输入(GPIO34-39),捆扎引脚,ADC2/WiFi冲突 |
| Raspberry Pi Pico | wokwi-pi-pico | 3.3V | 全GPIO PWM,3.3V容差,GP26-28上的ADC |
| ATtiny85 | wokwi-attiny85 | 5V | 只有5个可用引脚,没有硬件UART |
| STM32蓝色药丸 | board-stm32-bluepill | 3.3V(5V容差) | PA/PB/PC引脚,USART映射 |
支持的无线模块
| 模块 | 类型 | 密钥检查 |
|---|
| HC-05 | 蓝牙经典版 | TX/RX交叉,3.3V RX分压器,波特率 |
| HC-06 | 蓝牙经典版 | TX/RX交叉,3.3V RX分压器,波特率 |
| HM-10 | BLE 4.0 | 仅3.3V,TX/RX交叉 |
| ESP-01 | WiFi(ESP8266) | 仅3.3V,300mA功耗,CH_PD上拉 |
| nRF24L01 | 仅2.4GHz射频 | 3.3V,SPI引脚映射,需要电容器 |
| 红外接收器 | 红外 | 中断引脚建议 |
| IR LED | 红外 | 需要电阻器,PWM引脚为38kHz |
图书馆知识库(14个图书馆)
| 库 | 组件 | 密钥检查 |
|---|
| 伺服 | 伺服电机 | 缺失 attach(),角度范围,PWM引脚 |
| 液晶显示器(4位) | 缺失 begin(),引脚顺序 |
| LiquidCrystal_I2C | LCD(I2C) | I2C地址错误,丢失 backlight() |
| 导线 | I2C设备 | 缺失 begin(),每块板的I2C引脚错误 |
| SPI | SPI设备 | SPI引脚错误,缺少CS设置 |
| Adafruit_NeoPixel | NeoPixels | 缺失 begin()/show(),像素数 |
| DHT | DHT22/DHT11 | 类型、读取频率、NaN检查错误 |
| 软件串行 | BT/WiFi模块 | 波特率不匹配、引脚顺序、ESP32警告 |
| RF24 | nRF24L01 | CE/CSN引脚, stopListening() 之前 write() |
| IRremote | IR接收器/LED | 新旧API,缺失 resume() |
| 步进器 | 步进电机 | 步数、直接连接、引脚顺序 |
| AccelStepper | 步进电机 | 缺失 run() 在循环中,速度设置 |
| 键盘 | 薄膜键盘 | 行/列映射,引脚冲突 |
| WiFi(ESP32) | ESP32内置 | 连接等待循环,ADC2冲突 |
KiCad分析能力
基于规则的检查示意图(14次检查)
| 检查 | 它检测到什么 |
|---|
| 未连接的引脚 | 引脚未接线且没有连接标记 |
| 重复引用 | 两个具有相同指示符的组件(例如,两个R1) |
| 缺失值 | 没有指定值的电阻器/电容器 |
| PWR_FLAG检查 | 电源网缺少PWR_FLAG符号 |
| 单针网络 | 标签拼写错误导致孤立连接 |
| 电压不匹配 | 5V轨道上的3.3V IC没有电平偏移 |
| 去耦电容器 | IC电源引脚上缺少旁路帽 |
| LED电阻器 | 不带限流电阻器的LED |
| 引脚功能不匹配 | 非I2C引脚上的SDA信号 |
| 极性检查 | LED/二极管/电容器极性反转 |
| UART交叉 | TX有线到TX,而不是TX到RX |
| 引脚类型冲突 | 多个输出驱动同一网络 |
| 封装焊盘不匹配 | 符号引脚数与封装焊盘数 |
| 库符号问题 | 缺少电源引脚定义的IC |
基于PCB规则的检查(6次检查)
| 检查 | 它检测到什么 |
|---|
| 未布线的网 | 有衬垫但没有轨道的网 |
| 迹线宽度 | 迹线低于制造最小值 |
| 过孔钻头尺寸 | 钻头太小,环形圈太薄 |
| 违规行为 | 痕迹太近 |
| 电源迹线宽度 | 电源迹线对电流来说太窄 |
| 原理图PCB同步 | 原理图和PCB之间缺少组件 |
人工智能驱动的深度分析
- 使用GPT-4o进行基于规则的检查之外的分析
- 检测信号完整性问题、热问题、EMC问题
- 对照PCB布局交叉引用示意图
- 将实际设计与用户声明的意图(设计描述)进行比较
技术栈
后端: Python、FastAPI、SQLAlchemy(异步SQLite)、OpenAI GPT-4o/4o mini、Python jose(JWT)、谷歌认证
前端: React 19、Vite、Axios、React-router-dom、@React-oauth/google
MCP: FastMCP over stdio
建筑
┌─────────────────────────────────────────────┐
│ Frontend (React 19 + Vite) │
│ │
│ UrlInput ─┐ │
│ ├─► Dashboard ──► FaultReport │
│ KiCadUpload┘ │ │ ──► CircuitViewer │
│ (mode toggle) │ │ ──► SchematicViewer │
│ │ │ ──► CodeView │
│ Design │ │ ──► FixSuggestion │
│ Description ────┘ │ ──► SummaryBar │
│ │ │
│ Auth ── LoginPage ── ProtectedRoute │
│ Pages ── HistoryPage ── HistoryDetailPage │
└──────────────┬──────────────────────────────┘
│ Axios + JWT
┌──────────────▼──────────────────────────────┐
│ Backend (FastAPI) │
│ │
│ /api/analyze ──► Wokwi Fetcher │
│ │ │ │
│ ▼ ▼ │
│ Rule Engine ──► AI Analysis (GPT-4o) │
│ (20+ checks) (circuit + code prompts) │
│ │ │ │
│ └──────┬───────┘ │
│ ▼ │
│ /api/kicad/upload ──► KiCad Parser │
│ │ │ │
│ ▼ ▼ │
│ KiCad Rule Engine ── KiCad AI Analysis │
│ (14 ERC + 6 DRC) (schematic + PCB) │
│ │
│ Auth (JWT + Google OAuth) │
│ History (SQLAlchemy + async SQLite) │
└──────────────┬──────────────────────────────┘
│ MCP (stdio)
┌──────────────▼──────────────────────────────┐
│ MCP Server (FastMCP) │
│ Tools: analyze_wokwi_project, │
│ analyze_kicad_project, │
│ check_wiring, check_code, │
│ suggest_fix, etc. │
└─────────────────────────────────────────────┘
项目结构
my_mcp/
├── backend/
│ ├── .env # Secrets (JWT key, Google Client ID, OpenAI key)
│ ├── server.py # Dual-mode server (FastAPI + MCP)
│ ├── analyzer.py # Wokwi rule-based + AI analysis engine
│ ├── prompts.py # Wokwi OpenAI prompt templates
│ ├── component_knowledge.py # Board, component, wireless & library specs
│ ├── wokwi_fetch.py # Wokwi project fetcher
│ ├── kicad_parser.py # KiCad .kicad_sch/.kicad_pcb file parser
│ ├── kicad_analyzer.py # KiCad rule-based + AI analysis engine
│ ├── kicad_prompts.py # KiCad OpenAI prompt templates
│ ├── kicad_component_knowledge.py # KiCad component specs & pin data
│ ├── auth.py # JWT + Google token verification
│ ├── auth_routes.py # Auth API endpoints
│ ├── history_routes.py # Analysis history endpoints
│ ├── config.py # Pydantic settings
│ ├── database.py # Async SQLAlchemy setup
│ ├── models.py # User + AnalysisHistory models
│ └── requirements.txt # Python dependencies
├── frontend/
│ ├── src/
│ │ ├── auth/ # AuthContext, LoginPage, ProtectedRoute, UserMenu
│ │ ├── components/
│ │ │ ├── UrlInput.jsx # Wokwi URL input + design description
│ │ │ ├── KiCadUpload.jsx # KiCad file drag-and-drop + design description
│ │ │ ├── SummaryBar.jsx # Fault count summary (errors/warnings/infos)
│ │ │ ├── FaultReport.jsx # Filterable fault cards with severity badges
│ │ │ ├── CircuitViewer.jsx # Wokwi circuit parts/connections viewer
│ │ │ ├── SchematicViewer.jsx# KiCad schematic info viewer
│ │ │ ├── CodeView.jsx # Arduino code with fault annotations
│ │ │ └── FixSuggestion.jsx # AI-generated fix suggestions
│ │ ├── pages/
│ │ │ ├── ProfilePage.jsx # User profile + change password
│ │ │ ├── HistoryPage.jsx # Analysis history with project type badges
│ │ │ └── HistoryDetailPage.jsx # Full report viewer (conditional by type)
│ │ ├── api.js # Axios client with JWT interceptors + auto-refresh
│ │ ├── App.jsx # Dashboard with mode toggle + routing
│ │ └── main.jsx # Entry point with providers
│ ├── .env # VITE_GOOGLE_CLIENT_ID
│ ├── vercel.json # Vercel SPA routing config
│ └── package.json
├── render.yaml # Render deployment config
└── env/ # Python virtual environment
API终点
公共
认证
| 方法 | 路径 | 描述 |
|---|
| 职位 | /api/auth/signup | 电子邮件/密码注册 |
| 职位 | /api/auth/login | 电子邮件/密码登录 |
| 职位 | /api/auth/google | 谷歌OAuth登录 |
| 职位 | /api/auth/refresh | 刷新JWT令牌 |
| 得到 | /api/auth/me | 获取当前用户配置文件 |
| PUT | /api/auth/change-password | 更改密码 |
Wokwi分析(需要身份验证)
| 方法 | 路径 | 描述 |
|---|
| 职位 | /api/analyze | 完整项目分析(URL+可选设计描述) |
| 职位 | /api/check-wiring | 仅接线分析 |
| 职位 | /api/check-code | 纯代码分析 |
| 职位 | /api/suggest-fix | 生成修复建议 |
KiCad分析(需要身份验证)
| 方法 | 路径 | 描述 |
|---|
| 职位 | /api/kicad/upload | 上传.kicad_sch/.kicad_pcb文件+可选的design_description |
| 职位 | /api/kicad/analyze | 从原始内容分析 |
| 职位 | /api/kicad/check-schematic | 仅示意图分析 |
| 职位 | /api/kicad/check-pcb | 仅PCB分析 |
| 职位 | /api/kicad/suggest-fix | 生成KiCad修复建议 |
历史记录(需要身份验证)
| 方法 | 路径 | 描述 |
|---|
| 得到 | /api/history | 列出用户过去的分析(带项目类型) |
| 得到 | /api/history/{id} | 获取历史记录条目的完整报告 |
| 删除 | /api/history/{id} | 删除历史记录条目 |
MCP工具
在MCP模式下运行时(--mode mcp),服务器通过stdio公开这些工具:
周 :
analyze_wokwi_project(wokwi_url) --全面故障分析check_wiring(diagram_json) --接线分析check_code(sketch_code, diagram_json) --代码分析suggest_fix(fault_report, diagram_json, sketch_code) --修复生成
基卡德:
analyze_kicad_project(schematic_content, pcb_content, project_content) --完整的KiCad分析check_kicad_schematic(schematic_content) --ERC分析示意图check_kicad_pcb(pcb_content, schematic_content) --PCB DRC分析suggest_kicad_fix(fault_report, schematic_content, pcb_content) --修复生成
许可证
麻省理工学院