ppk2-mcp
ppk2-mcp
Nordic Power Profiler Kit II 用のヘッドレスドライバ、コマンドライン、MCP サーバー。Nordic 自身の nRF Connect Power Profiler アプリのデバイス層をラップしています。
公式アプリをラップする理由(再実装ではなく)
PPK2 の精度は、そのコマンドセット(わずかなオペコード)にあるのではありません。それは、接続時に機器が報告するユニットごとのキャリブレーションと、14 ビット ADC の読み取り値、測定レンジ、そのキャリブレーションを電流に変換する処理(レンジ切り替えで発生するスパイクを抑えるフィルタを含む)にあります。これらは Nordic が新しい機器ファームウェアをリリースするたびに変更される部分であり、再実装が静かに間違える部分でもあります。数値は依然として電流のように見えるからです。
したがって、vendor/pc-nrfconnect-ppk はアプリ自体のサブモジュールであり、その中の src/device/serialDevice.ts はそのままインポートして使用されます。このリポジトリ内で ADC 読み取り値を変換するものはありません。新しいファームウェアリリースへの追従はサブモジュールの更新だけです。
このリポジトリが追加するのは、アプリがスクリプトに提供できない部分です。アプリはチャートを持つ Electron プログラムであり、測定に必要なのは状態に帰属する数値です。
Related MCP server: PPK2 MCP Server
平均では測れないもの
この機器は、電流と 8 つのデジタルチャンネルを 100 kSa/s で同時にサンプリングします。デジタルチャンネルを、ファームウェアが駆動するピンに配線して状態(ラジオの電源オフ、ペリフェラルのクロック供給、タスクの実行中など)をマークすると、キャプチャはその状態のコストを報告できます。ボードがその間に平均した値ではなく。
これが設計全体です。キャプチャは RUNS として保存されます。デジタルワードが変化しなかった最大のスパンであり、それぞれにサンプル数、平均、極値、電荷が含まれます。ラン ファイルは、その背後にあるサンプルよりも 3 桁小さく、状態ごとの質問に必要なものを失わず、サポートする結果の横にコミットできるほど小さいです。
2 つのことは意図的に平滑化されていません:
機器自身のペイロードカウンタが失われたと報告するサンプルは、失われたものとしてカウントされ、ランを閉じません。ドロップアウトは状態変化でも電流でもありません。呼び出し元が許可する以上に失ったキャプチャは、平均化されるのではなく拒否されます。損失は状態全体に均等に分散されるわけではないからです。
状態はマスクされたデジタルワードであるため、何もクリップされていないチャンネルはランを 2 つに分割できません。
probeはすべてのチャンネルを報告するため、実際に配線されたものからマスクを選択できます。
インストール
Node 20 以降と、USB 接続の PPK2 が必要です。
git clone --recurse-submodules https://github.com/schuschu/ppk2-mcp
cd ppk2-mcp
npm installnode が PATH にない場合は、export PPK2_NODE_BIN=/path/to/node/bin と設定すると、./ppk2 ランチャーがそれを見つけます。
Linux では、ユーザーは機器のシリアルポートに対する読み取りと書き込みの権限が必要です。通常は dialout グループへの所属を意味します。
コマンドライン
./ppk2 list
./ppk2 info
./ppk2 probe --seconds 5
./ppk2 capture --out /tmp/run --seconds 60 --mask 0x0f \
--names txrx,addr,txen,rxen --label "what this run is"probe は、どのデジタルチャンネルが配線されているかを示します。capture は <out>.runs.csv と <out>.meta.json を書き出し、デジタル状態ごとに 1 行を出力します。機器がストリームの --max-dropped-ppm を超えて失った場合、ゼロ以外の終了コードで終了します。
MCP サーバー
./node_modules/.bin/tsx src/mcp.tsまたは stdio サーバーエントリとして:
{
"command": "npm",
"args": ["--prefix", "/path/to/ppk2-mcp", "run", "--silent", "mcp"]
}ツール: ppk2_list, ppk2_info, ppk2_probe, ppk2_capture, ppk2_analyze。
すべてのツールは集計とファイルパスで応答します。どれもサンプルを返しません。100 kSa/s では 1 分のキャプチャが 600 万サンプルになり、呼び出し元が保持できる応答でも、読み手が確認できるものでもありません。ppk2_analyze はラン ファイルを読み戻し、デジタル状態と一連の持続時間エッジが与えられると、その状態のランを持続時間で分割します。これにより、1 つのピンでは区別できない 2 つの状態を、代わりに間隔の長さで区別します。
機器は呼び出しごとに開かれ、その後閉じられます。一度に 1 つのプロセスだけがポートを保持できるため、サーバーがポートを保持し続けると、アプリとコマンドラインの両方がロックアウトされるからです。
モード
ここではソース出力を有効にすることはありません。機器は既にあるモードで使用されます。これが書かれたハーネスは、独自の電源で駆動するボードと直列の電流計です。Nordic DK では、ジャンパーを外した電流測定ヘッダーです。
ライセンス
ベンダー提供のアプリとこのラッパーは Nordic のライセンスの下にあります。vendor/pc-nrfconnect-ppk/LICENSE を参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Create and manage trading strategies, bots, webhooks and signals from any MCP client.
Market Data App MCP — wraps the Market Data App API (marketdata.app)
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for Nordic Semiconductor's Power Profiler Kit II (PPK2), enabling current measurement and device control via 12 tools from Claude.1MIT
- FlicenseAqualityDmaintenanceEnables MCP clients to control a Nordic PPK2 for power profiling: configure source/measurement modes, set voltage, power DUT, measure current/power/energy, and capture logic channels.6-
- FlicenseNot gradedqualityCmaintenanceLocal MCP server for building an agent-facing integration around DreamSourceLab DSView. Enables native logic capture, protocol decode, and analysis with artifact management for I2C, SPI, and UART.-
- AlicenseNot gradedqualityBmaintenanceEnables pulling test data, inspecting telemetry channels, running analysis, and writing results back from any MCP client.MIT