skillfed

joulescope

Joulescope™ host driver and utilities

joulescope v1.6.0 116.5K downloads/30d#12,199 on PyPI50
Permissive license Apache-2.0 Active released

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 joulescope

uv

uv add joulescope

poetry

poetry add joulescope

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: Windows :: Windows 10Operating System :: Microsoft :: Windows :: Windows 11Operating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: Scientific/EngineeringTopic :: Software Development :: Embedded SystemsTopic :: Software Development :: TestingTopic :: System :: Hardware :: Hardware DriversTopic :: System :: Hardware :: Universal Serial Bus (USB)Topic :: Utilities

Tags

DC energy analyzer drivercurrent voltage power measurementjoulescope hardware controlprecision energy loggingUSB power meter pythonembedded system power profilinghardware energy monitoring
hardware-driverpower-measurementembedded-systems

More Scientific/Engineering packages