joulescope
Joulescope™ host driver and utilities
What it is and what it does
Joulescope is the Python driver for Joulescope, a hardware DC energy analyzer. It lets you automate measurements of current, voltage, power, and energy directly from Python code, capturing real-time data from the connected device. The package provides both a programmatic API for integration into test and monitoring scripts and a command-line tool for direct operation.
The driver depends on pyjoulescope_driver for low-level hardware communication, numpy for data processing, and several utility libraries (psutil, pyjls, python-dateutil, pymonocypher, pywin32). It supports Python 3.12–3.14 on Windows, macOS, and Linux, with prebuilt wheels for common architectures. Most end-users run the graphical interface from pyjoulescope_ui instead, but this package is the foundation for programmatic control and automation.
Use it for:
- Automate power consumption profiling in embedded systems development and optimization workflows.
- Capture and log energy data for battery-powered device testing and validation.
- Integrate real-time current and voltage measurements into continuous integration or hardware test suites.
- Build custom power analysis dashboards or data pipelines using the Python API.
- Monitor power draw during firmware development and debugging cycles.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Joulescope is a Python driver for the Joulescope DC energy analyzer hardware, enabling automated measurement and logging of current, voltage, power, and energy in your applications.
Yes, if you own a Joulescope device and need programmatic control or automation. The package is actively maintained, permissively licensed, and supports modern Python versions. Install friction is moderate due to multiple dependencies and hardware requirements, but the API is straightforward. Not useful without the physical hardware.
Install
joulescope on PyPI
pip
pip install joulescopeuv
uv add joulescopepoetry
poetry add joulescopeInstalling joulescope
Before you install
Medium install friction due to 7 runtime dependencies including pyjoulescope_driver and platform-specific wheels for Windows, macOS, and Linux. Actively maintained with a recent release (10 days old) and current Python support (3.12–3.14).
License in practice
Apache-2.0 is permissive; you can use this package in commercial and proprietary projects without reciprocal licensing obligations.
Quickstart
import joulescope
import numpy as np
with joulescope.scan_require_one(config='auto') as js:
data = js.read(contiguous_duration=0.1)
current, voltage = np.mean(data, axis=0, dtype=np.float64)
print(f'{current} A, {voltage} V')
Requires a Joulescope hardware device connected via USB and pyjoulescope_driver to be installed.
Verify before relying
- Whether pyjoulescope_driver is freely available or requires proprietary hardware licensing.
- Specific USB device requirements (e.g., Joulescope model compatibility).
- Whether the CLI tool 'joulescope' is fully functional without the graphical UI.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (~=3.12) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 7 — numpy, psutil, pyjls, pyjoulescope_driver, python-dateutil, pymonocypher, pywin32 |
| Maintenance | actively maintained — 10 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 116,527/month — #12,199 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: joulescope-1.6.0-cp312-cp312-macosx_10_13_universal2.whl; joulescope-1.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; joulescope-1.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; joulescope-1.6.0-cp312-cp312-win_amd64.whl; joulescope-1.6.0-cp312-cp312-win_arm64.whl; joulescope-1.6.0-cp313-cp313-macosx_10_13_universal2.whl; joulescope-1.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; joulescope-1.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; joulescope-1.6.0-cp313-cp313-win_amd64.whl; joulescope-1.6.0-cp313-cp313-win_arm64.whl; joulescope-1.6.0-cp314-cp314-macosx_10_15_universal2.whl; joulescope-1.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; joulescope-1.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; joulescope-1.6.0-cp314-cp314-win_amd64.whl; joulescope-1.6.0-cp314-cp314-win_arm64.whl
Keywords: joulescope, driver
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
ppk2-apiProvides a Python API to automate power…
copyleft · top 15,000 on PyPI
pyjoulescope-driverPython bindings for the Joulescope DC energy…
permissive · top 15,000 on PyPI
pyjlsReads and writes JLS (Joulescope) files, a…
permissive · top 15,000 on PyPI
p1monitorAsynchronous Python client library for reading…
permissive · top 15,000 on PyPI
aiousbwatcherWatches for USB devices being plugged in and…
permissive · top 15,000 on PyPI
codecarbonMeasures and tracks carbon emissions from local…
permissive · top 15,000 on PyPI
sense-energyProvides Python access to the Sense Energy…
permissive · top 15,000 on PyPI
opowerFetches historical and forecasted energy usage…
permissive · top 15,000 on PyPI
spidevProvides Python bindings to interact with SPI…
permissive · top 15,000 on PyPI
nidaqmxProvides a Python API to control and acquire…
permissive · top 15,000 on PyPI