ppk2-mcp
ppk2-mcp
Nordic Power Profiler Kit II용 헤드리스 드라이버, 명령줄 및 MCP 서버로, Nordic 자체 nRF Connect Power Profiler 앱의 디바이스 레이어를 감싸고 있습니다.
공식 앱을 재구현하지 않고 감싸는 이유
PPK2의 정확도는 명령 세트(소수의 opcode)에 있지 않습니다. 정확도는 연결 시 계측기가 보고하는 단위별 보정(per-unit calibration)과 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자릿수 작고, 상태별 질문에 필요한 어떤 것도 잃지 않으며, 지원하는 결과 옆에 커밋할 수 있을 만큼 작습니다.
두 가지는 의도적으로 평활화하지 않습니다:
계측기 자체의 페이로드 카운터가 손실되었다고 말한 샘플은 손실로 간주되며 런을 닫지 않습니다. 드롭아웃은 상태 변경도 아니고 전류도 아닙니다. 호출자가 허용하는 것보다 더 많이 손실된 캡처는 평균화되지 않고 REFUSED됩니다. 손실은 상태 간에 고르게 분포되지 않기 때문입니다.
상태는 MASKED 디지털 워드이므로, 아무것도 클리핑되지 않은 채널은 런을 둘로 나눌 수 없습니다.
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을 쓰고 디지털 상태별로 한 줄씩 출력합니다. 계측기가 --max-dropped-ppm보다 더 많은 스트림을 손실하면 0이 아닌 종료 코드로 종료됩니다.
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는 런 파일을 다시 읽고, 디지털 상태와 지속 시간 경계 세트가 주어지면 해당 상태의 런을 지속 시간별로 분할합니다. 이는 하나의 핀이 구분할 수 없는 두 상태를 간격 길이로 구분하는 방법입니다.
계측기는 호출당 열리고 그 후 닫힙니다. 한 번에 하나의 프로세스만 포트를 보유할 수 있고, 포트를 유지하는 서버는 앱과 명령줄을 모두 잠글 수 있기 때문입니다.
모드
여기서는 소스 출력을 활성화하지 않습니다. 계측기는 이미 있는 모드로 사용되며, 이 문서가 작성된 하네스는 자체 전원으로 전원이 공급되는 보드와 직렬로 연결된 전류계입니다. 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