Skip to main content
Glama

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: Prometheus 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 install

node が 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 を参照してください。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

0Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for the JouleScope JS220 precision energy analyzer, enabling agents to measure current, voltage, power, charge, and energy via tools like measure_energy.
    10
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to Prometheus metrics and queries, allowing AI assistants to execute PromQL queries and analyze metrics data through standardized MCP interfaces.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A read-only MCP server for querying telemetry data from configurable backends. Provides tools to list sources, describe schemas, run bounded queries, and compute aggregates.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Nordic Semiconductor's Power Profiler Kit II (PPK2), enabling current measurement and device control via 12 tools from Claude.
    1
    MIT

View all related MCP servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/schuschu/ppk2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server