Skip to main content

Python interface for Hantek bench power supply

Project description

test-and-lint

Hantek Power Supply Controller

This is an interface to the serial port on Hantek HDP1160V4S power supply. It should work with other HDP10000-series power supplies. buy

ATTENTION

USING THIS CODE MAY DAMAGE YOUR POWER SUPPLY OR CONNECTED DEVICES. USE AT YOUR OWN RISK.

To communicate with the PSU I am using USB-to-RS232 adapter - does not require any drivers on debian linux.


Installation

pip install hantekpsu

Usage

from hantekpsu import PSU
p = PSU(port='/dev/ttyUSB0', baudrate=2400)

Methods

Method Description Return Type
turn_on() Turns on the power supply unit. None
turn_off() Turns off the power supply unit. None
ocp_on() Enables Over Current Protection (OCP). None
ocp_off() Disables Over Current Protection (OCP). None
ovp_on() Enables Over Voltage Protection (OVP). None
ovp_off() Disables Over Voltage Protection (OVP). None
get_model() Gets the model of the PSU. str
get_active_voltage() Gets the active output voltage of the PSU in volts. float
get_active_current() Gets the active output current of the PSU in milliamps. int
get_voltage_limit() Gets the voltage limit setting of the PSU in volts. float
get_current_limit() Gets the current limit setting of the PSU in milliamps. int
get_on_off_status() Returns the on/off status of the PSU. bool
set_output_voltage(v: float) Sets the output voltage of the PSU in volts. None
set_output_current(mA: int) Sets the output current of the PSU in milliamps. None
set_ovp_limit(v: float) Sets the Over Voltage Protection (OVP) limit in volts. None
set_ocp_limit(mA: int) Sets the Over Current Protection (OCP) limit in milliamps. None

Examples

Set voltage to 12V and turn on the power supply:

>>> from hantekpsu import PSU
>>> p = PSU()
>>> p.set_output_voltage(12.0)
>>> p.turn_on()

Development

Requirements

  • python 3.10+
  • poetry

Ensure the device is connected. If using usb-to-rs232 adapter, run lsusb:

$ lsusb
Bus 001 Device 012: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC

You should also see something similar to /dev/ttyUSB0 in the /dev folder.

To figure out which device it is, you can run ls /dev before plugging in the adapter and after and compare the differences.

Installation

git clone https://github.com/builder555/hantek-controller
cd hantek-controller
poetry config virtualenvs.in-project true --local
poetry install

Unit Tests

When adding new features or modifying existing ones, make sure you add unit tests and run them:

$ poetry run pytest -v

test_psu.py::test_get_model_number PASSED                       [  6%]
test_psu.py::test_get_active_voltage PASSED                     [ 12%]
test_psu.py::test_get_active_current_in_milliamps PASSED        [ 18%]
test_psu.py::test_get_voltage_limit PASSED                      [ 25%]
test_psu.py::test_get_current_limit_in_milliamps PASSED         [ 31%]
test_psu.py::test_get_on_off_status PASSED                      [ 37%]
test_psu.py::test_turn_on PASSED                                [ 43%]
test_psu.py::test_turn_off PASSED                               [ 50%]
test_psu.py::test_ocp_on PASSED                                 [ 56%]
test_psu.py::test_ocp_off PASSED                                [ 62%]
test_psu.py::test_ovp_on PASSED                                 [ 68%]
test_psu.py::test_ovp_off PASSED                                [ 75%]
test_psu.py::test_set_voltage PASSED                            [ 81%]
test_psu.py::test_set_current PASSED                            [ 87%]
test_psu.py::test_set_ovp PASSED                                [ 93%]
test_psu.py::test_set_ocp PASSED                                [100%]

========================= 16 passed in 0.03s =========================

You can also run pytest-watch while developing to run tests automatically on save:

poetry run ptw --runner 'pytest -v'

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

hantekpsu-1.0.1.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

hantekpsu-1.0.1-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file hantekpsu-1.0.1.tar.gz.

File metadata

  • Download URL: hantekpsu-1.0.1.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for hantekpsu-1.0.1.tar.gz
Algorithm Hash digest
SHA256 9c8f143fbd88a4e6a8421616b44fc61df77728a50cb2b6cdbda2d16ea5633a9c
MD5 b334a737f4c160bb15ad4ba01e3812af
BLAKE2b-256 b373b54e39d0d5b80196b94fc114624495cf9cf60fdb0b6aa9e766f42ced2036

See more details on using hashes here.

Provenance

The following attestation bundles were made for hantekpsu-1.0.1.tar.gz:

Publisher: ci.yml on builder555/hantek-controller

Attestations:

File details

Details for the file hantekpsu-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: hantekpsu-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for hantekpsu-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 af69560da5ca818391b32a3c876feeca2a47bb965f3f736c3b6e92c320d5f019
MD5 bb624476451d1fc2b441ea1c072e9566
BLAKE2b-256 a8e34df01aa63f3410b193cbc1e5cd0aea515fb51bf68960a4ae931dd1cf01ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for hantekpsu-1.0.1-py3-none-any.whl:

Publisher: ci.yml on builder555/hantek-controller

Attestations:

Supported by

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