PSUcontrol
This is an application for controlling a Velleman LABPS3005D bench PSU and any compatible ones.
The project is still a work-in-progress and has only been tested with the aforementioned Velleman. That said, the basics do work fine for me.
CAVEATS
These PSUs tend to be buggy in multiple different ways and I have seen some mentions online about some of them just randomly having far longer delays in responding to commands than usual. The Velleman I have is missing e.g. the ability to control the audible beeps and the ability to lock/unlock the physical controls despite the protocol documentation saying otherwise. Without the ability to upgrade their firmwares this project is entirely YMMV and no guarantees are given.
INSTALLATION
The recommended approach:
pipx install psucontrol
(If you are not familiar with pipx, take a look here)
You can also grab one of the binary releases from the Releases-section but they are rather large because they bundle an entire Python-environment inside. Do also note that the Windows Defender is practically guaranteed to falsely flag the .exe-files as containing viruses -- this is a false positive but there is really not much I can do about it.
DEVELOPMENT
Install poetry. I, again, recommend pipx for this.
To modify the GUI:
git clone --recurse-submodules https://github.com/WereCatf/psucontrol
cd psucontrol
export PYSIDE_DESIGNER_PLUGINS="external/indicatorlabel;external/lcdlabel"
poetry install
poetry run pyside6-designer
If you have made any GUI or resource-file changes, you can rebuild the relevant files with:
cd psucontrol # If not already in there
poetry run pyside6-project build
# There is seemingly no way of making either pyside6-project or pyside6-uic to correctly generate the imports
# so we have to always fix the imports, or at least I have not found a way to do this automatically.
sed -i 's/^import rc_/import psucontrol.rc_/g' src/psucontrol/*.py
If you don't plan to touch the GUI-stuff, you can just do:
git clone --recurse-submodules https://github.com/WereCatf/psucontrol
cd psucontrol
poetry install
TODO
- Fill out this README more
- Implement the memory-buttons functionality
- Add toggleable graphing
- CLI-interface
- TUI-interface
- Maybe see about dumping the firmware (with Chipwhisperer?)
- Add support for more PSUs?
- Add support for multiple channels?
License
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details. The project uses the Noto Sans-font - see the LICENSE file for details.
Metadata
Release files for psucontrol 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| psucontrol-0.8.0.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| psucontrol-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.6 MB
Release files / psucontrol-0.8.0.tar.gz
| Download URL | psucontrol-0.8.0.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d844c99d229d8060fdceca01684f7e5b1cc847f4b883d12b30a471abc2e9abfd
|
|
BLAKE2b-256 checksum How to use checksums |
2e09ffb89da12a5b9aeba993baaa39900ed9cf398f1cf8424a43f1af8730cbad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 11, 2026.
Transparency logRelease files / psucontrol-0.8.0-py3-none-any.whl
| Download URL | psucontrol-0.8.0-py3-none-any.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29a82298f91c06d4feb96bc4305e4ff4204e2ed59bad425299c2960755f82649
|
|
BLAKE2b-256 checksum How to use checksums |
39c579471094fb19903477e32a0029985c73cea0d5488cfd8075376f7172508b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 11, 2026.
Transparency log