Skip to main content
Glama

ppk2-mcp

Un controlador sin interfaz gráfica, línea de comandos y servidor MCP para el Nordic Power Profiler Kit II, envuelto alrededor de la capa de dispositivo de la propia aplicación nRF Connect Power Profiler de Nordic.

Por qué envuelve la aplicación oficial en lugar de reimplementarla

La precisión del PPK2 no reside en su conjunto de comandos, que es un puñado de opcodes. Reside en la calibración por unidad que el instrumento reporta al conectarse y en la conversión que transforma una lectura ADC de 14 bits, un rango de medición y esa calibración en una corriente, incluido el filtro que suprime el pico que produce un cambio de rango. Esas son las partes que cambian cuando Nordic lanza nuevo firmware del instrumento, y son las partes que una reimplementación falla silenciosamente: los números siguen pareciendo corrientes.

Por eso vendor/pc-nrfconnect-ppk es un submódulo de la propia aplicación, y src/device/serialDevice.ts dentro de él se importa y se usa tal cual. Nada en este repositorio convierte una lectura ADC. Seguir una nueva versión de firmware es un cambio de submódulo.

Lo que este repositorio añade es la parte que la aplicación no puede dar a un script: la aplicación es un programa Electron con un gráfico, y lo que una medición necesita es un número atribuido a un estado.

Related MCP server: Prometheus MCP Server

Lo que mide que un promedio no mide

El instrumento muestrea la corriente y ocho canales digitales juntos a 100 kSa/s. Conecta un canal digital a un pin que el firmware maneja para marcar un estado (una radio apagada, un periférico con reloj, una tarea en ejecución) y la captura puede decir cuánto costó ese estado, en lugar de cuánto promedió la placa mientras ocurría.

Ese es todo el diseño. Las capturas se almacenan como RUNS: tramos máximos durante los cuales la palabra digital no cambió, cada uno con su recuento de muestras, media, extremos y carga. Un archivo de runs es tres órdenes de magnitud más pequeño que las muestras que lo respaldan, no pierde nada que cualquier pregunta por estado necesite, y es lo suficientemente pequeño como para comprometerlo junto al resultado que respalda.

Dos cosas no se suavizan deliberadamente:

  • Una muestra que el propio contador de carga útil del instrumento dice que se perdió se cuenta como perdida y no cierra un run. Una caída no es un cambio de estado, y tampoco es una corriente. Una captura que perdió más de lo que el llamador permite se RECHAZA en lugar de promediarse, porque la pérdida no se distribuye uniformemente entre los estados.

  • Un estado es la palabra digital ENMASCARADA, por lo que los canales a los que no se ha recortado nada no pueden dividir un run en dos. probe informa de cada canal para que la máscara pueda elegirse según lo que realmente está conectado.

Instalación

Node 20 o más reciente, y un PPK2 en USB.

git clone --recurse-submodules https://github.com/schuschu/ppk2-mcp
cd ppk2-mcp
npm install

Si node no está en PATH, exporta PPK2_NODE_BIN=/path/to/node/bin y el lanzador ./ppk2 lo encontrará.

En Linux, el usuario necesita lectura y escritura en el puerto serie del instrumento, lo que normalmente significa ser miembro de dialout.

Línea de comandos

./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 dice qué canales digitales están conectados. capture escribe <out>.runs.csv y <out>.meta.json e imprime una línea por estado digital. Sale con código distinto de cero cuando el instrumento pierde más de --max-dropped-ppm de la transmisión.

Servidor MCP

./node_modules/.bin/tsx src/mcp.ts

o como entrada de servidor stdio:

{
  "command": "npm",
  "args": ["--prefix", "/path/to/ppk2-mcp", "run", "--silent", "mcp"]
}

Herramientas: ppk2_list, ppk2_info, ppk2_probe, ppk2_capture, ppk2_analyze.

Cada herramienta responde con agregados y rutas de archivo. Ninguna devuelve muestras: a 100 kSa/s, un minuto de captura son seis millones de ellas, lo que no es ni una respuesta que un llamador pueda sostener ni una que un lector pueda verificar. ppk2_analyze lee un archivo de runs y, dado un estado digital y un conjunto de bordes de duración, divide los runs de ese estado según cuánto duraron, que es cómo se distinguen dos estados que un solo pin no puede diferenciar, por la longitud del intervalo en su lugar.

El instrumento se abre por llamada y se cierra después, porque un proceso a la vez puede mantener el puerto y un servidor que lo mantuviera bloquearía tanto la aplicación como la línea de comandos.

Modos

Nada aquí habilita nunca una salida de fuente. El instrumento se usa en el modo en que ya esté, y el arnés para el que se escribió esto es un amperímetro en serie con una placa alimentada por su propia fuente: en un Nordic DK, el cabezal de medición de corriente con su puente extraído.

Licencia

La aplicación incluida y este envoltorio están bajo la licencia de Nordic; consulta 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