Skip to main content

Library and CLI for the Hanmatek Power supply units (PSU) of the HM3xxP series.

Project description

Latest Release pipeline status coverage report License: MIT

Hanmatek HM3xxP PSU control library and CLI

Unifying library and CLI for the popular and low-cost digital lab power supplies HM305P and HM310P.

The library provides an (almost) complete, easy to use interface to all known functions of the device. This project is different to the below mentioned ones, in that it provides a minimal, but complete interface to the device and also keeps the dependencies low.

This project is based on the work done in https://github.com/notkevinjohn/HM310P, which uses the minimalmodbus library for device communication. Other related projects were providing useful register definition and hints:

Installation

pip install hanmatek-psu

If users are in the plugdev user group, Hanmatek devices are accessible via /dev/ttyUSBx without privileges. Adding the following udev rule will create a symlink /dev/ttyHM3xxP when a Hanmatek PSU device is plugged in via USB. This symlink is used by default by the hanmatek-cli to find devices:

echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyHM3xxP", MODE="0666", GROUP="plugdev"' | sudo tee "/etc/udev/rules.d/99-hanmatek.rules" > /dev/null

Usage

CLI Usage

hanmatek-cli -h
hanmatek-cli --discover             # find devices
hanmatek-cli                        # show default device info
hanmatek-cli --device /dev/ttyUSB0  # specific device
hanmatek-cli voltage:set 3.0        # set voltage
hanmatek-cli current:set 0.1        # set current limit
hanmatek-cli output on
hanmatek-cli current                # read current
hanmatek-cli power                  # read power
hanmatek-cli output off
hanmatek-cli --list                 # list all commands/registers

Library Usage

from hanmatek import HM3xxP

device = HM3xxP("/dev/ttyHM3xxP")
print(device.info())
device.write("voltage:set", 3.0)
device.write("current:set", 3.0)
device.write("output", True)
print(device.read("current"))
print(device.read("power"))
device.write("output", False)

Development

The following tools are used to provide clean and quality software, and made available through a tox configuration: flake8 for linting, black for code formatting and checking, mypy for type checking and pytest for unit tests. Use as:

pip install tox
tox -a       # show test environments
tox          # run all
tox -e test  # run unit tests
tox -e lint  # run lint
tox -e type  # run type checker

(we're using pyproject-flake8, so that the flake8 configuration can live in pyproject.toml - within tox we then run pflake8 instead of flake8.)

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

hanmatek_psu-1.1.2.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

hanmatek_psu-1.1.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file hanmatek_psu-1.1.2.tar.gz.

File metadata

  • Download URL: hanmatek_psu-1.1.2.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/5.4.109+

File hashes

Hashes for hanmatek_psu-1.1.2.tar.gz
Algorithm Hash digest
SHA256 6344bcfc6a4f420ae926cff026471d302c44680fc73043be4f3671babf6fcd67
MD5 30f30cabc641d0b10a1352ca92907406
BLAKE2b-256 19e18879e9a701f15daea2d27960ab84fba6060d3794273069e04c4462b459b3

See more details on using hashes here.

File details

Details for the file hanmatek_psu-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: hanmatek_psu-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/5.4.109+

File hashes

Hashes for hanmatek_psu-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6e5f2a4403d25a2c30cd3ea1d10339b6ef796d70a022c37f8556db757ed6152f
MD5 39ef8fca450ec83bfcb71df5c4b8d2c4
BLAKE2b-256 40d0e1132071b01cdf2d965f55034c4af900458a79bbd80a02990ec1d1538408

See more details on using hashes here.

Supported by

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