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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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