Skip to main content

Joulescope™ host driver and utilities

Project description

Joulescope

Build Status

Welcome to Joulescope™! Joulescope is an affordable, precision DC energy analyzer that enables you to build better products. Joulescope accurately and simultaneously measures the voltage and current supplied to your target device, and it then computes power and energy. For more information on Joulescope, see www.joulescope.com.

This pyjoulescope python package contains the driver and command-line utilities that run on a host computer and communicates with a Joulescope device over USB. You can use this package to automate and script Joulescope operation. You can also incorporate Joulescope into a custom application. Most users will run the graphical user interface which is in the pyjoulescope_ui package. The majority of code is written in Python 3.6+, but a small amount is in Cython for better performance.

This package runs under Windows 10, Linux (Ubuntu is tested) and Mac OS X. On Windows, the USB communication is performed using WinUSB, which is included with Windows 10. On Linux and Mac OS X, the USB communication uses libusb-1.0.

For the list of changes by release, see the Changelog.

If you just want to use Joulescope, you can download the application.

Quick start

Install Python 3.6+ 64-bit. If you already have Python installed, verify 3.6+ and 64-bit:

python3 -V -V

Install this python package from pypi:

pip3 install joulescope

The Joulescope python package includes command line tools:

python3 -m joulescope --help

For example, to capture 1 second of contiguous data:

python3 -m joulescope capture --contiguous 1.0 mycapture.jls

You can also import the Joulescope python package in your own programs. For example, this script opens the joulescope instrument, reads 1/4 second of data, and then display the averaged values:

import joulescope
import numpy as np

js = joulescope.scan_require_one()
js.open()
try:
    js.parameter_set('source', 'on')
    js.parameter_set('i_range', 'auto')
    data = js.read(contiguous_duration=0.25)
finally:
    js.close()

current, voltage = np.mean(data, axis=0)
print(f'{current} A, {voltage} V')

For more examples, see pyjoulescope_examples

Developer

Install Python 3.6+ 64-bit.

Configure virtualenv

Although not required, the developers recommend using virtualenv.

First install virtualenv:

pip3 install virtualenv

And then create a new virtual environment.

virtualenv ~/venv/joulescope

You need to activate the virtual environment whenever you start a new terminal.

On POSIX (Linux, Mac OS X with homebrew):

source ~/venv/joulescope/bin/activate

On Windows:

virtualenv c:\venv\joulescope
source c:\venv\joulescope\Scripts\activate

Configure packages

Install development dependencies:

pip3 install -r requirements.txt

Use Joulescope

Joulescope includes PYX files that must be compiled to native libraries using Cython. You can use the setup script to allow development in place:

python3 setup.py build_ext --inplace

You should then be able to execute joulescope:

python3 -m joulescope --help

If you want to switch directories, you may need to set your PYTHONPATH environment variable.

If you would rather build and install Joulescope:

python setup.py sdist
pip3 install dist/joulescope_[version].tar.gz

License

All pyjoulescope code is released under the permissive Apache 2.0 license. See the License File for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

joulescope-0.6.10.tar.gz (335.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

joulescope-0.6.10-cp37-cp37m-win_amd64.whl (280.3 kB view details)

Uploaded CPython 3.7mWindows x86-64

File details

Details for the file joulescope-0.6.10.tar.gz.

File metadata

  • Download URL: joulescope-0.6.10.tar.gz
  • Upload date:
  • Size: 335.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for joulescope-0.6.10.tar.gz
Algorithm Hash digest
SHA256 2213f11e84a176737e83abac0f3ecfa488dcf26f190ea8c567e768c03365fdc7
MD5 72ba68b331d4d2787680775279160927
BLAKE2b-256 63069179888842b62e3429b5c94aaee65dd09bc6b6b19eae5fa6e2eaf4e17510

See more details on using hashes here.

File details

Details for the file joulescope-0.6.10-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: joulescope-0.6.10-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 280.3 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for joulescope-0.6.10-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7d7b48d9c57393b634cb71fecc9c1b8ffcfe0703e550257f061aab60cbbc7fe7
MD5 a2fa18f0a52137dacba828d6f036762e
BLAKE2b-256 e192c2bb949f28b0a5df2a8af90f7c5af5d780114fbcd20fcd84cc6da031496e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page