Registry / data / pyjoulescope-driver

pyjoulescope-driver

JSON →
library2.2.12pypypi✓ verified 80d ago

Official Python driver for Joulescope™ energy measurement instruments (JS110, JS220, JS320). Current version 2.1.0 supports Python ~=3.10, Windows 11 ARM, and includes breaking changes in the 2.x series. Release cadence is irregular, typically several times per year.

pip install pyjoulescope-driver
INSTALL
IMPORT
SIG · PYJOULESCOPE-DRIVE
P
pyjoulescope-driver
datapythonv2.2.12
Install
4.5s avg
Import
Disk
103MB
Pass rate
4/ 10
Env Coverage4 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v2.2.12 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✕ build_error
✕ build_error
py 3.11
✕ build_error
✓ 4.6s
py 3.12
✕ build_error
✓ 4.1s
py 3.13
✕ build_error
✓ 4.2s
py 3.9
✕ build_error
✓ 5.3s
103MB installed
● package 103MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Driver
from pyjoulescope_driver import Driver
from pyjoulescope_driver import JoulescopeDriver

Minimal script to open the driver, scan for devices, and print the first found device name.

from pyjoulescope_driver import JoulescopeDriver from pyjoulescope_driver import Scanner import numpy as np driver = JoulescopeDriver() scanner = Scanner(driver) scanner.open() devices = scanner.devices print(f"Found {len(devices)} device(s)") if devices: device_info = devices[0] print(f"Device: {device_info['name']}") driver.close(device_info['handle']) scanner.close()
Debug
Known issues
breaking2.x introduced a new C API with struct layout changes: JSDRV_STREAM_HEADER_SIZE increased from 48 to 56 bytes. Any code that directly reads stream data from the underlying buffer must be updated.
fix
Rebuild/update any code that depends on the raw stream header size. Use pyjoulescope_driver's high-level API instead of direct C struct manipulation.
affects: <2.0.0
breakingtmap API removed ref counting functions (jsdrv_tmap_ref_incr, jsdrv_tmap_ref_decr) and reader enter/exit. Now uses copy-on-publish.
fix
Replace ref counting with jsdrv_tmap_free / jsdrv_tmap_copy calls. Update code that obtained tmap references.
affects: <2.0.0
gotchaThe driver is not thread-safe. All calls to the same JoulescopeDriver instance must be made from the same thread.
fix
Use a dedicated thread for driver operations and queue commands to it.
affects: all
deprecatedPython 3.10 support dropped in v1.11.0. Requires Python ~=3.10 (3.11, 3.12, 3.13, 3.14).
fix
Upgrade Python to 3.11 or later.
affects: >=1.11.0
gotchaOn macOS, you may need to install libusb via Homebrew before installing the driver: brew install libusb
fix
Run 'brew install libusb' and then retry pip install.
affects: all
Upgrade
Version history
2.2.12latest on PyPI · released Jun 18, 2026
Audit
Dependencies
numpyrequiredRequired for signal data handling
pyjoulescope-driver-binoptionalBinary package for non-compilation platforms (use via extras)
Agent activity
42 hits · last 30 days
node
36
OpenAI (training)
1
Resources
pyjoulescope-driver — pip install pyjoulescope-driver · libregistry