ppk2-api
API for Nordic Semiconductor's Power Profiler Kit II (PPK 2).
Decision gist · record as of 2026-08-14
Yes, if you own a PPK 2 and need automated power measurement. The package is actively maintained, has low install friction, and fills a genuine gap (no official automation support). The GPLv2 license is a consideration for proprietary projects. The 1162-day gap since first release and over a year since the last release suggest the core API is stable but may not be under active feature development.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a PPK 2 device connected to a serial port; the serial port path must be known and accessible to the Python process.
- Low install friction with a single runtime dependency (pyserial).
- Package is actively maintained with recent commits and a modest but engaged user base, though last release was over a year ago.
License · maintenance · safety
copyleft license (copyleft) — Licensed under GPLv2 (copyleft). Any derivative work or modifications must be shared under the same license terms. Suitable for open-source projects; proprietary software integration requires careful review.
last release 2023-06-09 (1162 days) · last repo commit 2026-05-19 · 245 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 85,221 downloads/mo, #13,941 on PyPI
Alternatives
Verify before relying
from ppk2_api import PPK2_API
import time
ppk2 = PPK2_API("/dev/ttyACM0") # adjust serial port
ppk2.use_source_meter()
ppk2.set_source_voltage(3300)
ppk2.start_measuring()
for i in range(10):
data = ppk2.get_data()
if data:
samples = ppk2.get_samples(data)
print(f"Avg: {sum(samples)/len(samples)}uA")
time.sleep(0.1)
ppk2.stop_measuring()- Whether Python version support is truly unspecified or if there is a practical minimum (e.g., Python 3.6+)
- Current state of 'in progress' features (data logging formats, full GUI parity) and their timeline
- Whether multiprocessing mode is production-ready or still experimental
What it is and what it does
ppk2-api is a Python wrapper around Nordic Semiconductor's Power Profiler Kit II hardware, enabling automated power consumption measurement and logging without the GUI. It communicates with the PPK 2 device over a serial port and provides methods to configure measurement modes, set voltage levels, and stream power samples in real time.
The package offers two usage patterns: a basic synchronous API that reads samples on demand, and a multiprocessing variant that runs a background polling process to buffer up to 10 seconds of data, reducing the frequency of manual polling. It is cross-platform and requires only pyserial as a runtime dependency, making it suitable for embedded test automation, power profiling in CI/CD pipelines, and long-term power monitoring applications.
Use it for
- Automated power consumption testing in embedded device development workflows and CI/CD pipelines
- Long-term power monitoring and data logging for battery-powered device optimization
- Real-time power measurement during firmware development without manual GUI interaction
- Batch power profiling across multiple device configurations or firmware variants
- Integration of power metrics into test reports and performance dashboards
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you own a PPK 2 and need automated power measurement.
The package is actively maintained, has low install friction, and fills a genuine gap (no official automation support). The GPLv2 license is a consideration for proprietary projects. The 1162-day gap since first release and over a year since the last release suggest the core API is stable but may not be under active feature development.
Install
ppk2-api on PyPI
Before you install
Low install friction with a single runtime dependency (pyserial). Package is actively maintained with recent commits and a modest but engaged user base, though last release was over a year ago.
Requires a PPK 2 device connected to a serial port; the serial port path must be known and accessible to the Python process.
License in practice
Licensed under GPLv2 (copyleft). Any derivative work or modifications must be shared under the same license terms. Suitable for open-source projects; proprietary software integration requires careful review.
Quickstart
from ppk2_api import PPK2_API
import time
ppk2 = PPK2_API("/dev/ttyACM0") # adjust serial port
ppk2.use_source_meter()
ppk2.set_source_voltage(3300)
ppk2.start_measuring()
for i in range(10):
data = ppk2.get_data()
if data:
samples = ppk2.get_samples(data)
print(f"Avg: {sum(samples)/len(samples)}uA")
time.sleep(0.1)
ppk2.stop_measuring()
Verify before relying
- Whether Python version support is truly unspecified or if there is a practical minimum (e.g., Python 3.6+)
- Current state of 'in progress' features (data logging formats, full GUI parity) and their timeline
- Whether multiprocessing mode is production-ready or still experimental
Package facts
| License | copyleft license copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagepyserial |
| Maintenance | Actively maintained 1,162 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 85,221 / month, #13,941 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: GNU General Public License v2 (GPLv2)Operating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: ppk2_api-0.9.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “power profiler kit ii python”
- ppk2-apiProvides a Python API to automate power consumption measurement and…
- dlipowerManages Digital Loggers web-based network power switches through a…
- yappiYappi is a deterministic profiler for Python that tracks CPU and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also joulescope · p1monitor · ovoenergy · pyroscope-io · google-cloud-profiler · py-spy · dlipower · pyjoulescope-driver · scalene · zigpy-deconz