电流测量服务器

一个为Nordic Semiconductor的Power Profiler Kit II (PPK2)提供电流测量和日志记录功能的服务器。

  • by Ultrahuman-tech
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Ultrahuman-tech/ppk2-mcp

使用说明

ppk2-mcp

北欧半导体的MCP服务器 功率分析器套件II (PPK2)。提供12个工具,用于直接从Claude Code或Claude Desktop发现、连接、配置和测量电流消耗。

特征

  • 发现 USB上的PPK2设备
  • 连接 具有自动校准加载功能
  • 配置 电源/电流模式和电源电压
  • 测量 约100kHz本机采样率下的电流
  • 日志 将原始测量值转换为带时间戳的CSV文件
  • 检查 在不离开对话的情况下保存日志

需求

  • Python 3.10+
  • 北欧半导体PPK2硬件
  • USB连接到PPK2

快速开始

git clone https://github.com/Ultrahuman-tech/ppk2-mcp.git
cd ppk2-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

然后配置您的MCP客户端(见下文)。

配置

克劳德代码

添加 ~/.claude.json 在...之下 mcpServers:

{
  "mcpServers": {
    "ppk2": {
      "command": "/path/to/ppk2-mcp/.venv/bin/python3",
      "args": ["/path/to/ppk2-mcp/ppk2_server.py"],
      "type": "stdio"
    }
  }
}

克劳德桌面

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "ppk2": {
      "command": "/path/to/ppk2-mcp/.venv/bin/python3",
      "args": ["/path/to/ppk2-mcp/ppk2_server.py"]
    }
  }
}

替换 /path/to/ppk2-mcp 使用实际的克隆位置。

工具参考

工具 说明
list_devices 扫描USB以查找连接的PPK2设备
connect 连接到PPK2并加载校准(返回会话ID)
disconnect 断开、停止测量、关闭DUT电源
set_mode 设置操作模式: source (PPK2为DUT供电)或 ampere (外部电源)
set_voltage 设置电源电压,单位为mV(仅源模式,800-5000mV)
power_control 打开/关闭DUT电源
get_session_info 显示当前会话状态
start_measuring 开始连续电流测量
stop_measuring 停止连续测量
measure Atomic:启动、收集N秒、停止、保存CSV、返回统计数据
list_logs 列出保存的测量CSV文件
get_log 读取已保存的日志文件(元数据+前N行)

典型工作流程

list_devices          → find PPK2 on USB
connect               → get session_id
set_mode "source"     → PPK2 supplies power
set_voltage 3300      → 3.3V to DUT
power_control "on"    → power up the device
measure 5.0           → capture 5 seconds of current data
disconnect            → clean up

日志

原始测量数据保存到 logs/ 将目录转换为带时间戳的CSV文件。每个文件包含:

  • 带有元数据(日期、持续时间、模式、电压、样本计数、样本率)的注释标题
  • CSV数据列: sample_idx, current_ua (可选 digital 数字频道)

例子:

# PPK2 Raw Measurement Log
# Date: 2025-02-18 19:57:00
# Duration: 2.01s
# Mode: source
# Voltage: 3300 mV
# Samples: 200,544
# Sample Rate: 99,773 sps
sample_idx,current_ua
0,1523.45
1,1518.22
...

已知问题

  • 重新连接时串行缓冲区损坏:在前一个会话崩溃或中断后,PPK2的串行缓冲区可能包含剩余的二进制测量数据。服务器通过在读取校准数据之前刷新缓冲区来自动处理此问题。
  • 元数据解码错误:上游 ppk2-api 库可能会因串行缓冲区中的二进制噪声而崩溃。此服务器包含一个内置补丁(latin-1回退),因此不需要手动编辑库。

许可证

麻省理工学院-见 许可证.